Fix backtest consistency
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user