]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
perf(qav3): fine tune pivot labeling optimization
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 12 Sep 2025 12:42:38 +0000 (14:42 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Fri, 12 Sep 2025 12:42:38 +0000 (14:42 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
ReforceXY/user_data/config-template.json
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 885404457babc15bca0de74a3f052321595795cc..4649178953a5f00e5955ca0407f08071e88f29ce 100644 (file)
     "enabled": true,
     "conv_width": 1,
     "purge_old_models": 2,
-    "expiration_hours": 12,
+    "expiration_hours": 48,
     "train_period_days": 60,
     // "live_retrain_hours": 0.5,
     "backtest_period_days": 2,
index 4cd0b26c82e18d45ec8702676285fbc66c5558b0..68a34a5ad101501a22d2fec328c2528c755192ed 100644 (file)
       "&s-minima_threshold": -2,
       "&s-maxima_threshold": 2,
       "label_period_candles": 24,
-      "label_natr_ratio": 7.5,
+      "label_natr_ratio": 8.0,
       "hp_rmse": -1,
       "train_rmse": -1
     },
index 8826d112099a2abeaff3ff931f6a680957d1813e..62cc15f09f0a986fec8b30361792520a164b4a13 100644 (file)
@@ -159,7 +159,7 @@ class QuickAdapterRegressorV3(BaseRegressionModel):
                         "label_period_candles", 24
                     ),
                     "label_natr_ratio": float(
-                        self.ft_params.get("label_natr_ratio", 7.5)
+                        self.ft_params.get("label_natr_ratio", 8.0)
                     ),
                 }
             )
@@ -1420,7 +1420,7 @@ def label_objective(
         max_label_period_candles,
         step=candles_step,
     )
-    label_natr_ratio = trial.suggest_float("label_natr_ratio", 7.5, 21.5, step=0.01)
+    label_natr_ratio = trial.suggest_float("label_natr_ratio", 8.0, 20.0, step=0.01)
 
     label_period_cycles = fit_live_predictions_candles / label_period_candles
     df = df.iloc[-(max(2, int(label_period_cycles)) * label_period_candles) :]
index 4c8e44468afbfc712d0583e316080d6776b9a950..c60ac683b56b1afa6482361636757f8b9d4a97ee 100644 (file)
@@ -224,7 +224,7 @@ class QuickAdapterV3(IStrategy):
                     ),
                     "label_natr_ratio": float(
                         self.freqai_info["feature_parameters"].get(
-                            "label_natr_ratio", 7.5
+                            "label_natr_ratio", 8.0
                         )
                     ),
                 }
@@ -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", 7.5)
+            self.freqai_info["feature_parameters"].get("label_natr_ratio", 8.0)
         )
 
     def set_label_natr_ratio(self, pair: str, label_natr_ratio: float) -> None:
index 52a0e8654c825552baf055d08d6a65270401ca1b..740028584fc06b0b8ae1c6b02453773051af0bca 100644 (file)
@@ -495,7 +495,7 @@ class TrendDirection(IntEnum):
 def zigzag(
     df: pd.DataFrame,
     natr_period: int = 14,
-    natr_ratio: float = 7.5,
+    natr_ratio: float = 8.0,
 ) -> tuple[list[int], list[float], list[TrendDirection], list[float]]:
     n = len(df)
     if df.empty or n < natr_period: