import requests, json
from datetime import datetime

# Binance public API - klines
url = 'https://api.binance.com/api/v3/klines'
params = {
    'symbol': 'BERAUSDT',
    'interval': '5m',
    'limit': 300
}
resp = requests.get(url, params=params)
data = resp.json()
print(f"Total candles: {len(data)}")

# Our 4 trades today
trades = [
    {"id": 1, "entry_time": "01:01", "exit_time": "01:03", "entry": 0.461, "sell": 0.473, "pnl": 2.60},
    {"id": 2, "entry_time": "16:38", "exit_time": "16:39", "entry": 0.439, "sell": 0.453, "pnl": 3.19},
    {"id": 3, "entry_time": "16:43", "exit_time": "16:44", "entry": 0.481, "sell": 0.491, "pnl": 2.08},
    {"id": 4, "entry_time": "18:15", "exit_time": "18:15", "entry": 0.478, "sell": 0.493, "pnl": 3.14},
]

print("\n=== BERA/USDT 5min candles (Feb 9) ===")
today_candles = []
for c in data:
    dt = datetime.utcfromtimestamp(c[0]/1000)
    if dt.day == 9 and dt.month == 2:
        o, h, l, cl = float(c[1]), float(c[2]), float(c[3]), float(c[4])
        vol = float(c[5])
        today_candles.append((dt, o, h, l, cl, vol))
        ts = dt.strftime("%H:%M")
        print(f"  {ts} O:{o:.4f} H:{h:.4f} L:{l:.4f} C:{cl:.4f} Vol:{vol:.0f}")

print(f"\n=== ANALYSE DES TRADES ===")
for trade in trades:
    print(f"\n--- Trade #{trade['id']} ---")
    print(f"  Achat: {trade['entry']} a {trade['entry_time']}")
    print(f"  Vente: {trade['sell']} a {trade['exit_time']} (PnL: +{trade['pnl']:.2f}%)")
    
    # Find max price after sell
    sell_hour = int(trade['exit_time'].split(':')[0])
    sell_min = int(trade['exit_time'].split(':')[1])
    
    max_after = 0
    max_time = ""
    for dt, o, h, l, cl, vol in today_candles:
        candle_h = dt.hour
        candle_m = dt.minute
        if candle_h > sell_hour or (candle_h == sell_hour and candle_m > sell_min):
            if h > max_after:
                max_after = h
                max_time = dt.strftime("%H:%M")
    
    if max_after > 0:
        potential_pnl = ((max_after - trade['entry']) / trade['entry']) * 100
        missed = ((max_after - trade['sell']) / trade['sell']) * 100
        print(f"  Max prix apres vente: {max_after:.4f} a {max_time}")
        print(f"  PnL potentiel max: +{potential_pnl:.2f}%")
        print(f"  Gain manque: +{missed:.2f}% supplementaire")
    else:
        print(f"  Pas de donnees apres la vente")

# Current price
params2 = {'symbol': 'BERAUSDT'}
resp2 = requests.get('https://api.binance.com/api/v3/ticker/price', params=params2)
current = float(resp2.json()['price'])
print(f"\n=== Prix actuel BERA/USDT: {current:.4f} ===")

# For the last trade specifically
last = trades[-1]
if current > last['sell']:
    extra = ((current - last['sell']) / last['sell']) * 100
    print(f"  Si on avait garde depuis dernier trade: +{extra:.2f}% de plus")
elif current < last['sell']:
    loss = ((last['sell'] - current) / last['sell']) * 100
    print(f"  Le prix a baisse de {loss:.2f}% depuis la vente -> la vente etait correcte")
