Fix realized pnl on backtest save + add tests (not all passing)
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user