From d4fd13bf501b73b6a54fe1231c9bf9fb8d801b25 Mon Sep 17 00:00:00 2001 From: Dardon Date: Sat, 20 Nov 2021 16:26:07 +0000 Subject: [PATCH] Telegram and log prints strategy version. --- freqtrade/rpc/telegram.py | 6 +++++- freqtrade/strategy/interface.py | 6 ++++++ freqtrade/worker.py | 8 ++++++-- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 0e1a6fe27..7fa4cf0f9 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -1304,7 +1304,11 @@ class Telegram(RPCHandler): :param update: message update :return: None """ - self._send_msg('*Version:* `{}`'.format(__version__)) + strategy_version = self._rpc._freqtrade.strategy.version() + if strategy_version is None: + self._send_msg('*Version:* `{}`'.format(__version__)) + else: + self._send_msg('*Freqtrade version:* `{}`, *Strategy version:* `{}`'.format(__version__, strategy_version)) @authorized_only def _show_config(self, update: Update, context: CallbackContext) -> None: diff --git a/freqtrade/strategy/interface.py b/freqtrade/strategy/interface.py index d4b496ed0..38be19384 100644 --- a/freqtrade/strategy/interface.py +++ b/freqtrade/strategy/interface.py @@ -393,6 +393,12 @@ class IStrategy(ABC, HyperStrategyMixin): ] """ return [] + + def version(self) -> str: + """ + Returns version of the strategy. + """ + return None ### # END - Intended to be overridden by strategy diff --git a/freqtrade/worker.py b/freqtrade/worker.py index 5c0de86ff..c3822d2fc 100755 --- a/freqtrade/worker.py +++ b/freqtrade/worker.py @@ -113,12 +113,16 @@ class Worker: if self._heartbeat_interval: now = time.time() if (now - self._heartbeat_msg) > self._heartbeat_interval: + version = __version__ + strategy_version = self.freqtrade.strategy.version() + if (strategy_version != None): + version += ', strategy_version: ' + strategy_version logger.info(f"Bot heartbeat. PID={getpid()}, " - f"version='{__version__}', state='{state.name}'") + f"version='{version}', state='{state.name}'") self._heartbeat_msg = now return state - + def _throttle(self, func: Callable[..., Any], throttle_secs: float, *args, **kwargs) -> Any: """ Throttles the given callable that it