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')