From: Jérôme Benoit Date: Thu, 22 May 2025 08:50:30 +0000 (+0200) Subject: refactor(qav3): cleanup zigzag() implementation X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=d8bc860953871cb0adb7b5b011e4c7117aabeecb;p=freqai-strategies.git refactor(qav3): cleanup zigzag() implementation Signed-off-by: Jérôme Benoit --- diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index ef88f88..2d50c6c 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -914,14 +914,15 @@ def zigzag( ) -> float: start = max(0, pos - natr_period) end = min(pos + 1, n) + median_factor = np.median([min_factor, max_factor]) if start >= end: - return (min_factor + max_factor) / 2 + return median_factor natr_values = get_natr_values(natr_period) lookback_natr_values = natr_values[start:end] quantile = calculate_quantile(lookback_natr_values, natr_values[pos]) if np.isnan(quantile): - return (min_factor + max_factor) / 2 + return median_factor return max_factor - (max_factor - min_factor) * quantile diff --git a/quickadapter/user_data/strategies/Utils.py b/quickadapter/user_data/strategies/Utils.py index 707539e..6b7dd02 100644 --- a/quickadapter/user_data/strategies/Utils.py +++ b/quickadapter/user_data/strategies/Utils.py @@ -403,14 +403,15 @@ def zigzag( ) -> float: start = max(0, pos - natr_period) end = min(pos + 1, n) + median_factor = np.median([min_factor, max_factor]) if start >= end: - return (min_factor + max_factor) / 2 + return median_factor natr_values = get_natr_values(natr_period) lookback_natr_values = natr_values[start:end] quantile = calculate_quantile(lookback_natr_values, natr_values[pos]) if np.isnan(quantile): - return (min_factor + max_factor) / 2 + return median_factor return max_factor - (max_factor - min_factor) * quantile