Merge pull request #3592 from freqtrade/stoploss_distance
Add stoploss-distance (to current price) to /status output
This commit is contained in:
commit
605ed90567
@ -158,6 +158,7 @@ class RPC:
|
|||||||
current_profit_abs=current_profit_abs,
|
current_profit_abs=current_profit_abs,
|
||||||
stoploss_current_dist=stoploss_current_dist,
|
stoploss_current_dist=stoploss_current_dist,
|
||||||
stoploss_current_dist_ratio=round(stoploss_current_dist_ratio, 8),
|
stoploss_current_dist_ratio=round(stoploss_current_dist_ratio, 8),
|
||||||
|
stoploss_current_dist_pct=round(stoploss_current_dist_ratio * 100, 2),
|
||||||
stoploss_entry_dist=stoploss_entry_dist,
|
stoploss_entry_dist=stoploss_entry_dist,
|
||||||
stoploss_entry_dist_ratio=round(stoploss_entry_dist_ratio, 8),
|
stoploss_entry_dist_ratio=round(stoploss_entry_dist_ratio, 8),
|
||||||
open_order='({} {} rem={:.8f})'.format(
|
open_order='({} {} rem={:.8f})'.format(
|
||||||
|
@ -239,17 +239,18 @@ class Telegram(RPC):
|
|||||||
("*Close Profit:* `{close_profit_pct}`"
|
("*Close Profit:* `{close_profit_pct}`"
|
||||||
if r['close_profit_pct'] is not None else ""),
|
if r['close_profit_pct'] is not None else ""),
|
||||||
"*Current Profit:* `{current_profit_pct:.2f}%`",
|
"*Current Profit:* `{current_profit_pct:.2f}%`",
|
||||||
|
]
|
||||||
|
if (r['stop_loss'] != r['initial_stop_loss']
|
||||||
|
and r['initial_stop_loss_pct'] is not None):
|
||||||
# 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}` " +
|
lines.append("*Initial Stoploss:* `{initial_stop_loss:.8f}` "
|
||||||
("`({initial_stop_loss_pct:.2f}%)`") if (
|
"`({initial_stop_loss_pct:.2f}%)`")
|
||||||
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}` " +
|
lines.append("*Stoploss:* `{stop_loss:.8f}` " +
|
||||||
("`({stop_loss_pct:.2f}%)`" if r['stop_loss_pct'] else ""),
|
("`({stop_loss_pct:.2f}%)`" if r['stop_loss_pct'] else ""))
|
||||||
]
|
lines.append("*Stoploss distance:* `{stoploss_current_dist:.8f}` "
|
||||||
|
"`({stoploss_current_dist_pct:.2f}%)`")
|
||||||
if r['open_order']:
|
if r['open_order']:
|
||||||
if r['sell_order_status']:
|
if r['sell_order_status']:
|
||||||
lines.append("*Open Order:* `{open_order}` - `{sell_order_status}`")
|
lines.append("*Open Order:* `{open_order}` - `{sell_order_status}`")
|
||||||
|
@ -101,6 +101,7 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None:
|
|||||||
'initial_stop_loss_ratio': -0.1,
|
'initial_stop_loss_ratio': -0.1,
|
||||||
'stoploss_current_dist': -1.1080000000000002e-06,
|
'stoploss_current_dist': -1.1080000000000002e-06,
|
||||||
'stoploss_current_dist_ratio': -0.10081893,
|
'stoploss_current_dist_ratio': -0.10081893,
|
||||||
|
'stoploss_current_dist_pct': -10.08,
|
||||||
'stoploss_entry_dist': -0.00010475,
|
'stoploss_entry_dist': -0.00010475,
|
||||||
'stoploss_entry_dist_ratio': -0.10448878,
|
'stoploss_entry_dist_ratio': -0.10448878,
|
||||||
'open_order': None,
|
'open_order': None,
|
||||||
@ -165,6 +166,7 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None:
|
|||||||
'initial_stop_loss_ratio': -0.1,
|
'initial_stop_loss_ratio': -0.1,
|
||||||
'stoploss_current_dist': ANY,
|
'stoploss_current_dist': ANY,
|
||||||
'stoploss_current_dist_ratio': ANY,
|
'stoploss_current_dist_ratio': ANY,
|
||||||
|
'stoploss_current_dist_pct': ANY,
|
||||||
'stoploss_entry_dist': -0.00010475,
|
'stoploss_entry_dist': -0.00010475,
|
||||||
'stoploss_entry_dist_ratio': -0.10448878,
|
'stoploss_entry_dist_ratio': -0.10448878,
|
||||||
'open_order': None,
|
'open_order': None,
|
||||||
|
@ -600,6 +600,7 @@ def test_api_status(botclient, mocker, ticker, fee, markets):
|
|||||||
'initial_stop_loss_ratio': -0.1,
|
'initial_stop_loss_ratio': -0.1,
|
||||||
'stoploss_current_dist': -1.1080000000000002e-06,
|
'stoploss_current_dist': -1.1080000000000002e-06,
|
||||||
'stoploss_current_dist_ratio': -0.10081893,
|
'stoploss_current_dist_ratio': -0.10081893,
|
||||||
|
'stoploss_current_dist_pct': -10.08,
|
||||||
'stoploss_entry_dist': -0.00010475,
|
'stoploss_entry_dist': -0.00010475,
|
||||||
'stoploss_entry_dist_ratio': -0.10448878,
|
'stoploss_entry_dist_ratio': -0.10448878,
|
||||||
'trade_id': 1,
|
'trade_id': 1,
|
||||||
|
@ -145,7 +145,7 @@ def test_authorized_only_exception(default_conf, mocker, caplog) -> None:
|
|||||||
assert log_has('Exception occurred within Telegram module', caplog)
|
assert log_has('Exception occurred within Telegram module', caplog)
|
||||||
|
|
||||||
|
|
||||||
def test_status(default_conf, update, mocker, fee, ticker,) -> None:
|
def test_telegram_status(default_conf, update, mocker, fee, ticker,) -> None:
|
||||||
update.message.chat.id = "123"
|
update.message.chat.id = "123"
|
||||||
default_conf['telegram']['enabled'] = False
|
default_conf['telegram']['enabled'] = False
|
||||||
default_conf['telegram']['chat_id'] = "123"
|
default_conf['telegram']['chat_id'] = "123"
|
||||||
@ -175,6 +175,8 @@ def test_status(default_conf, update, mocker, fee, ticker,) -> None:
|
|||||||
'stop_loss': 1.099e-05,
|
'stop_loss': 1.099e-05,
|
||||||
'sell_order_status': None,
|
'sell_order_status': None,
|
||||||
'initial_stop_loss_pct': -0.05,
|
'initial_stop_loss_pct': -0.05,
|
||||||
|
'stoploss_current_dist': 1e-08,
|
||||||
|
'stoploss_current_dist_pct': -0.02,
|
||||||
'stop_loss_pct': -0.01,
|
'stop_loss_pct': -0.01,
|
||||||
'open_order': '(limit buy rem=0.00000000)'
|
'open_order': '(limit buy rem=0.00000000)'
|
||||||
}]),
|
}]),
|
||||||
|
Loading…
Reference in New Issue
Block a user