|
@@ -121,12 +121,16 @@ class PerformanceCalculator:
|
|
|
|
|
|
|
|
|
win_rate = (total_wins / total_trades * 100) if total_trades > 0 else 0
|
|
|
- profit_factor = (total_pnl / abs(total_losses)) if total_losses < 0 else float('inf') if total_pnl > 0 else 0
|
|
|
+
|
|
|
+
|
|
|
+ sum_winning = sum(token.get('sum_of_winning_pnl', 0) for token in token_stats)
|
|
|
+ sum_losing = abs(sum(token.get('sum_of_losing_pnl', 0) for token in token_stats))
|
|
|
+ profit_factor = (sum_winning / sum_losing) if sum_losing > 0 else float('inf') if sum_winning > 0 else 0
|
|
|
|
|
|
|
|
|
- avg_win = total_pnl / total_wins if total_wins > 0 else 0
|
|
|
- avg_loss = total_losses / total_losses if total_losses > 0 else 0
|
|
|
- expectancy = (avg_win * (win_rate/100)) - (abs(avg_loss) * (1 - win_rate/100))
|
|
|
+ avg_win = sum_winning / total_wins if total_wins > 0 else 0
|
|
|
+ avg_loss = sum_losing / total_losses if total_losses > 0 else 0
|
|
|
+ expectancy = (avg_win * (win_rate/100)) - (avg_loss * (1 - win_rate/100))
|
|
|
|
|
|
|
|
|
max_drawdown, max_drawdown_pct = self.get_live_max_drawdown()
|