From 7bf20d9060e999358510afeeacfafe5abfd818dd Mon Sep 17 00:00:00 2001 From: Matthias Date: Mon, 4 Sep 2023 18:25:00 +0200 Subject: [PATCH] Show drawdown from/to on /profit calls --- freqtrade/rpc/rpc.py | 16 ++++++++++++++-- freqtrade/rpc/telegram.py | 6 +++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py index 1206cc2f1..57d1b6c36 100644 --- a/freqtrade/rpc/rpc.py +++ b/freqtrade/rpc/rpc.py @@ -526,6 +526,7 @@ class RPC: winrate = (winning_trades / closed_trade_count) if closed_trade_count > 0 else 0 trades_df = DataFrame([{'close_date': format_date(trade.close_date), + 'close_date_dt': trade.close_date, 'profit_abs': trade.close_profit_abs} for trade in trades if not trade.is_open and trade.close_date]) @@ -533,10 +534,15 @@ class RPC: max_drawdown_abs = 0.0 max_drawdown = 0.0 + drawdown_start: Optional[datetime] = None + drawdown_end: Optional[datetime] = None + dd_high_val = dd_low_val = 0.0 if len(trades_df) > 0: try: - (max_drawdown_abs, _, _, _, _, max_drawdown) = calculate_max_drawdown( - trades_df, value_col='profit_abs', starting_balance=starting_balance) + (max_drawdown_abs, drawdown_start, drawdown_end, dd_high_val, dd_low_val, + max_drawdown) = calculate_max_drawdown( + trades_df, value_col='profit_abs', date_col='close_date_dt', + starting_balance=starting_balance) except ValueError: # ValueError if no losing trade. pass @@ -588,6 +594,12 @@ class RPC: 'expectancy_ratio': expectancy_ratio, 'max_drawdown': max_drawdown, 'max_drawdown_abs': max_drawdown_abs, + 'max_drawdown_start': format_date(drawdown_start), + 'max_drawdown_start_timestamp': dt_ts_def(drawdown_start), + 'max_drawdown_end': format_date(drawdown_end), + 'max_drawdown_end_timestamp': dt_ts_def(drawdown_end), + 'drawdown_high': dd_high_val, + 'drawdown_low': dd_low_val, 'trading_volume': trading_volume, 'bot_start_timestamp': dt_ts_def(bot_start, 0), 'bot_start_date': format_date(bot_start), diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 8972f4a16..92b91ece3 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -889,7 +889,11 @@ class Telegram(RPCHandler): f"*Trading volume:* `{round_coin_value(stats['trading_volume'], stake_cur)}`\n" f"*Profit factor:* `{stats['profit_factor']:.2f}`\n" f"*Max Drawdown:* `{stats['max_drawdown']:.2%} " - f"({round_coin_value(stats['max_drawdown_abs'], stake_cur)})`" + f"({round_coin_value(stats['max_drawdown_abs'], stake_cur)})`\n" + f" from `{stats['max_drawdown_start']} " + f"({round_coin_value(stats['drawdown_high'], stake_cur)})`\n" + f" to `{stats['max_drawdown_end']} " + f"({round_coin_value(stats['drawdown_low'], stake_cur)})`\n" ) await self._send_msg(markdown_msg, reload_able=True, callback_path="update_profit", query=update.callback_query)