import matplotlib.pyplot as plt
import numpy as np
# Setează semințele pentru reproducibilitate
np.random.seed(42)
# Generează date sintetice de preț BTC
zile = np.arange(100)
# Creează o tendință generală laterală/ascendentă cu ceva "coiling"
preț = 65000 + 5000 * np.sin(zile / 10) + np.random.normal(0, 800, 100)
# Ajustează prețul pentru a reflecta descrierea
# Respectând o linie de tendință ascendentă: începe de la ~60k, sfârșește mai sus
panta_linii_tendință = 80
preț = 60000 + panta_linii_tendință * zile + 4000 * np.sin(zile / 5)
# Zonă de rezistență în jurul 72k-74k
price = np.clip(price, 58000, 73500)
# Adaugă ceva zgomot
price += np.random.normal(0, 500, 100)
# Definește punctele liniei de tendință
x_trend = np.array([0, 100])
y_trend = 61000 + trendline_slope * x_trend
fig, ax = plt.subplots(figsize=(12, 7))
# Trasează prețul
ax.plot(days, price, color='white', linewidth=2, label='BTC/USD')
# Trasează Linia de Tendință Ascendentă
ax.plot(x_trend, y_trend, color='cyan', linestyle='--', linewidth=2, label='Suport Ascendent')
# Zona de Oferte (75K - 78K)
ax.axhspan(75000, 78000, color='red', alpha=0.2, label='Zona Superioară de Oferte')
ax.text(5, 76500, 'Zona de Oferte: $75K - $78K', color='red', fontweight='bold', fontsize=12)
# Zona de Cerere (60K - 62K)
ax.axhspan(60000, 62000, color='green', alpha=0.2, label='Zona de Cerere')
ax.text(5, 60500, 'Zona de Cerere: $60K - $62K', color='green', fontweight='bold', fontsize=12)
# Nivel de Rezistență (Vârfuri Egale)
ax.axhline(73500, color='orange', linestyle=':', linewidth=2, alpha=0.7)
ax.text(70, 74000, 'Vârfuri Egale / Rezistență', color='orange', fontsize=10)
# Formatare
ax.set_facecolor('#0e1117')
fig.patch.set_facecolor('#0e1117')
ax.spines['bottom'].set_color('white')
ax.spines['top'].set_color('white')
ax.spines['left'].set_color('white')
ax.spines['right'].set_color('white')
ax.tick_params(axis='x', colors='white')
ax.tick_params(axis='y', colors='white')
ax.set_title('Analiza Structurală BTC/USD: Compresia Intervalului', color='white', fontsize=16, pad=20)
ax.set_xlabel('Timp (HTF)', color='white')
ax.set_ylabel('Preț (USD)', color='white')
# Proiecții
# Calea Bullish
ax.annotate('', xy=(110, 77000), xytext=(100, price[-1]),
arrowprops=dict(arrowstyle='->', color='lime', lw=3, ls='--'))
ax.text(102, 76000, 'Spargere Bullish', color='lime', fontweight='bold')
# Calea Bearish
ax.annotate('', xy=(110, 61000), xytext=(100, price[-1]),
arrowprops=dict(arrowstyle='->', color='red', lw=3, ls='--'))
ax.text(102, 62000, 'Descompunere Bearish', color='red', fontweight='bold')
ax.set_xlim(0, 115)
ax.set_ylim(58000, 80000)
ax.grid(color='gray', linestyle='--', linewidth=0.5, alpha=0.3)
ax.legend(facecolor='#1e2127', edgecolor='white', labelcolor='white')
plt.tight_layout()
plt.savefig('btc_analysis_chart.png')
