Merge pull request #3369 from freqtrade/align_trade_outputs
Improve some api results
This commit is contained in:
		| @@ -257,10 +257,12 @@ class Trade(_DECL_BASE): | |||||||
|             'fee_close_currency': self.fee_close_currency, |             'fee_close_currency': self.fee_close_currency, | ||||||
|             'open_date_hum': arrow.get(self.open_date).humanize(), |             'open_date_hum': arrow.get(self.open_date).humanize(), | ||||||
|             'open_date': self.open_date.strftime("%Y-%m-%d %H:%M:%S"), |             'open_date': self.open_date.strftime("%Y-%m-%d %H:%M:%S"), | ||||||
|  |             'open_timestamp': int(self.open_date.timestamp() * 1000), | ||||||
|             'close_date_hum': (arrow.get(self.close_date).humanize() |             'close_date_hum': (arrow.get(self.close_date).humanize() | ||||||
|                                if self.close_date else None), |                                if self.close_date else None), | ||||||
|             'close_date': (self.close_date.strftime("%Y-%m-%d %H:%M:%S") |             'close_date': (self.close_date.strftime("%Y-%m-%d %H:%M:%S") | ||||||
|                            if self.close_date else None), |                            if self.close_date else None), | ||||||
|  |             'close_timestamp': int(self.close_date.timestamp() * 1000) if self.close_date else None, | ||||||
|             'open_rate': self.open_rate, |             'open_rate': self.open_rate, | ||||||
|             'open_rate_requested': self.open_rate_requested, |             'open_rate_requested': self.open_rate_requested, | ||||||
|             'open_trade_price': self.open_trade_price, |             'open_trade_price': self.open_trade_price, | ||||||
|   | |||||||
| @@ -131,13 +131,15 @@ class RPC: | |||||||
|                     current_rate = NAN |                     current_rate = NAN | ||||||
|                 current_profit = trade.calc_profit_ratio(current_rate) |                 current_profit = trade.calc_profit_ratio(current_rate) | ||||||
|                 fmt_close_profit = (f'{round(trade.close_profit * 100, 2):.2f}%' |                 fmt_close_profit = (f'{round(trade.close_profit * 100, 2):.2f}%' | ||||||
|                                     if trade.close_profit else None) |                                     if trade.close_profit is not None else None) | ||||||
|                 trade_dict = trade.to_json() |                 trade_dict = trade.to_json() | ||||||
|                 trade_dict.update(dict( |                 trade_dict.update(dict( | ||||||
|                     base_currency=self._freqtrade.config['stake_currency'], |                     base_currency=self._freqtrade.config['stake_currency'], | ||||||
|                     close_profit=fmt_close_profit, |                     close_profit=trade.close_profit if trade.close_profit is not None else None, | ||||||
|  |                     close_profit_pct=fmt_close_profit, | ||||||
|                     current_rate=current_rate, |                     current_rate=current_rate, | ||||||
|                     current_profit=round(current_profit * 100, 2), |                     current_profit=current_profit, | ||||||
|  |                     current_profit_pct=round(current_profit * 100, 2), | ||||||
|                     open_order='({} {} rem={:.8f})'.format( |                     open_order='({} {} rem={:.8f})'.format( | ||||||
|                         order['type'], order['side'], order['remaining'] |                         order['type'], order['side'], order['remaining'] | ||||||
|                     ) if order else None, |                     ) if order else None, | ||||||
| @@ -312,7 +314,9 @@ class RPC: | |||||||
|             'profit_all_fiat': profit_all_fiat, |             'profit_all_fiat': profit_all_fiat, | ||||||
|             'trade_count': len(trades), |             'trade_count': len(trades), | ||||||
|             'first_trade_date': arrow.get(trades[0].open_date).humanize(), |             'first_trade_date': arrow.get(trades[0].open_date).humanize(), | ||||||
|  |             'first_trade_timestamp': int(trades[0].open_date.timestamp() * 1000), | ||||||
|             'latest_trade_date': arrow.get(trades[-1].open_date).humanize(), |             'latest_trade_date': arrow.get(trades[-1].open_date).humanize(), | ||||||
|  |             'latest_trade_timestamp': int(trades[-1].open_date.timestamp() * 1000), | ||||||
|             'avg_duration': str(timedelta(seconds=sum(durations) / num)).split('.')[0], |             'avg_duration': str(timedelta(seconds=sum(durations) / num)).split('.')[0], | ||||||
|             'best_pair': bp_pair, |             'best_pair': bp_pair, | ||||||
|             'best_rate': round(bp_rate * 100, 2), |             'best_rate': round(bp_rate * 100, 2), | ||||||
|   | |||||||
| @@ -215,13 +215,15 @@ class Telegram(RPC): | |||||||
|                     "*Open Rate:* `{open_rate:.8f}`", |                     "*Open Rate:* `{open_rate:.8f}`", | ||||||
|                     "*Close Rate:* `{close_rate}`" if r['close_rate'] else "", |                     "*Close Rate:* `{close_rate}`" if r['close_rate'] else "", | ||||||
|                     "*Current Rate:* `{current_rate:.8f}`", |                     "*Current Rate:* `{current_rate:.8f}`", | ||||||
|                     "*Close Profit:* `{close_profit}`" if r['close_profit'] else "", |                     ("*Close Profit:* `{close_profit_pct}`" | ||||||
|                     "*Current Profit:* `{current_profit:.2f}%`", |                      if r['close_profit_pct'] is not None else ""), | ||||||
|  |                     "*Current Profit:* `{current_profit_pct:.2f}%`", | ||||||
|  |  | ||||||
|                     # Adding initial stoploss only if it is different from stoploss |                     # Adding initial stoploss only if it is different from stoploss | ||||||
|                     "*Initial Stoploss:* `{initial_stop_loss:.8f}` " + |                     "*Initial Stoploss:* `{initial_stop_loss:.8f}` " + | ||||||
|                     ("`({initial_stop_loss_pct:.2f}%)`" if r['initial_stop_loss_pct'] else "") |                     ("`({initial_stop_loss_pct:.2f}%)`") if ( | ||||||
|                     if r['stop_loss'] != r['initial_stop_loss'] else "", |                         r['stop_loss'] != r['initial_stop_loss'] | ||||||
|  |                         and r['initial_stop_loss_pct'] is not None) else "", | ||||||
|  |  | ||||||
|                     # Adding stoploss and stoploss percentage only if it is not None |                     # Adding stoploss and stoploss percentage only if it is not None | ||||||
|                     "*Stoploss:* `{stop_loss:.8f}` " + |                     "*Stoploss:* `{stop_loss:.8f}` " + | ||||||
|   | |||||||
| @@ -49,6 +49,7 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None: | |||||||
|         'base_currency': 'BTC', |         'base_currency': 'BTC', | ||||||
|         'open_date': ANY, |         'open_date': ANY, | ||||||
|         'open_date_hum': ANY, |         'open_date_hum': ANY, | ||||||
|  |         'open_timestamp': ANY, | ||||||
|         'is_open': ANY, |         'is_open': ANY, | ||||||
|         'fee_open': ANY, |         'fee_open': ANY, | ||||||
|         'fee_open_cost': ANY, |         'fee_open_cost': ANY, | ||||||
| @@ -68,13 +69,16 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None: | |||||||
|         'open_order_id': ANY, |         'open_order_id': ANY, | ||||||
|         'close_date': None, |         'close_date': None, | ||||||
|         'close_date_hum': None, |         'close_date_hum': None, | ||||||
|  |         'close_timestamp': None, | ||||||
|         'open_rate': 1.098e-05, |         'open_rate': 1.098e-05, | ||||||
|         'close_rate': None, |         'close_rate': None, | ||||||
|         'current_rate': 1.099e-05, |         'current_rate': 1.099e-05, | ||||||
|         'amount': 91.07468124, |         'amount': 91.07468124, | ||||||
|         'stake_amount': 0.001, |         'stake_amount': 0.001, | ||||||
|         'close_profit': None, |         'close_profit': None, | ||||||
|         'current_profit': -0.41, |         'close_profit_pct': None, | ||||||
|  |         'current_profit': -0.00408133, | ||||||
|  |         'current_profit_pct': -0.41, | ||||||
|         'stop_loss': 0.0, |         'stop_loss': 0.0, | ||||||
|         'initial_stop_loss': 0.0, |         'initial_stop_loss': 0.0, | ||||||
|         'initial_stop_loss_pct': None, |         'initial_stop_loss_pct': None, | ||||||
| @@ -93,6 +97,7 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None: | |||||||
|         'base_currency': 'BTC', |         'base_currency': 'BTC', | ||||||
|         'open_date': ANY, |         'open_date': ANY, | ||||||
|         'open_date_hum': ANY, |         'open_date_hum': ANY, | ||||||
|  |         'open_timestamp': ANY, | ||||||
|         'is_open': ANY, |         'is_open': ANY, | ||||||
|         'fee_open': ANY, |         'fee_open': ANY, | ||||||
|         'fee_open_cost': ANY, |         'fee_open_cost': ANY, | ||||||
| @@ -112,13 +117,16 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None: | |||||||
|         'open_order_id': ANY, |         'open_order_id': ANY, | ||||||
|         'close_date': None, |         'close_date': None, | ||||||
|         'close_date_hum': None, |         'close_date_hum': None, | ||||||
|  |         'close_timestamp': None, | ||||||
|         'open_rate': 1.098e-05, |         'open_rate': 1.098e-05, | ||||||
|         'close_rate': None, |         'close_rate': None, | ||||||
|         'current_rate': ANY, |         'current_rate': ANY, | ||||||
|         'amount': 91.07468124, |         'amount': 91.07468124, | ||||||
|         'stake_amount': 0.001, |         'stake_amount': 0.001, | ||||||
|         'close_profit': None, |         'close_profit': None, | ||||||
|  |         'close_profit_pct': None, | ||||||
|         'current_profit': ANY, |         'current_profit': ANY, | ||||||
|  |         'current_profit_pct': ANY, | ||||||
|         'stop_loss': 0.0, |         'stop_loss': 0.0, | ||||||
|         'initial_stop_loss': 0.0, |         'initial_stop_loss': 0.0, | ||||||
|         'initial_stop_loss_pct': None, |         'initial_stop_loss_pct': None, | ||||||
|   | |||||||
| @@ -420,7 +420,9 @@ def test_api_profit(botclient, mocker, ticker, fee, markets, limit_buy_order, li | |||||||
|                        'best_pair': 'ETH/BTC', |                        'best_pair': 'ETH/BTC', | ||||||
|                        'best_rate': 6.2, |                        'best_rate': 6.2, | ||||||
|                        'first_trade_date': 'just now', |                        'first_trade_date': 'just now', | ||||||
|  |                        'first_trade_timestamp': ANY, | ||||||
|                        'latest_trade_date': 'just now', |                        'latest_trade_date': 'just now', | ||||||
|  |                        'latest_trade_timestamp': ANY, | ||||||
|                        'profit_all_coin': 6.217e-05, |                        'profit_all_coin': 6.217e-05, | ||||||
|                        'profit_all_fiat': 0, |                        'profit_all_fiat': 0, | ||||||
|                        'profit_all_percent': 6.2, |                        'profit_all_percent': 6.2, | ||||||
| @@ -497,14 +499,18 @@ def test_api_status(botclient, mocker, ticker, fee, markets): | |||||||
|                         'base_currency': 'BTC', |                         'base_currency': 'BTC', | ||||||
|                         'close_date': None, |                         'close_date': None, | ||||||
|                         'close_date_hum': None, |                         'close_date_hum': None, | ||||||
|  |                         'close_timestamp': None, | ||||||
|                         'close_profit': None, |                         'close_profit': None, | ||||||
|  |                         'close_profit_pct': None, | ||||||
|                         'close_rate': None, |                         'close_rate': None, | ||||||
|                         'current_profit': -0.41, |                         'current_profit': -0.00408133, | ||||||
|  |                         'current_profit_pct': -0.41, | ||||||
|                         'current_rate': 1.099e-05, |                         'current_rate': 1.099e-05, | ||||||
|                         'initial_stop_loss': 0.0, |                         'initial_stop_loss': 0.0, | ||||||
|                         'initial_stop_loss_pct': None, |                         'initial_stop_loss_pct': None, | ||||||
|                         'open_date': ANY, |                         'open_date': ANY, | ||||||
|                         'open_date_hum': 'just now', |                         'open_date_hum': 'just now', | ||||||
|  |                         'open_timestamp': ANY, | ||||||
|                         'open_order': '(limit buy rem=0.00000000)', |                         'open_order': '(limit buy rem=0.00000000)', | ||||||
|                         'open_rate': 1.098e-05, |                         'open_rate': 1.098e-05, | ||||||
|                         'pair': 'ETH/BTC', |                         'pair': 'ETH/BTC', | ||||||
| @@ -609,11 +615,13 @@ def test_api_forcebuy(botclient, mocker, fee): | |||||||
|     assert rc.json == {'amount': 1, |     assert rc.json == {'amount': 1, | ||||||
|                        'close_date': None, |                        'close_date': None, | ||||||
|                        'close_date_hum': None, |                        'close_date_hum': None, | ||||||
|  |                        'close_timestamp': None, | ||||||
|                        'close_rate': 0.265441, |                        'close_rate': 0.265441, | ||||||
|                        'initial_stop_loss': None, |                        'initial_stop_loss': None, | ||||||
|                        'initial_stop_loss_pct': None, |                        'initial_stop_loss_pct': None, | ||||||
|                        'open_date': ANY, |                        'open_date': ANY, | ||||||
|                        'open_date_hum': 'just now', |                        'open_date_hum': 'just now', | ||||||
|  |                        'open_timestamp': ANY, | ||||||
|                        'open_rate': 0.245441, |                        'open_rate': 0.245441, | ||||||
|                        'pair': 'ETH/ETH', |                        'pair': 'ETH/ETH', | ||||||
|                        'stake_amount': 1, |                        'stake_amount': 1, | ||||||
|   | |||||||
| @@ -166,8 +166,9 @@ def test_status(default_conf, update, mocker, fee, ticker,) -> None: | |||||||
|             'current_rate': 1.098e-05, |             'current_rate': 1.098e-05, | ||||||
|             'amount': 90.99181074, |             'amount': 90.99181074, | ||||||
|             'stake_amount': 90.99181074, |             'stake_amount': 90.99181074, | ||||||
|             'close_profit': None, |             'close_profit_pct': None, | ||||||
|             'current_profit': -0.59, |             'current_profit': -0.0059, | ||||||
|  |             'current_profit_pct': -0.59, | ||||||
|             'initial_stop_loss': 1.098e-05, |             'initial_stop_loss': 1.098e-05, | ||||||
|             'stop_loss': 1.099e-05, |             'stop_loss': 1.099e-05, | ||||||
|             'sell_order_status': None, |             'sell_order_status': None, | ||||||
|   | |||||||
| @@ -739,9 +739,11 @@ def test_to_json(default_conf, fee): | |||||||
|                       'is_open': None, |                       'is_open': None, | ||||||
|                       'open_date_hum': '2 hours ago', |                       'open_date_hum': '2 hours ago', | ||||||
|                       'open_date': trade.open_date.strftime("%Y-%m-%d %H:%M:%S"), |                       'open_date': trade.open_date.strftime("%Y-%m-%d %H:%M:%S"), | ||||||
|  |                       'open_timestamp': int(trade.open_date.timestamp() * 1000), | ||||||
|                       'open_order_id': 'dry_run_buy_12345', |                       'open_order_id': 'dry_run_buy_12345', | ||||||
|                       'close_date_hum': None, |                       'close_date_hum': None, | ||||||
|                       'close_date': None, |                       'close_date': None, | ||||||
|  |                       'close_timestamp': None, | ||||||
|                       'open_rate': 0.123, |                       'open_rate': 0.123, | ||||||
|                       'open_rate_requested': None, |                       'open_rate_requested': None, | ||||||
|                       'open_trade_price': 15.1668225, |                       'open_trade_price': 15.1668225, | ||||||
| @@ -787,8 +789,10 @@ def test_to_json(default_conf, fee): | |||||||
|                       'pair': 'XRP/BTC', |                       'pair': 'XRP/BTC', | ||||||
|                       'open_date_hum': '2 hours ago', |                       'open_date_hum': '2 hours ago', | ||||||
|                       'open_date': trade.open_date.strftime("%Y-%m-%d %H:%M:%S"), |                       'open_date': trade.open_date.strftime("%Y-%m-%d %H:%M:%S"), | ||||||
|  |                       'open_timestamp': int(trade.open_date.timestamp() * 1000), | ||||||
|                       'close_date_hum': 'an hour ago', |                       'close_date_hum': 'an hour ago', | ||||||
|                       'close_date': trade.close_date.strftime("%Y-%m-%d %H:%M:%S"), |                       'close_date': trade.close_date.strftime("%Y-%m-%d %H:%M:%S"), | ||||||
|  |                       'close_timestamp': int(trade.close_date.timestamp() * 1000), | ||||||
|                       'open_rate': 0.123, |                       'open_rate': 0.123, | ||||||
|                       'close_rate': 0.125, |                       'close_rate': 0.125, | ||||||
|                       'amount': 100.0, |                       'amount': 100.0, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user