From 5288e1a775d3a87b5608786418f4081588c13048 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 10 Sep 2025 20:43:05 +0200 Subject: [PATCH] refactor(qav3): refine labeling configuration defaults MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- ReforceXY/user_data/freqaimodels/ReforceXY.py | 5 ++--- quickadapter/user_data/config-template.json | 2 +- .../user_data/freqaimodels/QuickAdapterRegressorV3.py | 2 +- quickadapter/user_data/strategies/QuickAdapterV3.py | 4 ++-- quickadapter/user_data/strategies/Utils.py | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ReforceXY/user_data/freqaimodels/ReforceXY.py b/ReforceXY/user_data/freqaimodels/ReforceXY.py index db1ad40..4b96b03 100644 --- a/ReforceXY/user_data/freqaimodels/ReforceXY.py +++ b/ReforceXY/user_data/freqaimodels/ReforceXY.py @@ -1592,9 +1592,8 @@ class MaskableTrialEvalCallback(MaskableEvalCallback): def _on_step(self) -> bool: if self.is_pruned: return False - - if self.eval_freq > 0 and self.n_calls % self.eval_freq == 0: - super()._on_step() + _super_on_step = super()._on_step() + if _super_on_step and self.eval_freq > 0 and self.n_calls % self.eval_freq == 0: self.eval_idx += 1 last_mean_reward = getattr(self, "last_mean_reward", np.nan) if not isinstance(last_mean_reward, (int, float)) or not np.isfinite( diff --git a/quickadapter/user_data/config-template.json b/quickadapter/user_data/config-template.json index 47bfb8d..4cd0b26 100644 --- a/quickadapter/user_data/config-template.json +++ b/quickadapter/user_data/config-template.json @@ -138,7 +138,7 @@ "&s-minima_threshold": -2, "&s-maxima_threshold": 2, "label_period_candles": 24, - "label_natr_ratio": 6.0, + "label_natr_ratio": 7.5, "hp_rmse": -1, "train_rmse": -1 }, diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index 271a51d..6ed2413 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -159,7 +159,7 @@ class QuickAdapterRegressorV3(BaseRegressionModel): "label_period_candles", 24 ), "label_natr_ratio": float( - self.ft_params.get("label_natr_ratio", 6.0) + self.ft_params.get("label_natr_ratio", 7.5) ), } ) diff --git a/quickadapter/user_data/strategies/QuickAdapterV3.py b/quickadapter/user_data/strategies/QuickAdapterV3.py index 5007c76..4c8e444 100644 --- a/quickadapter/user_data/strategies/QuickAdapterV3.py +++ b/quickadapter/user_data/strategies/QuickAdapterV3.py @@ -224,7 +224,7 @@ class QuickAdapterV3(IStrategy): ), "label_natr_ratio": float( self.freqai_info["feature_parameters"].get( - "label_natr_ratio", 6.0 + "label_natr_ratio", 7.5 ) ), } @@ -431,7 +431,7 @@ class QuickAdapterV3(IStrategy): if label_natr_ratio and isinstance(label_natr_ratio, float): return label_natr_ratio return float( - self.freqai_info["feature_parameters"].get("label_natr_ratio", 6.0) + self.freqai_info["feature_parameters"].get("label_natr_ratio", 7.5) ) def set_label_natr_ratio(self, pair: str, label_natr_ratio: float) -> None: diff --git a/quickadapter/user_data/strategies/Utils.py b/quickadapter/user_data/strategies/Utils.py index c4f1378..52a0e86 100644 --- a/quickadapter/user_data/strategies/Utils.py +++ b/quickadapter/user_data/strategies/Utils.py @@ -495,7 +495,7 @@ class TrendDirection(IntEnum): def zigzag( df: pd.DataFrame, natr_period: int = 14, - natr_ratio: float = 6.0, + natr_ratio: float = 7.5, ) -> tuple[list[int], list[float], list[TrendDirection], list[float]]: n = len(df) if df.empty or n < natr_period: -- 2.43.0