Fix win and loses count

This commit is contained in:
2025-10-05 03:21:59 +07:00
parent b25f0be083
commit faec7e2e5a
4 changed files with 11 additions and 8 deletions

View File

@@ -475,14 +475,15 @@ public class DataController : ControllerBase
decimal totalVolume = strategy.Volume;
decimal volumeLast24h = strategy.Volume;
// Calculate win/loss statistics
(int wins, int losses) = (strategy.TradeWins, strategy.TradeLosses);
int winRate = wins + losses > 0 ? (wins * 100) / (wins + losses) : 0;
// Fetch positions associated with this bot using the provided trading service
var positions = await tradingService.GetPositionsByInitiatorIdentifierAsync(strategy.Identifier);
// Calculate win/loss statistics from actual positions (including open positions)
int wins = positions.Count(p => p.ProfitAndLoss != null && p.ProfitAndLoss.Realized > 0);
int losses = positions.Count(p => p.ProfitAndLoss != null && p.ProfitAndLoss.Realized <= 0);
int winRate = wins + losses > 0 ? (wins * 100) / (wins + losses) : 0;
// Convert positions to view models
var positionViewModels = positions.Select(MapPositionToViewModel).ToList();