From bba1ede9019e59087d6bebf6e73e0fa2aa45b7ab Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Sun, 10 Aug 2025 13:52:35 +0200 Subject: [PATCH] perf(qav3): shorten labeling NATR period MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- quickadapter/user_data/config-template.json | 2 +- .../freqaimodels/QuickAdapterRegressorV3.py | 9 +++++---- .../user_data/strategies/QuickAdapterV3.py | 18 ++---------------- 3 files changed, 8 insertions(+), 21 deletions(-) diff --git a/quickadapter/user_data/config-template.json b/quickadapter/user_data/config-template.json index f547894..6cd3ff8 100644 --- a/quickadapter/user_data/config-template.json +++ b/quickadapter/user_data/config-template.json @@ -126,7 +126,7 @@ "n_jobs": 6, "n_trials": 36, "timeout": 7200, - "label_candles_step": 2, + "label_candles_step": 1, "train_candles_step": 10, "storage": "file" }, diff --git a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py index 4b693fd..cf90a7f 100644 --- a/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py +++ b/quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py @@ -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) :] diff --git a/quickadapter/user_data/strategies/QuickAdapterV3.py b/quickadapter/user_data/strategies/QuickAdapterV3.py index dcfdb1b..fc45b8f 100644 --- a/quickadapter/user_data/strategies/QuickAdapterV3.py +++ b/quickadapter/user_data/strategies/QuickAdapterV3.py @@ -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 -- 2.43.0