#!/usr/bin/env python3
"""
Test V10 STRICT sur 9000 bougies pour voir fréquence de signaux
"""
import pandas as pd
import logging
from v10_range_strategy import V10RangeStrategy
from backtest_adaptive import AdaptiveBacktest
from backtest_v10_range import V10StrategyAdapter

logging.basicConfig(level=logging.WARNING)
logger = logging.getLogger(__name__)

# Charger 9000 bougies
df = pd.read_csv('historical_data/BTCUSDT_5m_9000candles.csv')
df['timestamp'] = pd.to_datetime(df['timestamp'])

logger.warning(f"\n{'='*80}")
logger.warning(f"🧪 TEST V10 STRICT SUR DONNÉES ÉTENDUES")
logger.warning(f"{'='*80}")
logger.warning(f"Bougies: {len(df)} (vs 2000 précédentes)")
logger.warning(f"Période: {df['timestamp'].iloc[0]} → {df['timestamp'].iloc[-1]}")
logger.warning(f"{'='*80}\n")

# Test avec leverage 150x
strategy = V10StrategyAdapter(leverage=150)
backtest = AdaptiveBacktest(strategy, initial_capital=500.0)
results = backtest.run(df, "BTCUSD_DEGEN")

if results and results['total_trades'] > 0:
    logger.warning(f"\n✅ RÉSULTATS V10 STRICT (9000 bougies):")
    logger.warning(f"   Trades: {results['total_trades']}")
    logger.warning(f"   PnL: {results['total_pnl_pct']:+.2f}%")
    logger.warning(f"   Capital final: ${results['final_capital']:.2f}")
    logger.warning(f"   Profit Factor: {results['profit_factor']:.3f}")
    logger.warning(f"   Win Rate: {results['win_rate']:.1f}%")
    logger.warning(f"   Avg Win: {results['avg_win']:.2f}%")
    logger.warning(f"   Avg Loss: {results['avg_loss']:.2f}%")
    
    # Calculer fréquence
    days = len(df) * 5 / (60 * 24)  # 5min candles -> days
    trades_per_day = results['total_trades'] / days
    logger.warning(f"\n📊 FRÉQUENCE:")
    logger.warning(f"   Période: {days:.1f} jours")
    logger.warning(f"   Trades/jour: {trades_per_day:.2f}")
    logger.warning(f"   Trades/semaine: {trades_per_day * 7:.1f}")
else:
    logger.warning(f"\n❌ Aucun trade généré")

logger.warning(f"\n{'='*80}\n")
