add /delete command
This commit is contained in:
parent
ea1ddeb87d
commit
eaa7370174
@ -536,6 +536,28 @@ class RPC:
|
|||||||
return trade
|
return trade
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def _rpc_delete(self, trade_id: str) -> Dict[str, str]:
|
||||||
|
"""
|
||||||
|
Handler for delete <id>.
|
||||||
|
Delete the given trade
|
||||||
|
"""
|
||||||
|
def _exec_delete(trade: Trade) -> None:
|
||||||
|
Trade.session.delete(trade)
|
||||||
|
Trade.session.flush()
|
||||||
|
|
||||||
|
with self._freqtrade._sell_lock:
|
||||||
|
trade = Trade.get_trades(
|
||||||
|
trade_filter=[Trade.id == trade_id, ]
|
||||||
|
).first()
|
||||||
|
if not trade:
|
||||||
|
logger.warning('delete: Invalid argument received')
|
||||||
|
raise RPCException('invalid argument')
|
||||||
|
|
||||||
|
_exec_delete(trade)
|
||||||
|
Trade.session.flush()
|
||||||
|
self._freqtrade.wallets.update()
|
||||||
|
return {'result': f'Deleted trade {trade_id}.'}
|
||||||
|
|
||||||
def _rpc_performance(self) -> List[Dict[str, Any]]:
|
def _rpc_performance(self) -> List[Dict[str, Any]]:
|
||||||
"""
|
"""
|
||||||
|
@ -92,6 +92,7 @@ class Telegram(RPC):
|
|||||||
CommandHandler('stop', self._stop),
|
CommandHandler('stop', self._stop),
|
||||||
CommandHandler('forcesell', self._forcesell),
|
CommandHandler('forcesell', self._forcesell),
|
||||||
CommandHandler('forcebuy', self._forcebuy),
|
CommandHandler('forcebuy', self._forcebuy),
|
||||||
|
CommandHandler('delete', self._delete),
|
||||||
CommandHandler('performance', self._performance),
|
CommandHandler('performance', self._performance),
|
||||||
CommandHandler('daily', self._daily),
|
CommandHandler('daily', self._daily),
|
||||||
CommandHandler('count', self._count),
|
CommandHandler('count', self._count),
|
||||||
@ -496,6 +497,24 @@ class Telegram(RPC):
|
|||||||
except RPCException as e:
|
except RPCException as e:
|
||||||
self._send_msg(str(e))
|
self._send_msg(str(e))
|
||||||
|
|
||||||
|
@authorized_only
|
||||||
|
def _delete(self, update: Update, context: CallbackContext) -> None:
|
||||||
|
"""
|
||||||
|
Handler for /delete <id>.
|
||||||
|
Delete the given trade
|
||||||
|
:param bot: telegram bot
|
||||||
|
:param update: message update
|
||||||
|
:return: None
|
||||||
|
"""
|
||||||
|
|
||||||
|
trade_id = context.args[0] if len(context.args) > 0 else None
|
||||||
|
try:
|
||||||
|
msg = self._rpc_delete(trade_id)
|
||||||
|
self._send_msg('Delete Result: `{result}`'.format(**msg))
|
||||||
|
|
||||||
|
except RPCException as e:
|
||||||
|
self._send_msg(str(e))
|
||||||
|
|
||||||
@authorized_only
|
@authorized_only
|
||||||
def _performance(self, update: Update, context: CallbackContext) -> None:
|
def _performance(self, update: Update, context: CallbackContext) -> None:
|
||||||
"""
|
"""
|
||||||
@ -613,6 +632,7 @@ class Telegram(RPC):
|
|||||||
"*/forcesell <trade_id>|all:* `Instantly sells the given trade or all trades, "
|
"*/forcesell <trade_id>|all:* `Instantly sells the given trade or all trades, "
|
||||||
"regardless of profit`\n"
|
"regardless of profit`\n"
|
||||||
f"{forcebuy_text if self._config.get('forcebuy_enable', False) else ''}"
|
f"{forcebuy_text if self._config.get('forcebuy_enable', False) else ''}"
|
||||||
|
"*/delete <trade_id>:* `Instantly delete the given trade in the database`\n"
|
||||||
"*/performance:* `Show performance of each finished trade grouped by pair`\n"
|
"*/performance:* `Show performance of each finished trade grouped by pair`\n"
|
||||||
"*/daily <n>:* `Shows profit or loss per day, over the last n days`\n"
|
"*/daily <n>:* `Shows profit or loss per day, over the last n days`\n"
|
||||||
"*/count:* `Show number of trades running compared to allowed number of trades`"
|
"*/count:* `Show number of trades running compared to allowed number of trades`"
|
||||||
|
Loading…
Reference in New Issue
Block a user