From 27793a6566396b2bdd4c8aa0553764feed23148d Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 19 Mar 2025 15:41:53 +0100 Subject: [PATCH] refactor(qav3): refine None/NaN checks MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- quickadapter/user_data/strategies/QuickAdapterV3.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/quickadapter/user_data/strategies/QuickAdapterV3.py b/quickadapter/user_data/strategies/QuickAdapterV3.py index 3e545e5..0747044 100644 --- a/quickadapter/user_data/strategies/QuickAdapterV3.py +++ b/quickadapter/user_data/strategies/QuickAdapterV3.py @@ -4,7 +4,7 @@ from functools import reduce import datetime from pathlib import Path import talib.abstract as ta -from pandas import DataFrame, Series +from pandas import DataFrame, Series, isna from technical import qtpylib from typing import Optional from freqtrade.exchange import timeframe_to_minutes, timeframe_to_prev_date @@ -402,10 +402,18 @@ class QuickAdapterV3(IStrategy): def get_trade_stoploss_distance(self, df: DataFrame, trade: Trade) -> float: entry_natr = self.get_trade_entry_natr(df, trade) - if entry_natr is None: + if isna(entry_natr): return 0.0 return trade.open_rate * entry_natr * self.trailing_stoploss_natr_ratio + def get_current_stoploss_distance( + self, df: DataFrame, current_rate: float + ) -> float: + current_natr = df["natr_ratio_labeling_window"].iloc[-1] + if isna(current_natr): + return 0.0 + return current_rate * current_natr * self.trailing_stoploss_natr_ratio + def custom_stoploss( self, pair: str, -- 2.43.0