#!/usr/bin/env python3
from optimize_price_extremes import OptimizedPriceExtremes
from martingale_backtester import MartingaleBacktester

print("Test Price Extremes Simple\n")

backtester = MartingaleBacktester(
    initial_capital=1000.0,
    trading_fee_pct=0.0005,
    timeout_minutes=60
)

print("Téléchargement données...")
df = backtester.fetch_binance_data('BTCUSDT', '1m', 1000)
print(f"Données: {len(df)} bougies\n")

# Test avec config baseline
strategy = OptimizedPriceExtremes(
    percentile_low=10,
    percentile_high=90,
    lookback=100,
    base_position_size=11.0,
    max_martingale_level=6,
    base_leverage=20,
    max_leverage=1000,
    stop_loss_pct=0.003,
    take_profit_ratio=3.0,
    min_signal_score=0.0
)

print("Lancement backtest...")
result = backtester.run_backtest(df, 'BTCUSDT', strategy, verbose=False)

if result:
    print(f"\n✅ RÉSULTAT:")
    print(f"   ROI: {result.total_return_pct:+.2f}%")
    print(f"   Trades: {result.total_trades}")
    print(f"   WR: {result.win_rate*100:.1f}%")
    print(f"   PF: {result.profit_factor:.2f}")
    print(f"   DD: {result.max_drawdown_pct:.2f}%")
    print(f"   Capital: ${result.final_capital:.2f}")
else:
    print("❌ Aucun résultat!")
