Add precalculated signals list + multi scenario test
This commit is contained in:
@@ -143,6 +143,66 @@ CSV_ROW="$TIMESTAMP,ExecuteBacktest_With_Large_Dataset_Should_Show_Performance_T
|
||||
# Append to CSV file
|
||||
echo "$CSV_ROW" >> "src/Managing.Workers.Tests/performance-benchmarks.csv"
|
||||
|
||||
# Now run the two-scenarios test
|
||||
echo "📊 Running two-scenarios performance test..."
|
||||
TWO_SCENARIOS_OUTPUT=$(dotnet test src/Managing.Workers.Tests/Managing.Workers.Tests.csproj \
|
||||
--filter "ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry" \
|
||||
--verbosity minimal \
|
||||
--logger "console;verbosity=detailed" 2>&1)
|
||||
|
||||
# Check if two-scenarios test passed
|
||||
if echo "$TWO_SCENARIOS_OUTPUT" | grep -q "Passed.*1"; then
|
||||
echo -e "${GREEN}✅ Two-scenarios performance test passed!${NC}"
|
||||
else
|
||||
echo -e "${RED}❌ Two-scenarios performance test failed!${NC}"
|
||||
echo "$TWO_SCENARIOS_OUTPUT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extract performance metrics from the two-scenarios test output
|
||||
TWO_SCENARIOS_CANDLES_COUNT=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Candles Processed:" | sed 's/.*: //' | sed 's/[^0-9]//g' | xargs)
|
||||
TWO_SCENARIOS_EXECUTION_TIME=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "⏱️ Total Execution Time:" | sed 's/.*: //' | sed 's/s//' | sed 's/,/./g' | awk '{print $NF}' | xargs)
|
||||
TWO_SCENARIOS_PROCESSING_RATE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Candles Processed:" | sed 's/.*Processed: [0-9]* (//' | sed 's/ candles\/sec)//' | xargs)
|
||||
|
||||
# Extract memory metrics (use defaults since two-scenarios test doesn't track detailed memory)
|
||||
TWO_SCENARIOS_MEMORY_START=${MEMORY_START:-0.0}
|
||||
TWO_SCENARIOS_MEMORY_END=${MEMORY_END:-0.0}
|
||||
TWO_SCENARIOS_MEMORY_PEAK=${MEMORY_PEAK:-0.0}
|
||||
|
||||
# Extract signal update metrics (use defaults since two-scenarios test doesn't track these)
|
||||
TWO_SCENARIOS_SIGNAL_UPDATES=0.0
|
||||
TWO_SCENARIOS_SIGNAL_SKIPPED=0
|
||||
TWO_SCENARIOS_SIGNAL_EFFICIENCY=0.0
|
||||
|
||||
# Extract backtest steps (use defaults)
|
||||
TWO_SCENARIOS_BACKTEST_STEPS=0.0
|
||||
TWO_SCENARIOS_AVG_SIGNAL_UPDATE=0.0
|
||||
TWO_SCENARIOS_AVG_BACKTEST_STEP=0.0
|
||||
|
||||
# Extract trading results
|
||||
TWO_SCENARIOS_FINAL_PNL=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "🎯 Final PnL:" | sed 's/.*Final PnL: //' | sed 's/,/./g' | xargs)
|
||||
TWO_SCENARIOS_WIN_RATE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Win Rate:" | sed 's/.*Win Rate: //' | sed 's/%//' | xargs)
|
||||
TWO_SCENARIOS_GROWTH_PERCENTAGE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📈 Growth:" | sed 's/.*Growth: //' | sed 's/%//' | sed 's/,/./g' | xargs)
|
||||
TWO_SCENARIOS_SCORE=$(echo "$TWO_SCENARIOS_OUTPUT" | grep "📊 Score:" | sed 's/.*Score: //' | sed 's/[^0-9.-]//g' | xargs)
|
||||
|
||||
# Set defaults for missing values
|
||||
TWO_SCENARIOS_CANDLES_COUNT=${TWO_SCENARIOS_CANDLES_COUNT:-0}
|
||||
TWO_SCENARIOS_EXECUTION_TIME=${TWO_SCENARIOS_EXECUTION_TIME:-0.0}
|
||||
TWO_SCENARIOS_PROCESSING_RATE=${TWO_SCENARIOS_PROCESSING_RATE:-0.0}
|
||||
TWO_SCENARIOS_FINAL_PNL=${TWO_SCENARIOS_FINAL_PNL:-0.00}
|
||||
TWO_SCENARIOS_WIN_RATE=${TWO_SCENARIOS_WIN_RATE:-0}
|
||||
TWO_SCENARIOS_GROWTH_PERCENTAGE=${TWO_SCENARIOS_GROWTH_PERCENTAGE:-0.00}
|
||||
TWO_SCENARIOS_SCORE=${TWO_SCENARIOS_SCORE:-0.00}
|
||||
|
||||
# Fix malformed values
|
||||
TWO_SCENARIOS_SCORE=$(echo "$TWO_SCENARIOS_SCORE" | sed 's/^0*$/0.00/' | xargs)
|
||||
|
||||
# Create CSV row for two-scenarios test
|
||||
TWO_SCENARIOS_CSV_ROW="$TIMESTAMP,ExecuteBacktest_With_Two_Scenarios_Should_Show_Performance_Telemetry,$TWO_SCENARIOS_CANDLES_COUNT,$TWO_SCENARIOS_EXECUTION_TIME,$TWO_SCENARIOS_PROCESSING_RATE,$TWO_SCENARIOS_MEMORY_START,$TWO_SCENARIOS_MEMORY_END,$TWO_SCENARIOS_MEMORY_PEAK,$TWO_SCENARIOS_SIGNAL_UPDATES,$TWO_SCENARIOS_SIGNAL_SKIPPED,$TWO_SCENARIOS_SIGNAL_EFFICIENCY,$TWO_SCENARIOS_BACKTEST_STEPS,$TWO_SCENARIOS_AVG_SIGNAL_UPDATE,$TWO_SCENARIOS_AVG_BACKTEST_STEP,$TWO_SCENARIOS_FINAL_PNL,$TWO_SCENARIOS_WIN_RATE,$TWO_SCENARIOS_GROWTH_PERCENTAGE,$TWO_SCENARIOS_SCORE,$COMMIT_HASH,$BRANCH_NAME,$ENVIRONMENT"
|
||||
|
||||
# Append to two-scenarios CSV file
|
||||
echo "$TWO_SCENARIOS_CSV_ROW" >> "src/Managing.Workers.Tests/performance-benchmarks-two-scenarios.csv"
|
||||
|
||||
# Display results
|
||||
echo -e "${BLUE}📊 Benchmark Results:${NC}"
|
||||
echo " • Processing Rate: $PROCESSING_RATE candles/sec"
|
||||
|
||||
Reference in New Issue
Block a user