val
À propos Travaux

AutoTrader retour

AutoTrader est un projet personnel: une plateforme complète de trading algorithmique construite sur Interactive Brokers. Ce qui a commencé comme un moyen d'automatiser quelques idées de trading est devenu un système sérieux, prêt pour la production.

AXL — Un DSL de trading

Le cœur d'AutoTrader est AXL, un langage déclaratif dédié que j'ai conçu pour écrire des algorithmes de trading. Plutôt que de coder les stratégies en PHP ou Python, les algorithmes sont écrits en fichiers .axl avec une syntaxe épurée et spécialisée:

Le compilateur AXL est écrit en Rust en 5 crates (~15K lignes): lexer, parser, validateur, compilateur, et une cible WASM. Le lexer gère l'indentation à la Python, le validateur impose un système de types avec auto-déréférencement des séries et null safety, et le compilateur produit un AST JSON. Cet AST est ensuite exécuté barre par barre par un interpréteur PHP dans le moteur de trading.

Le build WASM alimente un éditeur de code dans le navigateur avec retour de compilation en temps réel, offrant des erreurs de types et de la validation instantanées pendant l'écriture des algorithmes.

AXL code editor with syntax highlighting
L'éditeur AXL avec coloration syntaxique, navigateur d'algorithmes, et référence du langage
AXL algorithm debug trace
Trace de débogage barre par barre d'un algorithme AXL

Architecture

La plateforme tourne en tant qu'architecture microservices orchestrée avec Docker Compose:

Backtesting et optimisation

Le moteur de backtesting rejoue les données historiques barre par barre avec une simulation réaliste des exécutions, du slippage, et des commissions. Les résultats sont suivis avec des snapshots et affichés dans le tableau de bord.

Pour l'optimisation des paramètres, la plateforme utilise l'optimisation bayésienne via Optuna, permettant de tuner les algorithmes sur de grands espaces de paramètres. Elle supporte aussi la validation walk-forward — des fenêtres séquentielles d'entraînement/test pour se prémunir contre le surapprentissage — et les scans d'algorithmes pour une optimisation multi-symboles et multi-timeframes.

Bayesian optimization fitting run
Un run d'optimisation bayésienne sur plusieurs rounds

Le tableau de bord

Le frontend React offre un suivi en temps réel des positions, ordres, et P&L via des connexions WebSocket. Il expose aussi la bibliothèque d'algorithmes avec l'éditeur AXL intégré, l'historique de backtests, les résultats de scans, et les runs d'optimisation.

Backtest session with equity chart
Session de backtest avec courbe d'équité, ordres, et métriques de performance

Ce projet est là où je pousse mes limites techniques. Construire un compilateur from scratch en Rust, concevoir un DSL typé, opérer des microservices distribués, traiter des données en temps réel, de l'optimisation proche du ML, et de la modélisation financière — le tout dans un seul système. Il tourne en mode paper trading par défaut, avec l'infrastructure de trading live prête à l'emploi.