"""
Configuration Optimisée basée sur l'analyse des résultats

INSIGHTS CLÉS:
- Stop-Loss = catastrophe (-82% moyenne, 0% WR)
- Timeout = PROFITABLE (+1.46% moyenne, 80% WR!)
- Take-Profit = excellent (+49.8%, 100% WR)
- Level L0 seul profitable (80% WR)
- Levels L1-L4 tous perdants à cause leverage élevé

CHANGEMENTS:
1. Leverage réduit drastiquement (100→50, 1000→500)
2. TP ratio augmenté (3:1 → 5:1)
3. SL plus large (0.3% → 0.5%)
4. Timeout gardé à 60min (il est profitable!)
5. Score minimum plus élevé (0.6 → 0.7)
"""

# ============ CONFIGURATION OPTIMISÉE ============

# Capital Management
INITIAL_CAPITAL = 1000.0
BASE_POSITION_SIZE = 10.0

# Martingale - LEVERAGE RÉDUIT
MAX_MARTINGALE_LEVEL = 5
BASE_LEVERAGE = 50              # 100 → 50 (2x moins risqué)
MAX_LEVERAGE = 500              # 1000 → 500 (2x moins risqué)
RESET_ON_WIN = True

# Risk Management - TP/SL OPTIMISÉS
STOP_LOSS_PCT = 0.005           # 0.003 → 0.005 (+67% plus large)
TAKE_PROFIT_RATIO = 5.0         # 3.0 → 5.0 (+67% plus de gain)

# Signaux - PLUS SÉLECTIF
MIN_SIGNAL_SCORE = 0.7          # 0.6 → 0.7 (meilleure qualité)

# Trading Parameters
SYMBOL = 'BTCUSDT'
INTERVAL_SECONDS = 60

# Backtest
BACKTEST_LIMIT = 1000
BACKTEST_INTERVAL = '1m'
TIMEOUT_MINUTES = 60            # Gardé à 60 (profitable!)

# Fees & Slippage
TRADING_FEE_PCT = 0.0005
SLIPPAGE_PCT = 0.0005

# Safety
MIN_CAPITAL_PCT = 0.1
MAX_POSITION_SIZE = 500.0

# ============ PRESETS V2 OPTIMISÉS ============

# Preset SAFE (très conservateur)
SAFE = {
    'base_position_size': 5.0,
    'max_martingale_level': 3,    # x8 max
    'base_leverage': 25,          # Très bas
    'max_leverage': 200,          # Plafonné
    'stop_loss_pct': 0.008,       # Large
    'take_profit_ratio': 4.0,
    'min_signal_score': 0.75      # Très sélectif
}

# Preset BALANCED_V2 (équilibré optimisé)
BALANCED_V2 = {
    'base_position_size': 10.0,
    'max_martingale_level': 5,    # x32 max
    'base_leverage': 50,          # 100 → 50
    'max_leverage': 500,          # 1000 → 500
    'stop_loss_pct': 0.005,       # 0.003 → 0.005
    'take_profit_ratio': 5.0,     # 3.0 → 5.0
    'min_signal_score': 0.7       # 0.6 → 0.7
}

# Preset AGGRESSIVE (toujours risqué mais amélioré)
AGGRESSIVE = {
    'base_position_size': 15.0,
    'max_martingale_level': 5,    # x32 max
    'base_leverage': 75,          # 100 → 75
    'max_leverage': 750,          # 1000 → 750
    'stop_loss_pct': 0.004,       # 0.003 → 0.004
    'take_profit_ratio': 6.0,     # 3.0 → 6.0 (très large!)
    'min_signal_score': 0.65      # 0.6 → 0.65
}

# Preset actuel
CURRENT_PRESET = 'BALANCED_V2'

def get_preset(name: str = None):
    """Récupère un preset de configuration"""
    if name is None:
        name = CURRENT_PRESET

    presets = {
        'SAFE': SAFE,
        'BALANCED_V2': BALANCED_V2,
        'AGGRESSIVE': AGGRESSIVE
    }

    return presets.get(name, BALANCED_V2)
