diff --git a/freqtrade/optimize/optimize_reports/bt_output.py b/freqtrade/optimize/optimize_reports/bt_output.py index 36a2b3bbb..7dea7224b 100644 --- a/freqtrade/optimize/optimize_reports/bt_output.py +++ b/freqtrade/optimize/optimize_reports/bt_output.py @@ -132,18 +132,18 @@ def text_table_periodic_breakdown( """ headers = [ period.capitalize(), + "Trades", f"Tot Profit {stake_currency}", - "Wins", - "Draws", - "Losses", + "Profit Factor", + "Win Draw Loss Win%", ] output = [ [ d["date"], + d.get("trades", "N/A"), fmt_coin(d["profit_abs"], stake_currency, False), - d["wins"], - d["draws"], - d["loses"], + round(d["profit_factor"], 2) if "profit_factor" in d else "N/A", + generate_wins_draws_losses(d["wins"], d["draws"], d.get("losses", d.get("loses", 0))), ] for d in days_breakdown_stats ] diff --git a/freqtrade/optimize/optimize_reports/optimize_reports.py b/freqtrade/optimize/optimize_reports/optimize_reports.py index b7fa0e26d..c0188673a 100644 --- a/freqtrade/optimize/optimize_reports/optimize_reports.py +++ b/freqtrade/optimize/optimize_reports/optimize_reports.py @@ -231,8 +231,11 @@ def generate_periodic_breakdown_stats( profit_abs = day["profit_abs"].sum().round(10) wins = sum(day["profit_abs"] > 0) draws = sum(day["profit_abs"] == 0) - loses = sum(day["profit_abs"] < 0) - trades = wins + draws + loses + losses = sum(day["profit_abs"] < 0) + trades = wins + draws + losses + winning_profit = day.loc[day["profit_abs"] > 0, "profit_abs"].sum() + losing_profit = day.loc[day["profit_abs"] < 0, "profit_abs"].sum() + profit_factor = winning_profit / abs(losing_profit) if losing_profit else 0.0 stats.append( { "date": name.strftime("%d/%m/%Y"), @@ -240,8 +243,9 @@ def generate_periodic_breakdown_stats( "profit_abs": profit_abs, "wins": wins, "draws": draws, - "loses": loses, - "winrate": wins / trades if trades else 0.0, + "losses": losses, + "trades": trades, + "profit_factor": round(profit_factor, 8), } ) return stats diff --git a/tests/optimize/test_optimize_reports.py b/tests/optimize/test_optimize_reports.py index 5459f76f5..d0c970b33 100644 --- a/tests/optimize/test_optimize_reports.py +++ b/tests/optimize/test_optimize_reports.py @@ -587,7 +587,7 @@ def test_generate_periodic_breakdown_stats(testdatadir): day = res[0] assert "date" in day assert "draws" in day - assert "loses" in day + assert "losses" in day assert "wins" in day assert "profit_abs" in day