From a6adf5e458b64cd9438610182d9a0c257aec0a8f Mon Sep 17 00:00:00 2001 From: cryptooda Date: Thu, 20 Nov 2025 20:04:20 +0700 Subject: [PATCH] Fix test with new ROI and collateral calcul --- .../TradingBoxAgentSummaryMetricsTests.cs | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/Managing.Application.Tests/TradingBoxAgentSummaryMetricsTests.cs b/src/Managing.Application.Tests/TradingBoxAgentSummaryMetricsTests.cs index 0b0bd3d5..7fd847e3 100644 --- a/src/Managing.Application.Tests/TradingBoxAgentSummaryMetricsTests.cs +++ b/src/Managing.Application.Tests/TradingBoxAgentSummaryMetricsTests.cs @@ -44,9 +44,9 @@ public class TradingBoxAgentSummaryMetricsTests Assert.Equal(5m, metrics.TotalPnL); Assert.Equal(3m, metrics.TotalFees); Assert.Equal(2m, metrics.NetPnL); - Assert.Equal(0.5m, metrics.TotalROI); + Assert.Equal(1m, metrics.TotalROI); Assert.Equal(810m, metrics.TotalVolume); - Assert.Equal(400m, metrics.Collateral); + Assert.Equal(200m, metrics.Collateral); Assert.Equal(1, metrics.Wins); Assert.Equal(1, metrics.Losses); } @@ -269,9 +269,9 @@ public class TradingBoxAgentSummaryMetricsTests Assert.Equal(13m, metrics.TotalPnL); Assert.Equal(2m, metrics.TotalFees); Assert.Equal(11m, metrics.NetPnL); - Assert.Equal(11m / 300m * 100m, metrics.TotalROI); // 11 / 300 * 100 + Assert.Equal(5.5m, metrics.TotalROI); // 11 / 300 * 100 Assert.Equal(600m, metrics.TotalVolume); // 100*1*1 + 110*1*1 + 200*1*1 + 190*1*1 = 210 + 390 = 600 - Assert.Equal(300m, metrics.Collateral); // 100*1 + 200*1 + Assert.Equal(200m, metrics.Collateral); // Max (100*1, 200*1) Assert.Equal(2, metrics.Wins); Assert.Equal(0, metrics.Losses); } @@ -312,9 +312,9 @@ public class TradingBoxAgentSummaryMetricsTests Assert.Equal(-8m, metrics.TotalPnL); Assert.Equal(2m, metrics.TotalFees); Assert.Equal(-10m, metrics.NetPnL); - Assert.Equal(-10m / 300m * 100m, metrics.TotalROI); // -10 / 300 * 100 + Assert.Equal(-5, metrics.TotalROI); // -10 / 300 * 100 Assert.Equal(605m, metrics.TotalVolume); // 100*1 + 95*1 + 200*1 + 210*1 = 195 + 410 = 605 - Assert.Equal(300m, metrics.Collateral); // 100*1 + 200*1 + Assert.Equal(200m, metrics.Collateral); // 100*1 + 200*1 Assert.Equal(0, metrics.Wins); Assert.Equal(2, metrics.Losses); } @@ -420,9 +420,9 @@ public class TradingBoxAgentSummaryMetricsTests Assert.Equal(150m, metrics.TotalPnL); Assert.Equal(4m, metrics.TotalFees); Assert.Equal(146m, metrics.NetPnL); - Assert.Equal(146m / 8000m * 100m, metrics.TotalROI); // 146 / 8000 * 100 + Assert.Equal(2.9200m, metrics.TotalROI); // 146 / 8000 * 100 Assert.Equal(10250m + 5850m, metrics.TotalVolume); // BTC: 5000+5250, ETH: 3000+2850 - Assert.Equal(5000m + 3000m, metrics.Collateral); // 50000*0.1 + 3000*1 + Assert.Equal(5000m, metrics.Collateral); // 50000*0.1 + 3000*1 Assert.Equal(2, metrics.Wins); Assert.Equal(0, metrics.Losses); } @@ -466,7 +466,8 @@ public class TradingBoxAgentSummaryMetricsTests return position; } - private static Trade BuildTrade(TradeDirection direction, TradeStatus status, decimal price, decimal quantity, decimal leverage = 1m) + private static Trade BuildTrade(TradeDirection direction, TradeStatus status, decimal price, decimal quantity, + decimal leverage = 1m) { return new Trade( date: DateTime.UtcNow, @@ -702,7 +703,7 @@ public class TradingBoxAgentSummaryMetricsTests Timeframe = Timeframe.OneHour, StopLoss = 0.02m, TakeProfit = 0.04m, - Leverage = 10m // High leverage + Leverage = 10m // High leverage }, initiator: PositionInitiator.User, date: DateTime.UtcNow, @@ -727,7 +728,7 @@ public class TradingBoxAgentSummaryMetricsTests Timeframe = Timeframe.OneHour, StopLoss = 0.02m, TakeProfit = 0.04m, - Leverage = 5m // Moderate leverage + Leverage = 5m // Moderate leverage }, initiator: PositionInitiator.User, date: DateTime.UtcNow, @@ -777,7 +778,7 @@ public class TradingBoxAgentSummaryMetricsTests Assert.Equal(1300m, metrics.TotalPnL); // 1000 + 300 Assert.Equal(15m, metrics.TotalFees); // 5+5 + 2.5+2.5 Assert.Equal(1285m, metrics.NetPnL); // 1300 - 15 - Assert.Equal(1285m / 8000m * 100m, metrics.TotalROI); // 1285 / 8000 * 100 + Assert.Equal(25.700m, metrics.TotalROI); // Volume calculations with leverage: price * quantity * leverage // BTC: (50000 * 0.1 * 10) + (52500 * 0.1 * 10) = 50000 + 52500 = 102500 @@ -785,7 +786,7 @@ public class TradingBoxAgentSummaryMetricsTests Assert.Equal(102500m + 29250m, metrics.TotalVolume); // 131750 // Collateral is price * quantity (without leverage) - Assert.Equal(5000m + 3000m, metrics.Collateral); // 8000 + Assert.Equal(5000m, metrics.Collateral); // 5000 Assert.Equal(2, metrics.Wins); Assert.Equal(0, metrics.Losses); }