From 3a74f1e789bc874180f038fd3e627163acb35978 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Thu, 31 Jul 2025 18:22:39 +0200 Subject: [PATCH] fix(qav3): pivot confirmation logic at labeling MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .../user_data/freqaimodels/QuickAdapterRegressorV3.py | 6 +++--- quickadapter/user_data/strategies/QuickAdapterV3.py | 4 ++-- quickadapter/user_data/strategies/Utils.py | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index 854c683..097f78b 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -51,7 +51,7 @@ class QuickAdapterRegressorV3(BaseRegressionModel): https://github.com/sponsors/robcaulk """ - version = "3.7.106" + version = "3.7.107" @cached_property def _optuna_config(self) -> dict[str, Any]: @@ -1544,14 +1544,14 @@ def zigzag( def calculate_slopes_ok_threshold( pos: int, - min_threshold: float = 0.85, + min_threshold: float = 0.75, max_threshold: float = 0.95, ) -> float: volatility_quantile = calculate_volatility_quantile(pos) if np.isnan(volatility_quantile): return median([min_threshold, max_threshold]) - return min_threshold + (max_threshold - min_threshold) * volatility_quantile + return max_threshold - (max_threshold - min_threshold) * volatility_quantile def update_candidate_pivot(pos: int, value: float): nonlocal candidate_pivot_pos, candidate_pivot_value diff --git a/quickadapter/user_data/strategies/QuickAdapterV3.py b/quickadapter/user_data/strategies/QuickAdapterV3.py index cf24213..1445896 100644 --- a/quickadapter/user_data/strategies/QuickAdapterV3.py +++ b/quickadapter/user_data/strategies/QuickAdapterV3.py @@ -65,7 +65,7 @@ class QuickAdapterV3(IStrategy): INTERFACE_VERSION = 3 def version(self) -> str: - return "3.3.115" + return "3.3.116" timeframe = "5m" @@ -965,7 +965,7 @@ class QuickAdapterV3(IStrategy): lower_bound = 0 upper_bound = 0 price_deviation = (last_candle_natr / 100.0) * self.get_entry_natr_ratio( - pair, 0.0025 + pair, 0.00125 ) if side == "long": lower_bound = last_candle_low * (1 - price_deviation) diff --git a/quickadapter/user_data/strategies/Utils.py b/quickadapter/user_data/strategies/Utils.py index 9d6bd97..7c26955 100644 --- a/quickadapter/user_data/strategies/Utils.py +++ b/quickadapter/user_data/strategies/Utils.py @@ -451,14 +451,14 @@ def zigzag( def calculate_slopes_ok_threshold( pos: int, - min_threshold: float = 0.85, + min_threshold: float = 0.75, max_threshold: float = 0.95, ) -> float: volatility_quantile = calculate_volatility_quantile(pos) if np.isnan(volatility_quantile): return median([min_threshold, max_threshold]) - return min_threshold + (max_threshold - min_threshold) * volatility_quantile + return max_threshold - (max_threshold - min_threshold) * volatility_quantile def update_candidate_pivot(pos: int, value: float): nonlocal candidate_pivot_pos, candidate_pivot_value -- 2.43.0