Trading Bot Autonome avec Grok AI

Trading Bot Autonome avec Grok

Projet expérimental de trading algorithmique utilisant l'intelligence artificielle Grok-3 (xAI) pour prendre des décisions d'investissement autonomes sur les marchés financiers américains, avec un système complet de sécurité et de monitoring en temps réel.
Important : Ce projet utilise exclusivement le Paper Trading (simulation) via Alpaca Markets. Aucun argent réel n'est investi. L'objectif est d'étudier les capacités décisionnelles des modèles d'IA dans un contexte financier contrôlé.

Vue d'ensemble du projet

Ce système de trading automatisé combine plusieurs technologies de pointe pour créer un trader IA capable d'analyser les marchés, prendre des décisions éclairées et exécuter des ordres de manière totalement autonome, tout en respectant des contraintes de sécurité strictes.

$100k Capital virtuel de départ
30min Intervalle entre cycles
11 Actions surveillées (watchlist)
5 Positions maximum simultanées

Intelligence Artificielle : Grok-3

Le cœur du système repose sur Grok-3, le modèle d'IA développé par xAI (entreprise d'Elon Musk). Contrairement à un simple algorithme de trading, Grok raisonne comme un trader humain expérimenté.

Comment Grok prend ses décisions

📊 Analyse contextuelle

Grok reçoit un contexte complet : état du portfolio, positions ouvertes, prix en temps réel, historique sur 5 jours, et ses trades passés.

🔍 Recherche web

Grok peut rechercher des actualités et analyses récentes sur n'importe quelle action pour comprendre le sentiment du marché.

📈 Analyse fondamentale

Capacité à récupérer et analyser les données fondamentales d'une entreprise (P/E ratio, croissance, dividendes).

💭 Raisonnement transparent

Chaque décision est accompagnée d'une explication détaillée du raisonnement suivi par l'IA.

🎯 Auto-critique

Tous les 5 trades, Grok analyse ses propres performances et identifie ses erreurs pour s'améliorer.

📐 Calculs optimisés

Grok calcule automatiquement la taille de position optimale en fonction du risque et du capital disponible.

Exemple de cycle de décision

15h30 - Début du cycle de trading 1. Grok reçoit le contexte : - Portfolio : $95,000 cash, 10 actions AAPL (+$125 profit) - Watchlist : AAPL, MSFT, GOOGL, JPM, WMT, JNJ, XOM, BAC, COST, UNH, CVX - Prix en temps réel + historique 5 jours 2. Grok analyse chaque action : - AAPL : déjà en position, profit actuel +7% - MSFT : recherche web → "Azure cloud revenue +28% YoY" - GOOGL : tendance baissière depuis 3 jours 3. Grok décide : { "decision": "BUY", "symbol": "MSFT", "reasoning": "Microsoft montre une forte croissance Azure. Tendance haussière confirmée. Bon point d'entrée.", "confidence": 0.78, "quantity": 12 } 4. Risk Manager valide : ✅ MSFT dans watchlist ✅ Prix acceptable ✅ Position < 10% du portfolio ✅ Aucun circuit breaker actif → TRADE APPROUVÉ 5. Exécution (Bracket Order) : - Achat : 12 MSFT @ $420 = $5,040 - Stop-loss auto : $378 (-10%) - Take-profit auto : $483 (+15%) 6. Logging complet dans la base de données

🛡️ Système de sécurité multi-couches

La sécurité est au cœur du système. Plusieurs mécanismes empêchent tout comportement dangereux :

Validations pré-trade (Risk Manager)

  1. Watchlist stricte : Seules 11 actions validées (grandes capitalisations stables) sont autorisées
  2. Blacklist : Actions volatiles interdites (GME, AMC, TSLA)
  3. Limite de positions : Maximum 5 positions simultanées
  4. Taille de position : Aucune position ne peut dépasser 10% du portfolio
  5. Seuil absolu : Aucun trade > $20,000 (sécurité hard-coded)
  6. Volume minimum : Seules les actions très liquides sont tradables
  7. Fourchette de prix : Prix minimum et maximum configurables
  8. Buying power : Vérification du capital disponible avant chaque ordre

Circuit Breakers (arrêt automatique)

🔴 3 pertes consécutives

Pause automatique d'1 heure pour éviter une spirale de pertes.

🔴 -5% du portfolio en 1 jour

Arrêt jusqu'au lendemain si la perte quotidienne dépasse 5%.

🔴 3 erreurs Grok consécutives

Pause de 30 minutes si Grok génère des erreurs techniques.

🛑 Emergency Stop manuel

Bouton d'arrêt d'urgence dans le dashboard pour stopper immédiatement.

Bracket Orders systématiques

Chaque ordre d'achat est automatiquement accompagné de deux ordres de protection :

  • Stop-loss (-10%) : Limite les pertes si le prix baisse
  • Take-profit (+15%) : Sécurise les gains si le prix monte

🎨 Dashboard de Monitoring

Interface web en temps réel (Streamlit) avec thème Matrix pour visualiser toute l'activité du bot :

Fonctionnalités du Dashboard

💰 Métriques en temps réel

Valeur du portfolio, cash disponible, buying power, positions ouvertes - mise à jour automatique toutes les 30 secondes.

📈 Graphique de performance

Courbe verte style Matrix montrant l'évolution de la valeur du portfolio dans le temps.

🎯 Statistiques de trading

Taux de réussite, nombre de trades, graphique succès vs échecs.

📊 Positions actuelles

Tableau détaillé avec symbole, quantité, prix d'entrée, prix actuel, P&L en $ et %.

🤖 Décisions de Grok

Historique des 10 dernières décisions avec raisonnement complet et niveau de confiance.

📜 Historique complet

Tous les trades exécutés avec statut (succès/échec) et détails.

⚠️ Circuit Breakers actifs

Affichage en temps réel des mécanismes de sécurité déclenchés.

🛑 Contrôle d'urgence

Bouton d'arrêt d'urgence pour stopper le trading instantanément.

🏗️ Architecture technique

Stack technologique

Backend : - Python 3.13 - SQLAlchemy 2.0 (ORM) - APScheduler (cycles automatiques) - OpenAI SDK (client Grok) APIs : - Alpaca Markets API (broker paper trading) - xAI Grok API (intelligence artificielle) Frontend : - Streamlit (dashboard web) - Plotly (graphiques interactifs) Base de données : - SQLite (4 tables : trades, portfolio_snapshots, grok_decisions, circuit_breaker_events)

Modules principaux

  1. database.py (399 lignes) : Gestion complète de la persistance SQLite avec SQLAlchemy 2.0
  2. broker_connector.py (487 lignes) : Abstraction de l'API Alpaca avec retry logic et bracket orders
  3. trading_agent.py (487 lignes) : Intégration Grok AI avec tool calling et auto-critique
  4. risk_manager.py (452 lignes) : 8 validations + 4 circuit breakers
  5. main.py (569 lignes) : Orchestrateur principal avec scheduler US/Eastern timezone
  6. dashboard.py (470 lignes) : Interface web Streamlit avec actualisation automatique

Cycle de trading automatisé

Lundi-Vendredi, 9h30-16h00 ET (15h30-22h00 Paris) Toutes les 30 minutes : 1. ✅ Vérifier circuit breakers actifs 2. 📊 Récupérer données marché (11 actions watchlist) 3. 💰 Récupérer état du portfolio 4. 🤖 Demander décision à Grok AI └─ Tool calling : web_search, get_stock_details, calculate_position_size 5. 🛡️ Valider avec Risk Manager (8 checks) 6. 💵 Exécuter bracket order si validé 7. 📝 Logger tout dans la base de données 8. 📸 Sauvegarder snapshot du portfolio 9. 🎯 Auto-critique si cycle % 5 == 0

📊 Données et traçabilité

Chaque action du bot est enregistrée dans une base de données SQLite locale :

Table : trades

Historique complet de tous les trades exécutés (réussis ou échoués) avec timestamp, symbole, action, quantité, prix, reasoning, order_id.

Table : portfolio_snapshots

État du portfolio à chaque cycle : valeur totale, cash, positions (JSON), buying power, P&L quotidien.

Table : grok_decisions

Toutes les décisions de Grok (exécutées ou rejetées) avec contexte complet, analyse, niveau de confiance, et raison de rejet si applicable.

Table : circuit_breaker_events

Événements de sécurité : type (consecutive_losses, daily_loss, etc.), raison, durée, timestamp de reprise.

🎓 Apprentissage et amélioration continue

Le système intègre un mécanisme d'apprentissage par auto-critique :

Tous les 5 trades, Grok analyse ses propres performances :
  • Identification des trades réussis et ratés
  • Analyse des erreurs de jugement
  • Ajustement de la stratégie pour les prochains cycles
  • Logging complet de l'auto-critique dans la DB

⚙️ Configuration et paramètres

Watchlist (11 actions) : AAPL, MSFT, GOOGL, JPM, WMT, JNJ, XOM, BAC, COST, UNH, CVX (Grandes capitalisations stables uniquement) Blacklist (interdites) : GME, AMC, TSLA (trop volatiles) Limites de trading : - Max positions : 5 - Max position size : 10% du portfolio - Max absolue : $20,000 par trade - Stop-loss : -10% - Take-profit : +15% Fréquence : - Cycle : 30 minutes - Heures : Lun-Ven 9h30-16h00 ET (15h30-22h00 Paris)

🚀 Résultats attendus et objectifs

Ce projet est avant tout expérimental et éducatif. Les objectifs principaux sont :

  1. Évaluer les capacités décisionnelles de Grok-3 dans un contexte financier complexe
  2. Tester l'autonomie d'une IA avec accès à des outils (tool calling) pour rechercher et analyser
  3. Étudier l'apprentissage par auto-critique : Grok peut-il s'améliorer en analysant ses erreurs ?
  4. Valider l'architecture de sécurité : les circuit breakers et validations empêchent-ils les comportements dangereux ?
  5. Mesurer la performance en paper trading sur plusieurs semaines/mois
Critère de succès : Un taux de réussite ≥ 50% et un drawdown maximum < 15% sur 1 mois de paper trading seraient considérés comme des résultats positifs pour un système autonome.

⚠️ Limitations et considérations

  • Paper trading uniquement : Aucun argent réel n'est investi. Les conditions réelles (slippage, latence, impact psychologique) ne sont pas testées.
  • Coûts API : Chaque appel à Grok-3 a un coût (tokens). À raison de 48 cycles/jour ouvrable, les coûts s'accumulent.
  • Latence : Les décisions de Grok prennent plusieurs secondes (parfois 10-30s avec tool calling), ce qui serait problématique pour du day trading rapide.
  • Pas de garantie de performance : Les marchés sont imprévisibles. Une IA, aussi avancée soit-elle, ne peut pas prédire l'avenir.
  • Watchlist limitée : Seulement 11 actions pour limiter les risques, mais cela réduit les opportunités.

🔮 Évolutions futures possibles

  • Multi-modèles : Tester plusieurs IA (Claude, GPT, Gemini) et comparer leurs performances
  • Analyse technique avancée : Ajouter des indicateurs (RSI, MACD, Bollinger) en tant que tools
  • Backtesting : Tester les stratégies de Grok sur des données historiques
  • Optimisation des paramètres : A/B testing sur stop-loss, take-profit, taille de position
  • Alertes Discord/Telegram : Notifications en temps réel des décisions importantes
  • Mode ensemble : Combiner les décisions de plusieurs IA pour réduire le biais

📝 Conclusion

Ce projet de Trading Bot autonome avec Grok AI représente une exploration fascinante à l'intersection de l'intelligence artificielle et de la finance. En combinant les capacités de raisonnement de Grok-3, un système de sécurité multi-couches, et une interface de monitoring en temps réel, le système démontre comment une IA peut être déployée de manière responsable dans un domaine à haut risque.

Les résultats de cette expérimentation permettront de mieux comprendre :

  • Les forces et faiblesses des LLM dans la prise de décision financière
  • L'importance des mécanismes de sécurité (circuit breakers, validations)
  • La capacité d'une IA à apprendre de ses erreurs via l'auto-critique
  • Les défis techniques (latence, coûts, fiabilité) d'un système autonome
Note importante : Ce projet est strictement éducatif et expérimental. Il ne constitue en aucun cas un conseil en investissement. Les performances passées ne garantissent pas les résultats futurs. Le trading comporte des risques de perte en capital.

Projet développé par François MENGUY
Stack : Python 3.13, Grok-3 (xAI), Alpaca Markets, Streamlit, SQLAlchemy
Mode : Paper Trading exclusivement | Février 2026