Fix backtest consistency

This commit is contained in:
2025-11-11 12:15:12 +07:00
parent 2a0fbf9bc0
commit 1792cd2371
10 changed files with 248 additions and 34978 deletions

View File

@@ -97,6 +97,30 @@ SCORE=${SCORE:-0.00}
# Fix malformed values
SCORE=$(echo "$SCORE" | sed 's/^0*$/0.00/' | xargs)
# Business Logic Validation: Check Final PnL against first run baseline
FIRST_RUN_FINAL_PNL=$(head -2 src/Managing.Workers.Tests/performance-benchmarks.csv 2>/dev/null | tail -1 | cut -d',' -f15 | xargs)
if [ -n "$FIRST_RUN_FINAL_PNL" ] && [ "$FIRST_RUN_FINAL_PNL" != "FinalPnL" ]; then
# Compare against the first run in the file (the baseline)
DIFF=$(echo "scale=2; $FINAL_PNL - $FIRST_RUN_FINAL_PNL" | bc -l 2>/dev/null || echo "0")
ABS_DIFF=$(echo "scale=2; if ($DIFF < 0) -$DIFF else $DIFF" | bc -l 2>/dev/null || echo "0")
if (( $(echo "$ABS_DIFF > 0.01" | bc -l 2>/dev/null || echo "0") )); then
echo -e "${RED}❌ BUSINESS LOGIC WARNING: Final PnL differs from baseline!${NC}"
echo " Baseline (first run): $FIRST_RUN_FINAL_PNL"
echo " Current: $FINAL_PNL"
echo " Difference: $DIFF"
echo -e "${YELLOW}⚠️ This may indicate that changes broke business logic!${NC}"
echo -e "${YELLOW} Please verify that optimizations didn't change backtest behavior.${NC}"
else
echo -e "${GREEN}✅ Business Logic OK: Final PnL matches baseline (±$ABS_DIFF)${NC}"
fi
else
# If no baseline exists, establish one
echo -e "${BLUE} Establishing new baseline - this is the first run${NC}"
echo -e "${GREEN}✅ First run completed successfully${NC}"
fi
# Create CSV row
CSV_ROW="$TIMESTAMP,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_Telemetry,$CANDLES_COUNT,$EXECUTION_TIME,$PROCESSING_RATE,$MEMORY_START,$MEMORY_END,$MEMORY_PEAK,$SIGNAL_UPDATES,$SIGNAL_SKIPPED,$SIGNAL_EFFICIENCY,$BACKTEST_STEPS,$AVG_SIGNAL_UPDATE,$AVG_BACKTEST_STEP,$FINAL_PNL,$WIN_RATE,$GROWTH_PERCENTAGE,$SCORE,$COMMIT_HASH,$BRANCH_NAME,$ENVIRONMENT"