Enoder commited on
Commit
0a070b8
·
verified ·
1 Parent(s): 0fc5521

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -9
app.py CHANGED
@@ -71,15 +71,26 @@ def find_similar_pattern(df, prediction, future_hours=24):
71
  # Fonction pour générer une prédiction dynamique (Courbe verte)
72
  def generate_dynamic_prediction(df, initial_prediction, future_hours=24):
73
  # Prendre la prédiction initiale comme base
74
- green_prediction = initial_prediction
75
-
76
- # Assurer que la longueur des deux correspondantes
77
- future_timestamps = pd.date_range(df.index[-1], periods=future_hours+1, freq='H')[1:]
78
-
79
- # Si la longueur des prédictions dépasse la taille de future_timestamps, ajuster
80
- green_prediction = green_prediction[:len(future_timestamps)]
81
-
82
- return green_prediction, future_timestamps
 
 
 
 
 
 
 
 
 
 
 
83
 
84
  # Configuration des dates
85
  end_time = datetime.now()
 
71
  # Fonction pour générer une prédiction dynamique (Courbe verte)
72
  def generate_dynamic_prediction(df, initial_prediction, future_hours=24):
73
  # Prendre la prédiction initiale comme base
74
+ green_prediction = list(initial_prediction)
75
+
76
+ # Appliquer une mise à jour dynamique à la prédiction en utilisant des patterns passés
77
+ for i in range(future_hours):
78
+ last_price = df["price"].iloc[-1]
79
+
80
+ # Utilisation de la tendance de l'EMA (moyenne mobile exponentielle)
81
+ ema = df["price"].ewm(span=10, adjust=False).mean().iloc[-1]
82
+
83
+ # Ajout de la variation d'amplitude de cycle à la prédiction
84
+ cycle_amplitude = (df["price"].max() - df["price"].min()) / 2
85
+ cycle_pred = cycle_amplitude * np.sin(2 * np.pi * i / future_hours)
86
+
87
+ # Calcul du prochain prix comme étant la somme de la tendance EMA et de la variation cyclique
88
+ green_prediction.append(ema + cycle_pred)
89
+
90
+ # Mettre à jour le DataFrame avec la nouvelle valeur pour la prochaine itération
91
+ df = df.append(pd.DataFrame([[df.index[-1] + timedelta(hours=i), green_prediction[-1]]], columns=['timestamp', 'price']))
92
+
93
+ return green_prediction, df.index[-future_hours:]
94
 
95
  # Configuration des dates
96
  end_time = datetime.now()