Case study · Solo · 2025 — présent

SentinelAI analyse boursière multi-agents.

Plateforme d'analyse boursière qui orchestre 12 agents IA spécialisés — fondamentaux, sentiment, technique, macro — en parallèle. Un orchestrateur synthétise leurs signaux en score pondéré + résumé LLM par ticker.

Meta-ensemble machine learning, backtesting historique, apprentissage autonome de la pondération des agents selon leur performance. Stack Python / FastAPI / Next.js, orchestration OpenAI + Anthropic.

Rôle
Solo — architecture, ML, API, frontend
Période
2025 — présent (beta)
Statut
Beta privée · backtesting en cours
Stack
Python, FastAPI, Next.js, TypeScript, scikit-learn, LightGBM, Docker, OpenAI, Anthropic
SentinelAI — graphique candlesticks du ticker ASTS avec signaux multi-stratégies overlay et tableau de backtest comparatif (Return, Win Rate, Sharpe, Sortino, Max Drawdown, Profit Factor)

Le problème résolu

L'analyse boursière individuelle souffre d'un biais cognitif bien documenté : l'investisseur privé privilégie un seul angle — souvent l'analyse technique ou le buzz social — et néglige les fondamentaux, la macroéconomie, ou le sentiment global. Les plateformes existantes (TradingView, Seeking Alpha, Koyfin) fournissent des données brutes mais rarement une synthèse multi-angle agrégée.

SentinelAI cherche à résoudre ce problème en orchestrant 12 angles d'analyse simultanément, chacun exécuté par un agent LLM spécialisé avec son propre corpus de prompts, ses outils d'API (Yahoo Finance, Alpha Vantage, FRED, SEC EDGAR, Reddit/Twitter sentiment), et son modèle de scoring.

L'approche multi-agents

Plutôt qu'un seul LLM générique qui "pense à tout", l'architecture repose sur la séparation des préoccupations. Chaque agent a un périmètre étroit :

Chaque agent retourne un score -100 à +100 et un raisonnement justifié citant ses sources. L'orchestrateur (lui-même un LLM) combine ces 12 sorties en pondérant selon la performance historique de chaque agent, puis produit un verdict global + résumé narratif.

Architecture technique

Trois couches :

  1. Couche de collecte — Python / FastAPI. Scheduler (APScheduler) qui déclenche les 12 agents en parallèle via asyncio.gather. Chaque agent est une classe avec interface commune (fetch → analyze → score). Résultats bufferisés en Postgres.
  2. Couche d'orchestration — orchestrateur LLM (prompts Anthropic Claude + fallback OpenAI GPT-4o). Lit les 12 scores bufferisés, produit la synthèse. Utilise un cache par ticker pour éviter les recalculs.
  3. Couche UI — Next.js 14, TypeScript, TailwindCSS. Dashboard temps réel avec streaming des scores via SSE. Graph Recharts pour l'évolution historique.

Déploiement : Docker Compose (API + Postgres + Redis cache) sur VPS, frontend Vercel.

Meta-ensemble ML et apprentissage autonome

Le point le plus intéressant (et le plus difficile) : les 12 agents n'ont pas la même fiabilité selon les conditions de marché. L'agent sentiment social surperforme en période de spéculation retail (2021), l'agent fondamentaux en bear market (2022). L'orchestrateur ne peut pas les pondérer à la main.

Solution : un meta-modèle (scikit-learn + LightGBM) s'entraîne sur les prédictions historiques des 12 agents vs le rendement réel N+30 jours, et apprend les pondérations optimales par régime de marché. Ce méta-modèle est ré-entraîné chaque semaine sur un rolling window de 2 ans.

Le backtesting tourne sur un dataset de 500 tickers S&P 500 + NASDAQ 100 depuis 2018. Les résultats préliminaires suggèrent un Sharpe ratio supérieur à la stratégie baseline (buy-and-hold SPY), mais c'est en cours de validation sur données out-of-sample.

Défis rencontrés

Apprentissages

Le projet m'a appris plus sur l'orchestration distribuée et le tuning LLM en production que 2 ans de cours théoriques. Trois leçons qui s'exportent bien :

  1. La séparation des préoccupations bat l'intelligence monolithique. 12 agents simples + 1 orchestrateur produisent un meilleur signal qu'un seul LLM "générique" — et c'est bien plus débuggable.
  2. Le méta-apprentissage sur poids d'ensemble est sous-exploité dans l'industrie. Beaucoup d'équipes utilisent des ensembles avec des poids figés — on laisse beaucoup de valeur sur la table.
  3. Le coût LLM est une variable d'architecture. Mélanger plusieurs modèles selon la tâche (Haiku pour le scoring rapide, Opus pour la synthèse) divise le coût par 4 sans perte de qualité perçue.