Fix realized pnl on backtest save + add tests (not all passing)

This commit is contained in:
2025-11-14 02:38:15 +07:00
parent 1f7d914625
commit 460a7bd559
34 changed files with 6012 additions and 500 deletions

View File

@@ -174,14 +174,14 @@ public class BacktestExecutorTests : BaseTests, IDisposable
// Validate key metrics - Updated after bug fix in executor
Assert.Equal(1000.0m, result.InitialBalance);
Assert.Equal(-44.92m, Math.Round(result.FinalPnl, 2));
Assert.Equal(45.30m, Math.Round(result.FinalPnl, 2));
Assert.Equal(31, result.WinRate);
Assert.Equal(-4.49m, Math.Round(result.GrowthPercentage, 2));
Assert.Equal(-1.77m, Math.Round(result.GrowthPercentage, 2));
Assert.Equal(-0.67m, Math.Round(result.HodlPercentage, 2));
Assert.Equal(86.65m, Math.Round(result.Fees, 2));
Assert.Equal(-44.92m, Math.Round(result.NetPnl, 2));
Assert.Equal(179.42m, Math.Round((decimal)result.MaxDrawdown, 2));
Assert.Equal(-0.011, Math.Round((double)(result.SharpeRatio ?? 0), 3));
Assert.Equal(59.97m, Math.Round(result.Fees, 2));
Assert.Equal(-17.74m, Math.Round(result.NetPnl, 2));
Assert.Equal(158.79m, Math.Round((decimal)result.MaxDrawdown, 2));
Assert.Equal(-0.004, Math.Round((double)(result.SharpeRatio ?? 0), 3));
Assert.True(Math.Abs(result.Score - 0.0) < 0.001,
$"Score {result.Score} should be within 0.001 of expected value 0.0");
@@ -266,14 +266,14 @@ public class BacktestExecutorTests : BaseTests, IDisposable
// Validate key metrics - Updated after bug fix in executor
Assert.Equal(100000.0m, result.InitialBalance);
Assert.Equal(-57729.37m, Math.Round(result.FinalPnl, 2));
Assert.Equal(-33978.09m, Math.Round(result.FinalPnl, 2));
Assert.Equal(21, result.WinRate);
Assert.Equal(-57.73m, Math.Round(result.GrowthPercentage, 2));
Assert.Equal(-52.16m, Math.Round(result.GrowthPercentage, 2));
Assert.Equal(-12.87m, Math.Round(result.HodlPercentage, 2));
Assert.Equal(25875.44m, Math.Round(result.Fees, 2));
Assert.Equal(-57729.37m, Math.Round(result.NetPnl, 2));
Assert.Equal(58631.97m, Math.Round((decimal)result.MaxDrawdown, 2));
Assert.Equal(-0.042, Math.Round((double)(result.SharpeRatio ?? 0), 3));
Assert.Equal(18207.71m, Math.Round(result.Fees, 2));
Assert.Equal(-52156.26m, Math.Round(result.NetPnl, 2));
Assert.Equal(54523.55m, Math.Round((decimal)result.MaxDrawdown, 2));
Assert.Equal(-0.037, Math.Round((double)(result.SharpeRatio ?? 0), 3));
Assert.True(Math.Abs(result.Score - 0.0) < 0.001,
$"Score {result.Score} should be within 0.001 of expected value 0.0");
@@ -453,10 +453,10 @@ public class BacktestExecutorTests : BaseTests, IDisposable
// Business Logic Baseline Assertions - Updated after bug fix in executor
// These values establish the expected baseline for the two-scenarios test
const decimal expectedFinalPnl = -34137.424000000000000000000000m;
const decimal expectedFinalPnl = -35450.45m;
const double expectedScore = 0.0;
const int expectedWinRatePercent = 20; // 20% win rate
const decimal expectedGrowthPercentage = -34.1374240000000000000000m;
const decimal expectedGrowthPercentage = -49.76m;
// Allow small tolerance for floating-point precision variations
const decimal pnlTolerance = 0.01m;

View File

@@ -14,3 +14,4 @@ DateTime,TestName,CandlesCount,ExecutionTimeSeconds,ProcessingRateCandlesPerSec,
2025-11-12T13:56:26Z,Telemetry_ETH_RSI_EMACROSS,5760,6.32,910.9,15.26,15.84,23.13,0.0,0,0.0,0.0,0.0,0.0,-53491.95,20,-53.49,0.00,e0d21115,dev,development
2025-11-12T14:04:57Z,Telemetry_ETH_RSI_EMACROSS,5760,6.45,893.2,15.27,16.06,23.13,0.0,0,0.0,0.0,0.0,0.0,-53491.95,20,-53.49,0.00,d9489691,dev,development
2025-11-12T17:31:53Z,Telemetry_ETH_RSI_EMACROSS,5760,5.10,1128.5,15.26,15.61,23.10,0.0,0,0.0,0.0,0.0,0.0,-34137.42,20,-34.14,0.00,6d6f70ae,dev,development
2025-11-13T19:34:27Z,Telemetry_ETH_RSI_EMACROSS,5760,3.68,1566.4,15.26,15.45,23.08,0.0,0,0.0,0.0,0.0,0.0,-35450.45,20,-49.76,0.00,1f7d9146,dev,development
1 DateTime TestName CandlesCount ExecutionTimeSeconds ProcessingRateCandlesPerSec MemoryStartMB MemoryEndMB MemoryPeakMB SignalUpdatesCount SignalUpdatesSkipped SignalUpdateEfficiencyPercent BacktestStepsCount AverageSignalUpdateMs AverageBacktestStepMs FinalPnL WinRatePercent GrowthPercentage Score CommitHash GitBranch Environment
14 2025-11-12T13:56:26Z Telemetry_ETH_RSI_EMACROSS 5760 6.32 910.9 15.26 15.84 23.13 0.0 0 0.0 0.0 0.0 0.0 -53491.95 20 -53.49 0.00 e0d21115 dev development
15 2025-11-12T14:04:57Z Telemetry_ETH_RSI_EMACROSS 5760 6.45 893.2 15.27 16.06 23.13 0.0 0 0.0 0.0 0.0 0.0 -53491.95 20 -53.49 0.00 d9489691 dev development
16 2025-11-12T17:31:53Z Telemetry_ETH_RSI_EMACROSS 5760 5.10 1128.5 15.26 15.61 23.10 0.0 0 0.0 0.0 0.0 0.0 -34137.42 20 -34.14 0.00 6d6f70ae dev development
17 2025-11-13T19:34:27Z Telemetry_ETH_RSI_EMACROSS 5760 3.68 1566.4 15.26 15.45 23.08 0.0 0 0.0 0.0 0.0 0.0 -35450.45 20 -49.76 0.00 1f7d9146 dev development

View File

@@ -58,3 +58,5 @@ DateTime,TestName,CandlesCount,ExecutionTimeSeconds,ProcessingRateCandlesPerSec,
2025-11-12T17:26:33Z,Telemetry_ETH_RSI,5760,3.02,1903.2,15.27,16.86,24.06,0.00,0,0.0,2913.76,0.00,0.51,-29063.40,24,-29.06,0.00,6d6f70ae,dev,development
2025-11-12T17:28:37Z,Telemetry_ETH_RSI,5760,4.68,1223.9,15.71,16.53,23.94,0.00,0,0.0,4457.31,0.00,0.77,-29063.40,24,-29.06,0.00,6d6f70ae,dev,development
2025-11-12T17:31:53Z,Telemetry_ETH_RSI,5760,3.145,1826.0,15.26,16.99,24.08,0.00,0,0.0,2982.49,0.00,0.52,-29063.40,24,-29.06,0.00,6d6f70ae,dev,development
2025-11-13T19:31:55Z,Telemetry_ETH_RSI,5760,3.27,1755.7,15.26,17.03,24.09,0.00,0,0.0,3141.00,0.00,0.55,-30689.97,24,-51.70,0.00,1f7d9146,dev,development
2025-11-13T19:34:27Z,Telemetry_ETH_RSI,5760,1.655,3461.5,15.26,17.10,23.48,0.00,0,0.0,1595.88,0.00,0.28,-30689.97,24,-51.70,0.00,1f7d9146,dev,development
1 DateTime TestName CandlesCount ExecutionTimeSeconds ProcessingRateCandlesPerSec MemoryStartMB MemoryEndMB MemoryPeakMB SignalUpdatesCount SignalUpdatesSkipped SignalUpdateEfficiencyPercent BacktestStepsCount AverageSignalUpdateMs AverageBacktestStepMs FinalPnL WinRatePercent GrowthPercentage Score CommitHash GitBranch Environment
58 2025-11-12T17:26:33Z Telemetry_ETH_RSI 5760 3.02 1903.2 15.27 16.86 24.06 0.00 0 0.0 2913.76 0.00 0.51 -29063.40 24 -29.06 0.00 6d6f70ae dev development
59 2025-11-12T17:28:37Z Telemetry_ETH_RSI 5760 4.68 1223.9 15.71 16.53 23.94 0.00 0 0.0 4457.31 0.00 0.77 -29063.40 24 -29.06 0.00 6d6f70ae dev development
60 2025-11-12T17:31:53Z Telemetry_ETH_RSI 5760 3.145 1826.0 15.26 16.99 24.08 0.00 0 0.0 2982.49 0.00 0.52 -29063.40 24 -29.06 0.00 6d6f70ae dev development
61 2025-11-13T19:31:55Z Telemetry_ETH_RSI 5760 3.27 1755.7 15.26 17.03 24.09 0.00 0 0.0 3141.00 0.00 0.55 -30689.97 24 -51.70 0.00 1f7d9146 dev development
62 2025-11-13T19:34:27Z Telemetry_ETH_RSI 5760 1.655 3461.5 15.26 17.10 23.48 0.00 0 0.0 1595.88 0.00 0.28 -30689.97 24 -51.70 0.00 1f7d9146 dev development