From a376e37e61f376cb710a4ea197d6570b43fdf522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Delacotte?= Date: Sun, 16 Nov 2025 21:05:48 +0100 Subject: [PATCH] TensorFlow --- Zeus_TensorFlow.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/Zeus_TensorFlow.py b/Zeus_TensorFlow.py index 8be7767..2ac2641 100644 --- a/Zeus_TensorFlow.py +++ b/Zeus_TensorFlow.py @@ -108,17 +108,17 @@ def normalize(df): return df -class Zeus_LGBMRegressor(IStrategy): +class Zeus_TensorFlow(IStrategy): startup_candle_count = 24 * 12 # Machine Learning - model_indicators = [] - indicator_target = 'percent12' - model = None + model_indicators = [] + indicator_target = 'mid_smooth_5' # Tensorflow lookback = 60 future_steps = 12 + y_no_scale = False path = f"user_data/plots/" @@ -3040,8 +3040,8 @@ class Zeus_LGBMRegressor(IStrategy): # 7) Sauvegarde self.model.save(f"{self.path}/lstm_model.keras") - np.save(f"{self.path}/lstm_scaler_X.npy", self.scaler_X.data_max_) - np.save(f"{self.path}/lstm_scaler_y.npy", self.scaler_y.data_max_) + # np.save(f"{self.path}/lstm_scaler_X.npy", self.scaler_X.data_max_) + # np.save(f"{self.path}/lstm_scaler_y.npy", self.scaler_y.data_max_) def tensorFlowPrepareDataFrame(self, dataframe, future_steps, lookback): target = self.indicator_target @@ -3062,8 +3062,13 @@ class Zeus_LGBMRegressor(IStrategy): # 4) Normalisation self.scaler_X = MinMaxScaler() X_scaled = self.scaler_X.fit_transform(X_values) - self.scaler_y = MinMaxScaler() - y_scaled = self.scaler_y.fit_transform(y_values) + + if self.y_no_scale: + y_scaled = y_values + else: + self.scaler_y = MinMaxScaler() + y_scaled = self.scaler_y.fit_transform(y_values) + # 5) Création des fenêtres glissantes X_seq = [] y_seq = [] @@ -3152,10 +3157,12 @@ class Zeus_LGBMRegressor(IStrategy): X_seq.append(X_scaled[i:i + lookback]) X_seq = np.array(X_seq) - # prédictions y_pred_scaled = model.predict(X_seq, verbose=0).flatten() - y_pred = self.scaler_y.inverse_transform(y_pred_scaled.reshape(-1, 1)).flatten() + if self.y_no_scale: + y_pred = y_pred_scaled + else: + y_pred = self.scaler_y.inverse_transform(y_pred_scaled.reshape(-1, 1)).flatten() # alignement avec les données preds = [np.nan] * len(dataframe) start = lookback