Merge pull request #3369 from freqtrade/align_trade_outputs
Improve some api results
This commit is contained in:
commit
0234e4d293
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user