]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
perf(qav3): tune fit_live_predictions_candles
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 30 Sep 2025 10:46:13 +0000 (12:46 +0200)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Tue, 30 Sep 2025 10:46:13 +0000 (12:46 +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/strategies/QuickAdapterV3.py

index c22bb1f5124328a1df378e261bbb40a0ceabaef5..d62ce9e5865dd897c79fb9523355ab84a1b7d5c8 100644 (file)
     "backtest_period_days": 2,
     "write_metrics_to_disk": false,
     "identifier": "ReforceXY-PPO",
-    "fit_live_predictions_candles": 600,
+    "fit_live_predictions_candles": 864,
     "data_kitchen_thread_count": 4, // set to number of CPU threads / 4
     "track_performance": false,
     "feature_parameters": {
index c7a96838083696bcdd8e657460ed9f96e2443f45..af149f541e5c7cded6f3cd700b409e909fb66251 100644 (file)
     "write_metrics_to_disk": false,
     "identifier": "quickadapter-xgboost",
     // "identifier": "quickadapter-lightgbm",
-    "fit_live_predictions_candles": 600,
+    "fit_live_predictions_candles": 864,
     "data_kitchen_thread_count": 6, // set to number of CPU threads / 4
     "track_performance": false,
     "outlier_threshold": 0.999,
index 463794b18c1b48d6f13a51ce0f8a95e7f60cc602..aa26cd794699dcf8e58b26d3f1a9b3865219f4cb 100644 (file)
@@ -67,7 +67,7 @@ class QuickAdapterV3(IStrategy):
     INTERFACE_VERSION = 3
 
     def version(self) -> str:
-        return "3.3.159"
+        return "3.3.160"
 
     timeframe = "5m"
 
@@ -104,8 +104,17 @@ class QuickAdapterV3(IStrategy):
         2: (0.7640, 0.2),
     }
 
-    timeframe_minutes = timeframe_to_minutes(timeframe)
-    minimal_roi = {str(timeframe_minutes * 864): -1}
+    @property
+    def minimal_roi(self) -> dict[str, Any]:
+        timeframe_minutes = timeframe_to_minutes(self.config.get("timeframe", "5m"))
+        fit_live_predictions_candles = int(
+            self.freqai_info.get("fit_live_predictions_candles", 100)
+        )
+        return {str(timeframe_minutes * fit_live_predictions_candles): -1}
+
+    @minimal_roi.setter
+    def minimal_roi(self, value: dict[str, Any]) -> None:
+        pass
 
     process_only_new_candles = True
 
@@ -151,7 +160,7 @@ class QuickAdapterV3(IStrategy):
                         stoploss_guard_lookback_period_candles
                         / estimated_trade_duration_candles
                     )
-                    * 0.75
+                    * 0.5
                 )
             ),
         )