87 lines
4.6 KiB
Python
87 lines
4.6 KiB
Python
# ============================================================
|
||
# 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 |