]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
perf(qav3): shorten labeling NATR period
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 10 Aug 2025 11:52:35 +0000 (13:52 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 10 Aug 2025 11:52:35 +0000 (13:52 +0200)
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
quickadapter/user_data/config-template.json
quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py
quickadapter/user_data/strategies/QuickAdapterV3.py

index f54789433eb8b1b7a97005ec6025011ba468fa25..6cd3ff83ba31856f7ee4634fc9eaa2cb9fb087ca 100644 (file)
       "n_jobs": 6,
       "n_trials": 36,
       "timeout": 7200,
-      "label_candles_step": 2,
+      "label_candles_step": 1,
       "train_candles_step": 10,
       "storage": "file"
     },
index 4b693fd69691562b0301892a7ed7f244a6aa6ced..cf90a7fd580d950019514c92a5964cd287f9042c 100644 (file)
@@ -60,7 +60,7 @@ class QuickAdapterRegressorV3(BaseRegressionModel):
     https://github.com/sponsors/robcaulk
     """
 
-    version = "3.7.110"
+    version = "3.7.111"
 
     @cached_property
     def _optuna_config(self) -> dict[str, Any]:
@@ -76,7 +76,7 @@ class QuickAdapterRegressorV3(BaseRegressionModel):
             "n_startup_trials": 15,
             "n_trials": 36,
             "timeout": 7200,
-            "label_candles_step": 2,
+            "label_candles_step": 1,
             "train_candles_step": 10,
             "expansion_ratio": 0.4,
             "seed": 1,
@@ -1351,11 +1351,12 @@ def label_objective(
             fit_live_predictions_candles
             // fit_live_predictions_candles_largest_divisor,
             candles_step,
+            12,
         ),
         candles_step,
     )
     max_label_period_candles: int = round_to_nearest_int(
-        max(fit_live_predictions_candles // 4, min_label_period_candles),
+        max(fit_live_predictions_candles // 24, min_label_period_candles, 22),
         candles_step,
     )
     label_period_candles = trial.suggest_int(
@@ -1364,7 +1365,7 @@ def label_objective(
         max_label_period_candles,
         step=candles_step,
     )
-    label_natr_ratio = trial.suggest_float("label_natr_ratio", 2.0, 38.0, step=0.01)
+    label_natr_ratio = trial.suggest_float("label_natr_ratio", 2.0, 44.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 dcfdb1b69a2759a3a9a9c117fab7e37363f05c1c..fc45b8fbcc7c942288a29d0937a4d5fd2642c159 100644 (file)
@@ -65,7 +65,7 @@ class QuickAdapterV3(IStrategy):
     INTERFACE_VERSION = 3
 
     def version(self) -> str:
-        return "3.3.150"
+        return "3.3.151"
 
     timeframe = "5m"
 
@@ -856,21 +856,7 @@ class QuickAdapterV3(IStrategy):
         take_profit_price = (
             trade.open_rate + (-1 if trade.is_short else 1) * take_profit_distance
         )
-        trade_take_profit_price_history = self.safe_append_trade_take_profit_price(
-            trade, take_profit_price
-        )
-
-        if exit_stage not in self.partial_exit_stages:
-            if not trade_take_profit_price_history:
-                return None
-            trade_take_profit_price_history = np.asarray(
-                trade_take_profit_price_history
-            )
-            return (
-                np.min(trade_take_profit_price_history)
-                if trade.is_short
-                else np.max(trade_take_profit_price_history)
-            )
+        self.safe_append_trade_take_profit_price(trade, take_profit_price)
 
         return take_profit_price