Enoder commited on
Commit
b71ed53
·
verified ·
1 Parent(s): 560c2c3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -1
app.py CHANGED
@@ -62,6 +62,25 @@ def predict_patterns(data, future_hours=24):
62
  patterns["Recovery"] = [last_price + (mean_price - last_price) * (i / len(future_timestamps)) for i in range(len(future_timestamps))]
63
  patterns["Acceleration"] = [last_price + (trend * 1.5) * i for i in range(len(future_timestamps))]
64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
  pattern_dfs = {
66
  pattern_name: pd.DataFrame({"timestamp": future_timestamps, "price": prices})
67
  for pattern_name, prices in patterns.items()
@@ -140,7 +159,24 @@ for coin, price_data in crypto_prices.items():
140
  "Plateau": "Ce pattern suggère que le prix restera relativement stable et horizontal, sans mouvements majeurs.",
141
  "Breakout": "Le breakout indique une rupture de la tendance actuelle, avec une direction plus forte dans une des deux directions.",
142
  "Recovery": "Le pattern de récupération suggère que le prix pourrait revenir à sa moyenne historique après une variation importante.",
143
- "Acceleration": "L'accélération suggère un mouvement rapide des prix, souvent après une période de stagnation ou de consolidation."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  }
145
 
146
  # Afficher l'explication sous le graphique
 
62
  patterns["Recovery"] = [last_price + (mean_price - last_price) * (i / len(future_timestamps)) for i in range(len(future_timestamps))]
63
  patterns["Acceleration"] = [last_price + (trend * 1.5) * i for i in range(len(future_timestamps))]
64
 
65
+ # Ajout des 20 autres patterns
66
+ patterns["Overbought"] = [last_price + cycle_amplitude * np.cos(2 * np.pi * i / len(future_timestamps)) for i in range(len(future_timestamps))]
67
+ patterns["Oversold"] = [last_price - cycle_amplitude * np.cos(2 * np.pi * i / len(future_timestamps)) for i in range(len(future_timestamps))]
68
+ patterns["DoubleTop"] = [last_price + trend * 2 if i < len(future_timestamps) // 2 else last_price - trend * 2 for i in range(len(future_timestamps))]
69
+ patterns["DoubleBottom"] = [last_price - trend * 2 if i < len(future_timestamps) // 2 else last_price + trend * 2 for i in range(len(future_timestamps))]
70
+ patterns["HeadAndShoulders"] = [last_price + (cycle_amplitude * np.sin(2 * np.pi * i / (len(future_timestamps) // 2))) for i in range(len(future_timestamps))]
71
+ patterns["InverseHeadAndShoulders"] = [last_price - (cycle_amplitude * np.sin(2 * np.pi * i / (len(future_timestamps) // 2))) for i in range(len(future_timestamps))]
72
+ patterns["Parabolic"] = [last_price + (cycle_amplitude * i ** 2) for i in range(len(future_timestamps))]
73
+ patterns["ExponentialGrowth"] = [last_price * (1 + 0.05) ** i for i in range(len(future_timestamps))]
74
+ patterns["ExponentialDecay"] = [last_price * (1 - 0.05) ** i for i in range(len(future_timestamps))]
75
+ patterns["Sinusoidal"] = [last_price + cycle_amplitude * np.sin(2 * np.pi * i / len(future_timestamps)) for i in range(len(future_timestamps))]
76
+ patterns["Flatline"] = [last_price for i in range(len(future_timestamps))]
77
+ patterns["HarmonicOscillator"] = [last_price + cycle_amplitude * np.cos(2 * np.pi * i / len(future_timestamps)) for i in range(len(future_timestamps))]
78
+ patterns["Waveform"] = [last_price + cycle_amplitude * np.sin(i) for i in range(len(future_timestamps))]
79
+ patterns["SwingHigh"] = [last_price + cycle_amplitude * np.sin(2 * np.pi * i / len(future_timestamps)) for i in range(len(future_timestamps))]
80
+ patterns["SwingLow"] = [last_price - cycle_amplitude * np.sin(2 * np.pi * i / len(future_timestamps)) for i in range(len(future_timestamps))]
81
+ patterns["AscendingTriangle"] = [last_price + cycle_amplitude * np.exp(i / len(future_timestamps)) for i in range(len(future_timestamps))]
82
+ patterns["DescendingTriangle"] = [last_price - cycle_amplitude * np.exp(i / len(future_timestamps)) for i in range(len(future_timestamps))]
83
+
84
  pattern_dfs = {
85
  pattern_name: pd.DataFrame({"timestamp": future_timestamps, "price": prices})
86
  for pattern_name, prices in patterns.items()
 
159
  "Plateau": "Ce pattern suggère que le prix restera relativement stable et horizontal, sans mouvements majeurs.",
160
  "Breakout": "Le breakout indique une rupture de la tendance actuelle, avec une direction plus forte dans une des deux directions.",
161
  "Recovery": "Le pattern de récupération suggère que le prix pourrait revenir à sa moyenne historique après une variation importante.",
162
+ "Acceleration": "L'accélération suggère un mouvement rapide des prix, souvent après une période de stagnation ou de consolidation.",
163
+ "Overbought": "Le prix est suracheté, ce qui pourrait indiquer une inversion de tendance à la baisse.",
164
+ "Oversold": "Le prix est survendu, ce qui pourrait indiquer une inversion de tendance à la hausse.",
165
+ "DoubleTop": "Il y a deux pics proches, et le prix pourrait redescendre après le deuxième sommet.",
166
+ "DoubleBottom": "Il y a deux creux proches, et le prix pourrait rebondir après le deuxième creux.",
167
+ "HeadAndShoulders": "La tête et les épaules représentent une inversion de tendance, le prix pourrait chuter après la formation.",
168
+ "InverseHeadAndShoulders": "L'inverse de la tête et des épaules représente une inversion à la hausse.",
169
+ "Parabolic": "Le prix suit une courbe parabolique, souvent avant un renversement brusque.",
170
+ "ExponentialGrowth": "Le prix suit une croissance exponentielle rapide.",
171
+ "ExponentialDecay": "Le prix suit une décroissance exponentielle rapide.",
172
+ "Sinusoidal": "Le prix fluctue selon un pattern sinusoïdal.",
173
+ "Flatline": "Le prix est stable, sans changements significatifs.",
174
+ "HarmonicOscillator": "Le prix suit un oscillateur harmonique, avec des fluctuations régulières.",
175
+ "Waveform": "Le prix suit une forme d'onde régulière.",
176
+ "SwingHigh": "Le prix forme des pics élevés, suggérant un renversement.",
177
+ "SwingLow": "Le prix forme des creux profonds, suggérant une tendance à la hausse.",
178
+ "AscendingTriangle": "Le prix suit une formation de triangle ascendant, avec des résistances élevées.",
179
+ "DescendingTriangle": "Le prix suit une formation de triangle descendant, avec des supports bas."
180
  }
181
 
182
  # Afficher l'explication sous le graphique