diff --git a/freqtrade/rpc/__init__.py b/freqtrade/rpc/__init__.py index b0670969c..23c7242dd 100644 --- a/freqtrade/rpc/__init__.py +++ b/freqtrade/rpc/__init__.py @@ -428,3 +428,15 @@ def rpc_performance() -> None: trades.append({'pair': pair, 'profit': round(rate * 100, 2), 'count': count}) return (False, trades) + + +def rpc_count() -> None: + """ + Returns the number of trades running + :return: None + """ + if get_state() != State.RUNNING: + return (True, '`trader is not running`') + + trades = Trade.query.filter(Trade.is_open.is_(True)).all() + return (False, trades) diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index dec630ea2..3596ae6e8 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -15,12 +15,12 @@ from freqtrade.rpc.__init__ import (rpc_status_table, rpc_stop, rpc_forcesell, rpc_performance, + rpc_count, ) from freqtrade import __version__, exchange from freqtrade.fiat_convert import CryptoToFiatConverter from freqtrade.persistence import Trade -from freqtrade.misc import State, get_state # Remove noisy log messages @@ -348,12 +348,11 @@ def _count(bot: Bot, update: Update) -> None: :param update: message update :return: None """ - if get_state() != State.RUNNING: - send_msg('`trader is not running`', bot=bot) + (error, trades) = rpc_count() + if error: + send_msg(trades, bot=bot) return - trades = Trade.query.filter(Trade.is_open.is_(True)).all() - message = tabulate({ 'current': [len(trades)], 'max': [_CONF['max_open_trades']]