Telegram candle message should be configurable
This commit is contained in:
parent
ed03ef47ef
commit
8e8f026ea7
@ -155,7 +155,8 @@
|
||||
"entry_cancel": "on",
|
||||
"exit_cancel": "on",
|
||||
"protection_trigger": "off",
|
||||
"protection_trigger_global": "on"
|
||||
"protection_trigger_global": "on",
|
||||
"show_candle": "off"
|
||||
},
|
||||
"reload": true,
|
||||
"balance_dust_level": 0.01
|
||||
|
@ -97,7 +97,8 @@ Example configuration showing the different settings:
|
||||
"entry_fill": "off",
|
||||
"exit_fill": "off",
|
||||
"protection_trigger": "off",
|
||||
"protection_trigger_global": "on"
|
||||
"protection_trigger_global": "on",
|
||||
"show_candle": "off"
|
||||
},
|
||||
"reload": true,
|
||||
"balance_dust_level": 0.01
|
||||
@ -108,7 +109,7 @@ Example configuration showing the different settings:
|
||||
`exit` notifications are sent when the order is placed, while `exit_fill` notifications are sent when the order is filled on the exchange.
|
||||
`*_fill` notifications are off by default and must be explicitly enabled.
|
||||
`protection_trigger` notifications are sent when a protection triggers and `protection_trigger_global` notifications trigger when global protections are triggered.
|
||||
|
||||
`show_candle` - show candle values as part of entry/exit messages. Only possible value is "ohlc".
|
||||
|
||||
`balance_dust_level` will define what the `/balance` command takes as "dust" - Currencies with a balance below this will be shown.
|
||||
`reload` allows you to disable reload-buttons on selected messages.
|
||||
|
@ -313,6 +313,10 @@ CONF_SCHEMA = {
|
||||
'type': 'string',
|
||||
'enum': TELEGRAM_SETTING_OPTIONS,
|
||||
},
|
||||
'show_candle': {
|
||||
'type': 'string',
|
||||
'enum': ['off', 'ohlc'],
|
||||
},
|
||||
}
|
||||
},
|
||||
'reload': {'type': 'boolean'},
|
||||
|
@ -868,7 +868,7 @@ class FreqtradeBot(LoggingMixin):
|
||||
if analyzed_candle is not None:
|
||||
candle_columns = analyzed_candle[['date', 'open', 'high', 'low', 'close']]
|
||||
msg.update({
|
||||
'analyzed_candle': candle_columns.to_json(date_unit='s', date_format='iso')
|
||||
'analyzed_candle': candle_columns.to_dict()
|
||||
})
|
||||
|
||||
# Send the message
|
||||
@ -1567,7 +1567,7 @@ class FreqtradeBot(LoggingMixin):
|
||||
if analyzed_candle is not None:
|
||||
candle_columns = analyzed_candle[['date', 'open', 'high', 'low', 'close']]
|
||||
msg.update({
|
||||
'analyzed_candle': candle_columns.to_json(date_unit='s', date_format='iso')
|
||||
'analyzed_candle': candle_columns.to_dict()
|
||||
})
|
||||
|
||||
# Send the message
|
||||
|
@ -243,6 +243,19 @@ class Telegram(RPCHandler):
|
||||
"""
|
||||
return f"{msg['exchange']}{' (dry)' if self._config['dry_run'] else ''}"
|
||||
|
||||
def _add_analyzed_candle(self, msg) -> str:
|
||||
candle_val = self._config['telegram'].get(
|
||||
'notification_settings', {}).get('show_candle', 'off')
|
||||
if candle_val != 'off' and msg.get('analyzed_candle'):
|
||||
if candle_val == 'ohlc':
|
||||
candle_json = msg['analyzed_candle']
|
||||
return (
|
||||
f"*Candle OHLC*: `{candle_json['open']}, {candle_json['high']}, "
|
||||
f"{candle_json['low']}, {candle_json['close']}`\n"
|
||||
)
|
||||
|
||||
return ''
|
||||
|
||||
def _format_entry_msg(self, msg: Dict[str, Any]) -> str:
|
||||
if self._rpc._fiat_converter:
|
||||
msg['stake_amount_fiat'] = self._rpc._fiat_converter.convert_amount(
|
||||
@ -259,8 +272,7 @@ class Telegram(RPCHandler):
|
||||
f" {entry_side['entered'] if is_fill else entry_side['enter']} {msg['pair']}"
|
||||
f" (#{msg['trade_id']})\n"
|
||||
)
|
||||
if msg.get('analyzed_candle'):
|
||||
message += f"*Analyzed Candle:* `{msg['analyzed_candle']}`\n"
|
||||
message += self._add_analyzed_candle(msg)
|
||||
message += f"*Enter Tag:* `{msg['enter_tag']}`\n" if msg.get('enter_tag') else ""
|
||||
message += f"*Amount:* `{msg['amount']:.8f}`\n"
|
||||
if msg.get('leverage') and msg.get('leverage', 1.0) != 1.0:
|
||||
@ -308,12 +320,7 @@ class Telegram(RPCHandler):
|
||||
message = (
|
||||
f"{msg['emoji']} *{self._exchange_from_msg(msg)}:* "
|
||||
f"{'Exited' if is_fill else 'Exiting'} {msg['pair']} (#{msg['trade_id']})\n"
|
||||
)
|
||||
if not is_fill and msg.get('analyzed_candle'):
|
||||
message += (
|
||||
f"*Analyzed Candle:* `{msg['analyzed_candle']}`\n"
|
||||
)
|
||||
message += (
|
||||
f"{self._add_analyzed_candle(msg)}"
|
||||
f"*{'Profit' if is_fill else 'Unrealized Profit'}:* "
|
||||
f"`{msg['profit_ratio']:.2%}{msg['profit_extra']}`\n"
|
||||
f"*Enter Tag:* `{msg['enter_tag']}`\n"
|
||||
|
Loading…
Reference in New Issue
Block a user