import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # Exemple : dataframe avec une colonne sma24 n = 100 df = pd.DataFrame({ "sma24": np.sin(np.linspace(0, 6*np.pi, n)) * 50 + 200 + np.random.randn(n)*2 }) # --- paramètres lookback = 30 # nombre de bougies utilisées pour l'apprentissage future_steps = 10 # combien de bougies futures on veut estimer # --- Préparer les données X = np.arange(lookback).reshape(-1, 1) # 0 .. 29 y = df["sma24"].iloc[-lookback:].values # les dernières valeurs # --- Entraîner la régression model = LinearRegression() model.fit(X, y) # --- Prédire les valeurs futures X_future = np.arange(lookback, lookback + future_steps).reshape(-1, 1) y_future = model.predict(X_future) # --- Reconstituer la courbe complète (historique + prévision) predicted_full = np.concatenate([y, y_future]) # --- Affichage plt.figure(figsize=(10,5)) plt.plot(df.index[-lookback:], y, label="Historique (sma24)", color="blue") plt.plot( np.arange(df.index[-1]-lookback+1, df.index[-1]+future_steps+1), predicted_full, label="Régression + prévision", color="orange", linestyle="--" ) plt.axvline(df.index[-1], color="gray", linestyle=":") plt.legend() plt.title(f"Projection de SMA24 sur {future_steps} bougies futures") plt.show()