From: Jérôme Benoit Date: Sun, 17 Aug 2025 11:20:30 +0000 (+0200) Subject: perf(qav3): switch stoploss factor to soft saturation method arctan X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=d0afa9d9f2da7d18d6f083e75b02c8ce3035e62a;p=freqai-strategies.git perf(qav3): switch stoploss factor to soft saturation method arctan based Signed-off-by: Jérôme Benoit --- diff --git a/quickadapter/user_data/strategies/QuickAdapterV3.py b/quickadapter/user_data/strategies/QuickAdapterV3.py index 43d3e20..e75aa1e 100644 --- a/quickadapter/user_data/strategies/QuickAdapterV3.py +++ b/quickadapter/user_data/strategies/QuickAdapterV3.py @@ -744,8 +744,8 @@ class QuickAdapterV3(IStrategy): @staticmethod @lru_cache(maxsize=128) - def get_stoploss_log_factor(trade_duration_candles: int) -> float: - return 1 / math.log10(2.0 + 0.25 * trade_duration_candles) + def get_stoploss_factor(trade_duration_candles: int) -> float: + return 2.75 / (1.2675 + math.atan(0.25 * trade_duration_candles)) def get_stoploss_distance( self, @@ -764,14 +764,14 @@ class QuickAdapterV3(IStrategy): current_rate * (trade_natr / 100.0) * self.get_label_natr_ratio_percent(trade.pair, natr_ratio_percent) - * QuickAdapterV3.get_stoploss_log_factor( - trade_duration_candles + int(round(trade.nr_of_successful_exits**1.25)) + * QuickAdapterV3.get_stoploss_factor( + trade_duration_candles + int(round(trade.nr_of_successful_exits**1.5)) ) ) @staticmethod @lru_cache(maxsize=128) - def get_take_profit_log_factor(trade_duration_candles: int) -> float: + def get_take_profit_factor(trade_duration_candles: int) -> float: return math.log10(9.75 + 0.25 * trade_duration_candles) def get_take_profit_distance( @@ -787,7 +787,7 @@ class QuickAdapterV3(IStrategy): trade.open_rate * (trade_natr / 100.0) * self.get_label_natr_ratio_percent(trade.pair, natr_ratio_percent) - * QuickAdapterV3.get_take_profit_log_factor(trade_duration_candles) + * QuickAdapterV3.get_take_profit_factor(trade_duration_candles) ) def throttle_callback( @@ -1124,7 +1124,7 @@ class QuickAdapterV3(IStrategy): rate: float, min_natr_ratio_percent: float = 0.00999, max_natr_ratio_percent: float = 0.099, - lookback_period: int = 0, + lookback_period: int = 1, decay_ratio: float = 0.9, ) -> bool: """