From: Jérôme Benoit Date: Wed, 19 Mar 2025 14:41:53 +0000 (+0100) Subject: refactor(qav3): refine None/NaN checks X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=27793a6566396b2bdd4c8aa0553764feed23148d;p=freqai-strategies.git refactor(qav3): refine None/NaN checks Signed-off-by: Jérôme Benoit --- 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,