From: Jérôme Benoit Date: Mon, 19 May 2025 10:14:32 +0000 (+0200) Subject: fix(qav3): better handling of low volality regime at pivots labeling X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=5a28275d3baa8479e8215e3647ea8a32ac76f72b;p=freqai-strategies.git fix(qav3): better handling of low volality regime at pivots labeling Signed-off-by: Jérôme Benoit --- diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index 7a2fcbc..100f164 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -45,7 +45,7 @@ class QuickAdapterRegressorV3(BaseRegressionModel): https://github.com/sponsors/robcaulk """ - version = "3.7.43" + version = "3.7.44" @cached_property def _optuna_config(self) -> dict: @@ -899,8 +899,8 @@ def zigzag( natr_pos = natr_values[pos] lookback_natr = natr_values[start:end] median_natr = np.median(lookback_natr) - if median_natr == 0: - median_natr = np.finfo(float).eps + if np.isclose(median_natr, 0): + return max_factor natr_ratio = natr_pos / median_natr smoothed_natr_ratio = np.sqrt(natr_ratio) @@ -946,8 +946,8 @@ def zigzag( natr_min = np.min(lookback_natr) natr_max = np.max(lookback_natr) natr_range = natr_max - natr_min - if natr_range == 0: - natr_range = np.finfo(float).eps + if np.isclose(natr_range, 0): + return min_value normalized_natr_pos = (natr_pos - natr_min) / natr_range return min_value + (max_value - min_value) * normalized_natr_pos diff --git a/quickadapter/user_data/strategies/Utils.py b/quickadapter/user_data/strategies/Utils.py index d6d7629..6315583 100644 --- a/quickadapter/user_data/strategies/Utils.py +++ b/quickadapter/user_data/strategies/Utils.py @@ -396,8 +396,8 @@ def zigzag( natr_pos = natr_values[pos] lookback_natr = natr_values[start:end] median_natr = np.median(lookback_natr) - if median_natr == 0: - median_natr = np.finfo(float).eps + if np.isclose(median_natr, 0): + return max_factor natr_ratio = natr_pos / median_natr smoothed_natr_ratio = np.sqrt(natr_ratio) @@ -443,8 +443,8 @@ def zigzag( natr_min = np.min(lookback_natr) natr_max = np.max(lookback_natr) natr_range = natr_max - natr_min - if natr_range == 0: - natr_range = np.finfo(float).eps + if np.isclose(natr_range, 0): + return min_value normalized_natr_pos = (natr_pos - natr_min) / natr_range return min_value + (max_value - min_value) * normalized_natr_pos