Comment créer son propre bot de trading ?
La méthode EMT : un robot n’est pas une boule de cristal, c’est un système. On le conçoit, on le teste, on l’encadre par le risque — puis seulement on le met en réel, petit.
EMT – Financial School | Centre d’excellence en finance de marché & trading
Résumé en 30 secondes
Un bot = pipeline (données → signaux → exécution → contrôle du risque → mesure).
On commence par un marché et un horizon (intraday modéré ou swing), une seule logique claire (règles if/then), et un cadre Risk‑First.
Avant l’argent réel : backtests propres (coûts inclus), walk‑forward, paper trading, puis micro‑tailille avec gates (50/100/200 trades) et kill‑switch.
Objectifs EMT (en réel, après coûts) : E ≥ 0,15 R, Profit Factor > 1,2, max drawdown ≤ 10 R, discipline ≥ 80–85 %, coûts ≤ 10–15 % de R.
1) Définir votre mandat (avant une ligne de code)
Marché & horizon : commencez par un actif liquide (indices majeurs, FX “majors”, actions large cap) et un horizon swing ou intraday modéré (pas de HFT en retail).
Style : trend‑following, breakout, mean reversion… une logique, pas trois.
Fenêtres : heures liquides (ouvertures/clôtures, overlap Londres–New York en FX).
Risk‑First (non négociable) :
Risque par trade R = 0,25–1 % du capital,
Stop‑jour −3 R, stop‑semaine −8 à −10 R,
Risque portefeuille (corrélations) ≤ 1,5–2 %,
Coûts cibles (spread+commission+slippage) ≤ 10–15 % de R.
Conformité/CGU : vérifiez que votre broker/prop autorise l’automatisation (API, news, overnight, taille).
2) L’architecture d’un bot “sain”
Données (OHLCV, calendrier, éventuellement news basiques)
→ Features (tendance, ATR, regime score, VWAP, force relative)
→ Signal (règles if/then ou modèle ML sobre)
→ Gestion du risque (taille basée sur ATR, stops/time‑stops, limites jour/semaine, corrélations)
→ Exécution (ordres limit/IOC/market, bracket/OCO, fenêtrage)
→ Mesure (E, PF, max DD, coûts, discipline)
→ Surveillance (drift, kill‑switch, alertes, journaux).
Gardez la technique simple et testable : on gagne davantage en réduisant coûts/erreurs qu’en ajoutant 10 modèles.
3) Choisir une stratégie simple et testable (3 modèles qui marchent)
Trend‑pullback (swing)
Filtre : prix > SMA200.
Entrée : pullback vers SMA20/50 avec RSI > 50.
Risque : stop 2× ATR, sortie partielle à 1 R, le reste en trailing ATR.
Breakout Donchian (actions/futures)
Filtre : compression (Bollinger Bandwidth bas).
Entrée : cassure plus haut/bas N (ex. 20).
Risque : stop ATR + no‑trade autour de grosses news.
Intraday VWAP (actions liquides)
Filtre : volume relatif > 1.
Entrée : reclaim du VWAP après pullback.
Risque : bracket (entrée+stop+cible 1–1,5 R), time‑stop si pas de follow‑through.
Chacune se code en quelques règles ; inutile d’IA “lourde” pour commencer.
4) Backtests propres (sinon, illusions garanties)
Données : propres, horodatées, sans fuite d’information (pas d’utilisation de la future bougie).
Coûts réalistes : spreads/commissions par marché, slippage (plus fort à l’ouverture/news).
Walk‑forward : entraînez/paramétrez sur une période, validez sur la suivante ; répétez (régimes différents).
Sur‑paramétrage : limitez le nombre de knobs (périodes, seuils). Moins = mieux.
Stats : E, Profit Factor, max DD, série de pertes, sensibilité aux coûts et à la latence.
5) OMS/EMS : l’usine d’ordres et la ceinture de sécurité
Ordres : market, limit, stop, stop‑limit, IOC, FOK, bracket/OCO.
Règles d’exécution :
Entrer limit quand c’est possible ; market seulement en fenêtres très liquides.
Time‑stops (si l’idée ne part pas en X minutes/barres → sortir).
Unicité des ordres (éviter doublons) et idempotence (relances sûres).
Garde‑fous :
Stop‑jour et stop‑semaine automatiques,
Kill‑switch si perte de flux, slippage anormal, écart prix/bourse, ou série rouge (ex. −3 R jour),
Journal horodaté (entrée/sortie, prix d’arrivée, prix obtenu, slippage, erreurs, captures).
6) Infra & sécurité (pragmatique)
Local pour la R&D ; VPS proche du broker/exchange pour le live (latence stable).
Clés API : chiffrées, moindres privilèges, rotation régulière.
Observabilité : logs structurés, dashboard (latence, remplissages, E/PF/DD, coûts, discipline), alertes (mail/Telegram) si seuils franchis.
Gestion des pannes : reprise idempotente, vérification de positions réelles à chaque redémarrage, circuit‑breaker.
7) Plan 30‑60‑90 jours – votre feuille de route
Jours 1–30 — Conception & test initial
Spécifier 1 setup (1 page) : contexte, règles if/then, invalidation, objectifs, time‑stops.
Construire le dataset ; coder un backtest événementiel avec coûts ; fixer R et limites.
Jours 31–60 — Paper/Shadow
Lancer le bot en simulé sur vos fenêtres ; journaliser E, PF, DD, coûts en % de R, discipline.
Corriger les erreurs d’exécution (doublons, latence, limites).
Jours 61–90 — Micro‑réel
Passer micro‑taille (0,25–0,5 R) avec ordres bracket ; activer kill‑switch.
Gate 50 trades : E > 0, discipline ≥ 80 %, coûts ≤ 15 % de R → poursuivre.
Gate 100 trades : E ≥ 0,15 R, DD ≤ 10 R → scaling prudent (+25–50 % maximum). Sinon : retour à la phase précédente.
8) KPI qui comptent (en réel, après coûts)
Espérance par trade EEE ≥ 0,15 R
Profit Factor > 1,2 (idéal ≥ 1,3)
Max drawdown ≤ 10 R ; recovery < 50–80 trades
Coûts (spread+commission+slippage) ≤ 10–15 % de R
Discipline (respect des règles) ≥ 80–85 %
Pas ces chiffres ? Ce n’est pas un “échec”, c’est une itération à faire avant de grossir.
9) Les pièges classiques (et le correctif immédiat)
| Piège | Symptôme | Correctif EMT |
|---|---|---|
| Sur‑optimisation | Backtest parfait, live médiocre | Walk‑forward, moins de paramètres, coûts réalistes |
| Coûts ignorés | E positif en backtest, négatif en réel | Fenêtres liquides, limit/bracket, TCA, coûts ≤ 15 % de R |
| Martingale/Grid | Courbe trop lisse… jusqu’au crash | Interdit. Taille fixe en R, stops/time‑stops |
| Latence & slippage | Entrées “en retard”, prix dégradés | VPS proche, contrôle ping/jitter, règles d’abstention |
| Absence de kill‑switch | Journées “noires” qui dérapent | −3 R jour, −8/−10 R semaine, coupe‑circuits |
| Non‑conformité | Compte bloqué | Lire/ respecter CGU, garder logs & audit trail |
10) Mini‑pseudocode (architecture événementielle)
while market_is_open and risk_limits_ok: data = fetch_latest_bars() # Données propres features = compute_features(data) # ATR, SMA, VWAP, regime_score signal = rules(features) # Entrée/Sortie/Abstention size = position_size(R, ATR) # Risk-based sizing orders = build_bracket(signal, size) # Entrée + Stop + Cible route_orders(orders) # Exécution log_trade_and_costs() # Journal + TCA if breach_limits() or drift_detected(): kill_switch()
Ajoutez time‑stops, vérifs de position réelle, et reprise sûre au redémarrage.
11) Stack pratique (indicative)
Langage : Python (pandas, numpy) pour la R&D ; C#/C++/Java si besoin de perf/latence.
Backtest : moteur événementiel “maison” ou framework léger, mais avec frictions (spreads, commissions, slippage).
Exécution : API broker/exchange (REST/WebSocket), ordres bracket/OCO si disponibles.
Infra : VPS proche du courtier pour le live, monitoring (logs/metrics), alerting.
Sécurité : stockage chiffré des clés API, 2FA, secrets manager, contrôle d’accès minimal.
12) La signature EMT – Financial School
Nous transformons votre idée en système opérant :
Playbooks if/then (entrées, invalidation, objectifs, time‑stops), fichiers de sizing, check‑lists.
Labs d’exécution (fenêtres liquides, ordres) et TCA (coûts) intégrés.
Gates 50/100/200 trades et kill‑switch documenté.
Revue hebdomadaire des métriques (E, PF, DD, coûts, discipline) et corrections ciblées.
Conclusion
Créer son bot de trading n’a rien de mystique : c’est un métier de process. Choisissez un marché et une logique, codez des règles simples, encadrez‑les par un Risk‑First strict, testez avec des frictions, puis passez en réel micro avec des seuils et un kill‑switch. Quand vos chiffres se maintiennent sur 100–200 trades, vous possédez un outil — pas un pari. C’est exactement l’approche d’EMT – Financial School.
Check‑list “Mon bot prêt pour le réel” (0–2 point par item)
Mandat clair (marché, horizon, fenêtres)
Règles if/then écrites + no‑trade (news/liquidité)
R défini (0,25–1 %), −3 R/jour, −8 à −10 R/semaine
Backtests walk‑forward avec coûts & slippage
Journal & TCA ; coûts ≤ 10–15 % de R
Micro‑réel en bracket, discipline ≥ 80–85 %
E ≥ 0,15 R, PF > 1,2, DD ≤ 10 R (≥ 100 trades)
Kill‑switch & reprise sûre ; CGU broker/prop validées
Mentions pédagogiques : ce contenu est informatif et ne constitue pas un conseil en investissement personnalisé. Le trading comporte un risque de perte en capital, notamment sur produits à effet de levier.
