diff --git a/src/Managing.Application/Backtests/BacktestExecutor.cs b/src/Managing.Application/Backtests/BacktestExecutor.cs index bc2c42cb..f1cd0b03 100644 --- a/src/Managing.Application/Backtests/BacktestExecutor.cs +++ b/src/Managing.Application/Backtests/BacktestExecutor.cs @@ -335,11 +335,11 @@ public class BacktestExecutor var resultCalculationStart = Stopwatch.GetTimestamp(); // Calculate final results (using existing optimized methods) - var finalPnl = tradingBot.GetProfitAndLoss(); + var netPnl = tradingBot.GetProfitAndLoss(); // This returns Net PnL (after fees) var winRate = tradingBot.GetWinRate(); var stats = TradingHelpers.GetStatistics(tradingBot.WalletBalances); var growthPercentage = - TradingHelpers.GetGrowthFromInitalBalance(tradingBot.WalletBalances.FirstOrDefault().Value, finalPnl); + TradingHelpers.GetGrowthFromInitalBalance(tradingBot.WalletBalances.FirstOrDefault().Value, netPnl); var hodlPercentage = TradingHelpers.GetHodlPercentage(candles.First(), candles.Last()); var fees = tradingBot.GetTotalFees(); @@ -348,7 +348,7 @@ public class BacktestExecutor growthPercentage: (double)growthPercentage, hodlPercentage: (double)hodlPercentage, winRate: winRate, - totalPnL: (double)finalPnl, + totalPnL: (double)netPnl, fees: (double)fees, tradeCount: tradingBot.Positions.Count, maxDrawdownRecoveryTime: stats.MaxDrawdownRecoveryTime, @@ -378,7 +378,7 @@ public class BacktestExecutor var result = new Backtest(config, tradingBot.Positions, tradingBot.Signals, withCandles ? candles : new HashSet()) { - FinalPnl = finalPnl, + FinalPnl = netPnl, // Net PnL (after fees) WinRate = winRate, GrowthPercentage = growthPercentage, HodlPercentage = hodlPercentage, @@ -393,7 +393,7 @@ public class BacktestExecutor StartDate = candles.FirstOrDefault()!.OpenTime, EndDate = candles.LastOrDefault()!.OpenTime, InitialBalance = initialBalance, - NetPnl = finalPnl - fees, + NetPnl = netPnl, // Already net of fees }; if (save && user != null) diff --git a/src/Managing.Application/Bots/TradingBotBase.cs b/src/Managing.Application/Bots/TradingBotBase.cs index 558277a0..a17430aa 100644 --- a/src/Managing.Application/Bots/TradingBotBase.cs +++ b/src/Managing.Application/Bots/TradingBotBase.cs @@ -2132,7 +2132,7 @@ public class TradingBotBase : ITradingBot { if (position.IsValidForMetrics() && position.ProfitAndLoss != null) { - netPnl += position.GetPnLBeforeFees(); + netPnl += position.ProfitAndLoss.Net; } } diff --git a/src/Managing.WebApp/src/components/organism/PositionsModal/index.tsx b/src/Managing.WebApp/src/components/organism/PositionsModal/index.tsx index d587d02e..67a26f14 100644 --- a/src/Managing.WebApp/src/components/organism/PositionsModal/index.tsx +++ b/src/Managing.WebApp/src/components/organism/PositionsModal/index.tsx @@ -1,2 +1,3 @@ export { default as PositionsModal } from './PositionsModal' +