]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
refactor(qav3): refine labeling configuration defaults
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 10 Sep 2025 18:43:05 +0000 (20:43 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 10 Sep 2025 18:43:05 +0000 (20:43 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
ReforceXY/user_data/freqaimodels/ReforceXY.py
quickadapter/user_data/config-template.json
quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py
quickadapter/user_data/strategies/QuickAdapterV3.py
quickadapter/user_data/strategies/Utils.py

index db1ad40f0d906d6205afb0c747f2eaf6a12b9cf6..4b96b03bae0c1454a3a10e53497900ab070f6f92 100644 (file)
@@ -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(
index 47bfb8d5b4c98fb5c91d7bba79a9dde182d108c8..4cd0b26c82e18d45ec8702676285fbc66c5558b0 100644 (file)
       "&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
     },
index 271a51d8b200e2bb8a384eda0ebe41533663850e..6ed24136811020a1c9fa662579b84908319a509c 100644 (file)
@@ -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)
                     ),
                 }
             )
index 5007c766393e3d7ee37bb166a57e216003ad1815..4c8e44468afbfc712d0583e316080d6776b9a950 100644 (file)
@@ -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:
index c4f1378062109c87beada2878c56c8eb61519691..52a0e8654c825552baf055d08d6a65270401ca1b 100644 (file)
@@ -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: