From dc299b4b1bb76594acda0029c7385197f4f835d8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 12 Feb 2025 00:36:06 +0100 Subject: [PATCH] fix(qav3): ensure extrema prediction fit into the live predictions period MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- .../freqaimodels/LightGBMRegressorQuickAdapterV35.py | 5 ++++- .../freqaimodels/XGBoostRegressorQuickAdapterV35.py | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py index d8ecb68..b7cff11 100644 --- a/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/LightGBMRegressorQuickAdapterV35.py @@ -249,8 +249,11 @@ class LightGBMRegressorQuickAdapterV35(BaseRegressionModel): def min_max_pred( pred_df: pd.DataFrame, fit_live_predictions_candles: int, label_period_candles: int ) -> tuple[float, float]: + label_period_frequency: int = int( + fit_live_predictions_candles / label_period_candles + ) + extrema = pred_df.tail(label_period_candles * label_period_frequency)["&s-extrema"] beta = 10.0 - extrema = pred_df.tail(label_period_candles)["&s-extrema"] min_pred = smooth_min(extrema, beta=beta) max_pred = smooth_max(extrema, beta=beta) diff --git a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py index 76682d0..5f8922a 100644 --- a/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py +++ b/quickadapter/user_data/freqaimodels/XGBoostRegressorQuickAdapterV35.py @@ -252,8 +252,11 @@ class XGBoostRegressorQuickAdapterV35(BaseRegressionModel): def min_max_pred( pred_df: pd.DataFrame, fit_live_predictions_candles: int, label_period_candles: int ) -> tuple[float, float]: + label_period_frequency: int = int( + fit_live_predictions_candles / label_period_candles + ) + extrema = pred_df.tail(label_period_candles * label_period_frequency)["&s-extrema"] beta = 10.0 - extrema = pred_df.tail(label_period_candles)["&s-extrema"] min_pred = smooth_min(extrema, beta=beta) max_pred = smooth_max(extrema, beta=beta) -- 2.43.0