"""
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 = 0.79
TAKE_PROFIT_PERCENT = 1.03

# ═══════════════════════════════════════════════════════════════════════════════
# TRAILING STOP
# ═══════════════════════════════════════════════════════════════════════════════

ENABLE_TRAILING_STOP = True
TRAILING_STOP_DISTANCE = 0.64
TRAILING_STOP_ACTIVATION = 0.4

# ═══════════════════════════════════════════════════════════════════════════════
# POSITIONS
# ═══════════════════════════════════════════════════════════════════════════════

MAX_ORDER_SIZE = 40
MAX_OPEN_POSITIONS = 10
MIN_ORDER_SIZE = 10
MAX_RISK_PER_TRADE = 20

# ═══════════════════════════════════════════════════════════════════════════════
# SIGNAUX ET FILTRES
# ═══════════════════════════════════════════════════════════════════════════════

REQUIRED_SIGNALS = 2
MIN_AI_SCORE_FOR_BUY = 70
BLOCK_BUY_ON_BEARISH = True
MIN_BUY_SIGNALS = 4
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)

# ═══════════════════════════════════════════════════════════════════════════════
# SÉLECTION DE VALEURS (BLACKLIST / WHITELIST)
# ═══════════════════════════════════════════════════════════════════════════════
# Calculé automatiquement par le pipeline IA à partir de l'analyse des trades
# Blacklist: symboles avec WR<25% et PnL cumulé <-5% sur ≥5 trades
# Whitelist: symboles avec WR≥45% et PnL cumulé >2% sur ≥5 trades

ENABLE_SYMBOL_FILTER = True              # Activer le filtre par symbole
SYMBOL_BLACKLIST = 'ACTUSDT, WIFUSDT, LINKUSDT, SOPHUSDT, EIGENUSDT, STRKUSDT'
SYMBOL_WHITELIST = 'OPUSDT, PEOPLEUSDT, SAHARAUSDT'