xauusd_bot/config.py

87 lines
4.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ============================================================
# config.py — Configuration Centrale du Bot XAUUSD
# ============================================================
import os
from dataclasses import dataclass, field
from typing import List
# ── Compte MT5 ──────────────────────────────────────────────
MT5_LOGIN = 0 # Renseigné via l'écran de login du dashboard
MT5_PASSWORD = "" # Ne jamais mettre ici
MT5_SERVER = "" # Ne jamais mettre ici
MANUAL_LOT_SIZE = 0.05
USE_MANUAL_LOT = True
SYMBOL = "XAUUSD"
MAGIC_NUMBER = 20240101 # Identifiant unique pour les ordres du bot
# ── Paramètres de l'Instrument ───────────────────────────────
POINT_VALUE = 0.1 # Valeur d'un point pour XAUUSD (à vérifier dans MT5)
LOT_MIN = 0.01
LOT_MAX = 10.0
LOT_STEP = 0.01
DEVIATION = 20 # Slippage max en points
# ── Gestion du Risque ────────────────────────────────────────
# NOTE : Ces paramètres sont GÉRÉS AUTOMATIQUEMENT par l'IA (trading_env.py)
# Ne pas modifier — l'env RL les calcule dynamiquement
STOP_LOSS_ATR_MULT = 8.0 # Extrême : SL très loin
TAKE_PROFIT_ATR_MULT = 24.0 # Extrême : RR 1:3 (TP = 3× SL)
RISK_PER_TRADE_PCT = 0.01 # 1% de risque par trade
# Protection compte (live_bot.py) — seul paramètre restant
DAILY_MAX_LOSS = 0.05 # Arrêt si -5% sur la session
DAILY_PROFIT_TARGET = 0.05 # Info seulement (géré par l'IA)
# ── Timeframe & Données ──────────────────────────────────────
TIMEFRAME = "M15" # Timeframe principal (M15 = 15 minutes)
LOOKBACK_BARS = 100 # 50→100 : ATR plus stable et représentatif
TRAINING_YEARS = 2 # 5→2 ans : données MT5 réelles suffisantes
TICK_INTERVAL_SEC = 1 # Intervalle de polling des ticks en live
# ── Réseau de Neurones ───────────────────────────────────────
HIDDEN_SIZE = 128 # 256→128 : 2x plus rapide, qualité quasi identique
NUM_LAYERS = 2 # 3→2 : moins de calcul
DROPOUT = 0.1
# ── Hyperparamètres PPO ──────────────────────────────────────
PPO_LR = 3e-4 # Revenir à 3e-4 (converge mieux)
PPO_GAMMA = 0.99 # Discount factor
PPO_GAE_LAMBDA = 0.95 # GAE lambda
PPO_CLIP_EPS = 0.2 # Clipping epsilon
PPO_VALUE_COEF = 0.5 # Coefficient de la value loss
PPO_ENTROPY_COEF = 0.15 # 0.10→0.15 : Plus d'exploration pour découvrir meilleures stratégies
PPO_UPDATE_EPOCHS = 4 # bon équilibre vitesse/qualité
PPO_BATCH_SIZE = 512 # bon pour CPU
PPO_ROLLOUT_STEPS = 8192 # 4096→8192 : encore moins d'overhead à 1000+ steps/s
# ── Entraînement ─────────────────────────────────────────────
TOTAL_TRAIN_STEPS = 1_000_000
SAVE_EVERY_STEPS = 25_000 # 50k→25k : évaluations 2x plus fréquentes
MODEL_PATH = "models/ppo_xauusd.pt"
CHECKPOINT_DIR = "models/checkpoints/"
# ── News & Sentiment ─────────────────────────────────────────
NEWS_UPDATE_INTERVAL = 300 # Rafraîchissement des news toutes les 5 min
SENTIMENT_WEIGHT = 0.15 # Poids du sentiment dans la décision IA
RSS_FEEDS = [
"https://feeds.reuters.com/reuters/businessNews",
"https://www.forexfactory.com/ff_calendar_thisweek.xml",
"https://www.investing.com/rss/news_25.rss", # Gold news
"https://www.kitco.com/rss/news.xml",
]
GOLD_KEYWORDS = [
"gold", "xauusd", "bullion", "inflation", "fed", "federal reserve",
"interest rate", "dollar", "usd", "treasury", "safe haven",
"geopolitical", "war", "crisis", "recession", "cpi", "pce"
]
# ── Logging & Dashboard ──────────────────────────────────────
LOG_FILE = "logs/bot_decisions.log"
LOG_LEVEL = "INFO"
DASHBOARD_REFRESH = 2 # Secondes entre chaque refresh du dashboard
# ── Device Calcul (AMD DirectML) ────────────────────────────
USE_DIRECTML = True # False = CPU fallback