Skip to content

Commit 6d3ed84

Browse files
committed
Add max trade duration to backtest results
1 parent 193cfb6 commit 6d3ed84

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

freqtrade/optimize/optimize_reports/bt_output.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,7 @@ def text_table_add_metrics(strat_results: dict) -> None:
370370
f"{strat_results['winning_days']} / "
371371
f"{strat_results['draw_days']} / {strat_results['losing_days']}",
372372
),
373+
("Max trade duration", f"{strat_results['holding_max']}"),
373374
("Avg. Duration Winners", f"{strat_results['winner_holding_avg']}"),
374375
("Avg. Duration Loser", f"{strat_results['loser_holding_avg']}"),
375376
(

freqtrade/optimize/optimize_reports/optimize_reports.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,11 @@ def generate_trading_stats(results: DataFrame) -> dict[str, Any]:
344344
if not results.empty
345345
else timedelta()
346346
)
347+
holding_max = (
348+
timedelta(minutes=round(results["trade_duration"].max()))
349+
if not results.empty
350+
else timedelta()
351+
)
347352
winner_holding_avg = (
348353
timedelta(minutes=round(winning_trades["trade_duration"].mean()))
349354
if not winning_trades.empty
@@ -363,6 +368,8 @@ def generate_trading_stats(results: DataFrame) -> dict[str, Any]:
363368
"winrate": len(winning_trades) / len(results) if len(results) else 0.0,
364369
"holding_avg": holding_avg,
365370
"holding_avg_s": holding_avg.total_seconds(),
371+
"holding_max": holding_max,
372+
"holding_max_s": holding_max.total_seconds(),
366373
"winner_holding_avg": winner_holding_avg,
367374
"winner_holding_avg_s": winner_holding_avg.total_seconds(),
368375
"loser_holding_avg": loser_holding_avg,

0 commit comments

Comments
 (0)