"""
Configuration Optimisée par IA - VERSION COMPLÈTE
==================================================
Généré le: 2025-12-28 (Mise à jour structure)
Ce fichier contient TOUS les paramètres optimisables.
Utilisez 'python ai_optimizer.py --mode full --apply' pour générer et appliquer automatiquement.
"""

# ═══════════════════════════════════════════════════════════════════════════════
# INDICATEURS TECHNIQUES OPTIMISÉS
# ═══════════════════════════════════════════════════════════════════════════════

RSI_PERIOD = 14
RSI_OVERSOLD = 30
RSI_OVERBOUGHT = 70

EMA_SHORT = 12
EMA_LONG = 26

BB_PERIOD = 20
BB_STD = 2.0

# ═══════════════════════════════════════════════════════════════════════════════
# TREND FOLLOWING
# ═══════════════════════════════════════════════════════════════════════════════

TREND_STRENGTH_THRESHOLD = 40
MOMENTUM_THRESHOLD = 1.5

# ═══════════════════════════════════════════════════════════════════════════════
# GESTION DU RISQUE
# ═══════════════════════════════════════════════════════════════════════════════

STOP_LOSS_PERCENT = 1.5    # 🔧 FIX 08/03: 0.79 trop serré (< bruit crypto 1-2%) → stop-out immédiat
TAKE_PROFIT_PERCENT = 3.0  # 🔧 FIX 08/03: 1.03 → 3.0 (ratio risque/reward 2:1 vs SL 1.5%)

# ═══════════════════════════════════════════════════════════════════════════════
# TRAILING STOP
# ═══════════════════════════════════════════════════════════════════════════════

ENABLE_TRAILING_STOP = True
TRAILING_STOP_DISTANCE = 0.8   # 🔧 FIX 08/03: 0.64 trop serré → trail sur bruit normal
TRAILING_STOP_ACTIVATION = 1.5 # 🔧 FIX 08/03: 0.4% → 1.5% (activer seulement après profit réel)

# ═══════════════════════════════════════════════════════════════════════════════
# POSITIONS
# ═══════════════════════════════════════════════════════════════════════════════

# NOTE: MAX_ORDER_SIZE n'est PAS dans _OVERRIDE_KEYS de config.py
# La valeur runtime vient de bot_settings.json (positionSize) ou config.py (500)
MAX_OPEN_POSITIONS = 10
MIN_ORDER_SIZE = 10
MAX_RISK_PER_TRADE = 20

# ═══════════════════════════════════════════════════════════════════════════════
# SIGNAUX ET FILTRES
# ═══════════════════════════════════════════════════════════════════════════════

REQUIRED_SIGNALS = 2
MIN_AI_SCORE_FOR_BUY = 65  # 🔧 FIX 08/03: 75 trop strict → bloque trop de bons signaux
BLOCK_BUY_ON_BEARISH = True
MIN_BUY_SIGNALS = 3        # 🔧 FIX 08/03: 5 trop strict pour régime EARLY_RECOVERY
MIN_SELL_SIGNALS = 4

# ═══════════════════════════════════════════════════════════════════════════════
# BREAKOUT DETECTION
# ═══════════════════════════════════════════════════════════════════════════════

ENABLE_BREAKOUT_DETECTION = True
MIN_BREAKOUT_STRENGTH = 0.5
BREAKOUT_SIGNAL_BONUS = 3

# ═══════════════════════════════════════════════════════════════════════════════
# STRATÉGIES AVANCÉES
# ═══════════════════════════════════════════════════════════════════════════════

ENABLE_ADVANCED_STRATEGIES = True
STRATEGY_CONSENSUS_THRESHOLD = 70

# ═══════════════════════════════════════════════════════════════════════════════
# MACHINE LEARNING ENSEMBLE
# ═══════════════════════════════════════════════════════════════════════════════

ENABLE_ENSEMBLE_ML = True
ML_MIN_TRAINING_SAMPLES = 200
ML_RETRAIN_INTERVAL = 50
ML_CONFIDENCE_THRESHOLD = 0.56

# ═══════════════════════════════════════════════════════════════════════════════
# FEATURE ENGINEERING
# ═══════════════════════════════════════════════════════════════════════════════

ENABLE_ADVANCED_FEATURES = True
# ═══════════════════════════════════════════════════════════════════════════════
# ROTATION INTELLIGENTE
# ═══════════════════════════════════════════════════════════════════════════════
# Paramètres optimisés pour réduire les rotations excessives (analyse 28/12)
# DÉSACTIVÉ: Redondant avec le système de remplacement intelligent + 30 positions max

ENABLE_SMART_ROTATION = False  # ⚠️ DÉSACTIVÉ - Remplacé par le système de remplacement intelligent
ROTATION_MIN_CYCLE_END_SCORE = 60        # Score minimal pour fin de cycle (défaut: 30, conservateur: 60)
ROTATION_MIN_OPPORTUNITY_SCORE = 70      # Score minimal nouvelle opportunité (défaut: 60)
ROTATION_MIN_SCORE_ADVANTAGE = 20        # Avantage minimum requis (défaut: 15)
ROTATION_MIN_PROFIT = -0.1               # Profit minimum pour rotation (défaut: -0.5)
ROTATION_MIN_HOLD_TIME = 20              # Temps de hold minimum en minutes (défaut: 10)
ROTATION_COOLDOWN = 45                   # Cooldown entre rotations en minutes (défaut: 30)
ROTATION_MAX_PER_HOUR = 2                # Maximum de rotations par heure (défaut: 5)

# ═══════════════════════════════════════════════════════════════════════════════
# EXPOSITION AU MARCHÉ
# ═══════════════════════════════════════════════════════════════════════════════
# Paramètres pour limiter l'exposition globale et le nombre de trades

MAX_TOTAL_EXPOSURE_PERCENT = 15          # Exposition maximale en % du capital (défaut: 20)
MAX_EXPOSURE_PER_CRYPTO = 2.0            # Exposition max par crypto en % (défaut: 3)
MAX_TRADES_PER_HOUR = 8                  # Nombre max de trades par heure (défaut: 12)
ENABLE_CONSERVATIVE_MODE = True          # Mode conservateur actif
BTC_VOLATILITY_THRESHOLD = 3.0           # Seuil volatilité BTC pour réduire exposition (défaut: 5)
CONSERVATIVE_FACTOR = 0.5                # Facteur de réduction en mode conservateur (défaut: 0.7)