From 29987c3ff6d6989ebde5415bbbeee09b572e0e47 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste LE STANG Date: Tue, 2 Jan 2018 14:32:13 +0100 Subject: [PATCH 1/4] Adding the number of trades in the performance display --- freqtrade/rpc/telegram.py | 10 ++++++---- freqtrade/tests/rpc/test_rpc_telegram.py | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 7636c2b8a..e5e18ad5b 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -469,17 +469,19 @@ def _performance(bot: Bot, update: Update) -> None: send_msg('`trader is not running`', bot=bot) return - pair_rates = Trade.session.query(Trade.pair, func.sum(Trade.close_profit).label('profit_sum')) \ + pair_rates = Trade.session.query(Trade.pair, func.sum(Trade.close_profit).label('profit_sum'), + func.count(Trade.pair).label('count')) \ .filter(Trade.is_open.is_(False)) \ .group_by(Trade.pair) \ .order_by(text('profit_sum DESC')) \ .all() - stats = '\n'.join('{index}.\t{pair}\t{profit:.2f}%'.format( + stats = '\n'.join('{index}.\t{pair}\t{profit:.2f}% ({count})'.format( index=i + 1, pair=pair, - profit=round(rate * 100, 2) - ) for i, (pair, rate) in enumerate(pair_rates)) + profit=round(rate * 100, 2), + count=count + ) for i, (pair, rate, count) in enumerate(pair_rates)) message = 'Performance:\n{}'.format(stats) logger.debug(message) diff --git a/freqtrade/tests/rpc/test_rpc_telegram.py b/freqtrade/tests/rpc/test_rpc_telegram.py index 204774c49..313e1e78a 100644 --- a/freqtrade/tests/rpc/test_rpc_telegram.py +++ b/freqtrade/tests/rpc/test_rpc_telegram.py @@ -404,7 +404,7 @@ def test_performance_handle( _performance(bot=MagicMock(), update=update) assert msg_mock.call_count == 1 assert 'Performance' in msg_mock.call_args_list[0][0][0] - assert 'BTC_ETH\t6.20%' in msg_mock.call_args_list[0][0][0] + assert 'BTC_ETH\t6.20% (1)' in msg_mock.call_args_list[0][0][0] def test_daily_handle( From d849694a70ec4f66ea47c4d0a0ff434abd58ef49 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste LE STANG Date: Tue, 2 Jan 2018 14:43:38 +0100 Subject: [PATCH 2/4] Adding URL to market graph and number of trades/pair in /performance commande --- freqtrade/rpc/telegram.py | 3 ++- freqtrade/tests/rpc/test_rpc_telegram.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index e5e18ad5b..ef54bf8b5 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -476,9 +476,10 @@ def _performance(bot: Bot, update: Update) -> None: .order_by(text('profit_sum DESC')) \ .all() - stats = '\n'.join('{index}.\t{pair}\t{profit:.2f}% ({count})'.format( + stats = '\n'.join('{index}.\t[{pair}]({url})\t{profit:.2f}% ({count})'.format( index=i + 1, pair=pair, + url=exchange.get_pair_detail_url(pair), profit=round(rate * 100, 2), count=count ) for i, (pair, rate, count) in enumerate(pair_rates)) diff --git a/freqtrade/tests/rpc/test_rpc_telegram.py b/freqtrade/tests/rpc/test_rpc_telegram.py index 313e1e78a..dd91e847b 100644 --- a/freqtrade/tests/rpc/test_rpc_telegram.py +++ b/freqtrade/tests/rpc/test_rpc_telegram.py @@ -404,7 +404,7 @@ def test_performance_handle( _performance(bot=MagicMock(), update=update) assert msg_mock.call_count == 1 assert 'Performance' in msg_mock.call_args_list[0][0][0] - assert 'BTC_ETH\t6.20% (1)' in msg_mock.call_args_list[0][0][0] + assert '[BTC_ETH](https://www.bittrex.com/Market/Index?MarketName=BTC-ETH)\t6.20% (1)' in msg_mock.call_args_list[0][0][0] def test_daily_handle( From 55d0d27756fef23ea40bc04a165698b05a44c59b Mon Sep 17 00:00:00 2001 From: Jean-Baptiste LE STANG Date: Tue, 2 Jan 2018 14:55:31 +0100 Subject: [PATCH 3/4] message too long, removing URL for now --- freqtrade/rpc/telegram.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index ef54bf8b5..3b885c25c 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -476,10 +476,10 @@ def _performance(bot: Bot, update: Update) -> None: .order_by(text('profit_sum DESC')) \ .all() - stats = '\n'.join('{index}.\t[{pair}]({url})\t{profit:.2f}% ({count})'.format( + stats = '\n'.join('{index}.\t{pair}\t{profit:.2f}% ({count})'.format( index=i + 1, pair=pair, - url=exchange.get_pair_detail_url(pair), + #url=exchange.get_pair_detail_url(pair), profit=round(rate * 100, 2), count=count ) for i, (pair, rate, count) in enumerate(pair_rates)) From fbb19e451d53a2be40bb86e7302469a6e81bb10d Mon Sep 17 00:00:00 2001 From: Jean-Baptiste LE STANG Date: Wed, 3 Jan 2018 00:06:50 +0100 Subject: [PATCH 4/4] Adding the number of trades for each traded pair in the performance command --- freqtrade/rpc/telegram.py | 1 - freqtrade/tests/rpc/test_rpc_telegram.py | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 3b885c25c..e5e18ad5b 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -479,7 +479,6 @@ def _performance(bot: Bot, update: Update) -> None: stats = '\n'.join('{index}.\t{pair}\t{profit:.2f}% ({count})'.format( index=i + 1, pair=pair, - #url=exchange.get_pair_detail_url(pair), profit=round(rate * 100, 2), count=count ) for i, (pair, rate, count) in enumerate(pair_rates)) diff --git a/freqtrade/tests/rpc/test_rpc_telegram.py b/freqtrade/tests/rpc/test_rpc_telegram.py index dd91e847b..eca65bd5a 100644 --- a/freqtrade/tests/rpc/test_rpc_telegram.py +++ b/freqtrade/tests/rpc/test_rpc_telegram.py @@ -400,11 +400,10 @@ def test_performance_handle( trade.close_date = datetime.utcnow() trade.is_open = False - _performance(bot=MagicMock(), update=update) assert msg_mock.call_count == 1 assert 'Performance' in msg_mock.call_args_list[0][0][0] - assert '[BTC_ETH](https://www.bittrex.com/Market/Index?MarketName=BTC-ETH)\t6.20% (1)' in msg_mock.call_args_list[0][0][0] + assert 'BTC_ETH\t6.20% (1)' in msg_mock.call_args_list[0][0][0] def test_daily_handle(