TheoryCraft : Moteur de Backtesting et d'Exécution pour le Trading Quantitatif
TheoryCraft est un moteur de backtesting open-source construit en Elixir pour le trading quantitatif. Il fournit une architecture événementielle et composable pour construire, tester et valider des stratégies de trading systématiques sur des données de marché historiques et en temps réel.
TheoryCraft aide les traders et les chercheurs à répondre à une question simple : est-ce qu'une stratégie de trading fonctionne vraiment ?
En fournissant un moteur unifié de backtesting et d'exécution, TheoryCraft permet de tester des stratégies systématiques sur des données historiques, de les valider statistiquement, et de les exécuter de manière cohérente en backtest, paper trading et trading live.
Cette documentation décrit le moteur TheoryCraft et ses composants principaux.
Pourquoi le Backtesting est Important
Le trading systématique repose sur la validation par les données. Avant de déployer du capital, les traders et chercheurs doivent vérifier que leurs stratégies performent comme prévu dans différentes conditions de marché.
Un moteur de backtesting vous permet de :
- Tester des stratégies de trading sur des données de marché historiques avant de risquer du capital réel
- Mesurer des propriétés statistiques comme le taux de réussite, l'espérance et le drawdown
- Identifier les faiblesses et les cas limites dans la logique de stratégie
- Comparer plusieurs approches dans des conditions identiques
- Construire de la confiance grâce à des résultats reproductibles
Sans un backtesting rigoureux, les traders agissent sur des suppositions plutôt que sur des preuves. TheoryCraft fournit l'infrastructure pour valider les idées de trading de manière systématique.
Qu'est-ce que le Moteur TheoryCraft ?
TheoryCraft est un moteur de backtesting et d'exécution pour le trading quantitatif, conçu pour construire, tester et exécuter des stratégies de trading systématiques. Il traite les données de marché via des pipelines configurables, gère les interactions avec les brokers et exécute la logique de stratégie dans une architecture unifiée et événementielle.
Le moteur gère trois responsabilités principales :
- Ingestion et transformation des données de marché - Charger des données historiques ou se connecter à des sources en temps réel, rééchantillonner sur plusieurs timeframes et calculer des indicateurs techniques
- Connectivité broker et simulation - S'interfacer avec des brokers pour le trading live et le paper trading, ou simuler l'exécution d'ordres pour le backtesting
- Exécution de stratégie et de portfolio - Exécuter la logique de trading, gérer les positions, calculer les statistiques et optimiser les paramètres
À Qui S'adresse ce Moteur ?
TheoryCraft s'adresse à plusieurs audiences avec des objectifs différents :
Les chercheurs quantitatifs qui explorent des stratégies systématiques peuvent utiliser TheoryCraft pour backtester des idées sur des données historiques. Une intégration Python est prévue pour les chercheurs qui préfèrent cet écosystème.
Les traders discrétionnaires qui veulent valider leurs modèles de trading peuvent tester leurs setups sur des données historiques pour mesurer la performance réelle plutôt que de se fier à la mémoire ou à l'intuition.
Les développeurs Elixir qui construisent des systèmes de trading bénéficient d'une intégration native avec OTP, GenStage et le runtime BEAM. Le moteur exploite les forces d'Elixir en systèmes concurrents et tolérants aux pannes.
Aucune expérience préalable en Elixir n'est requise pour comprendre les concepts de cette documentation. Des exemples de code sont fournis pour ceux qui sont prêts à implémenter.
Concepts Principaux
TheoryCraft organise le développement de systèmes de trading autour de trois composants principaux.
MarketSource
Gère l'ingestion des données de marché, le rééchantillonnage des timeframes et le calcul des indicateurs. Émet des structures MarketEvent vers les composants en aval.
En savoir plus sur MarketSource et les DataFeeds →
Broker
Gère l'exécution des ordres, le suivi des positions et l'état du compte. Émet des structures BrokerEvent pour les mises à jour d'ordres et les changements de positions. Supporte l'exécution simulée pour le backtesting et les connexions broker réelles pour le trading live.
⚠️ Actuellement en développement.
En savoir plus sur le Broker →
Engines
Consomment les flux MarketEvent et BrokerEvent pour effectuer des tâches spécifiques : exécution de stratégie, gestion de portfolio, calcul de statistiques ou optimisation de paramètres.
⚠️ Actuellement en développement.
En savoir plus sur les Engines →
Workflow Événementiel
Le moteur TheoryCraft est construit autour d'un workflow événementiel qui connecte les données de marché, l'exécution et la logique de stratégie via des événements structurés.
Les données de marché et les mises à jour broker sont émises sous forme d'événements et consommées par les engines responsables de l'exécution de stratégie, la gestion de portfolio, les statistiques ou l'optimisation.
Cette conception permet à la même logique de stratégie de s'exécuter de manière cohérente en backtest, paper trading et trading live.
Lire l'architecture événementielle en détail →
Fonctionnalités Clés
Le moteur TheoryCraft est en développement actif.
Les fonctionnalités suivantes sont actuellement disponibles et stables,
tandis que d'autres sont en cours de construction.
Implémentées
Pipelines de données en streaming - Traitez des millions d'événements de marché sans charger des datasets entiers en mémoire. Construit sur GenStage avec gestion de la backpressure.
Support multi-timeframe - Rééchantillonnez les données tick vers n'importe quel intervalle : secondes, minutes, heures, jours, semaines et mois.
Calcul d'indicateurs techniques - Calculez des indicateurs via la librairie TheoryCraftTA avec support du traitement parallèle des calculs indépendants.
Processeurs personnalisés - Implémentez le behaviour Processor pour ajouter des transformations spécifiques au pipeline de données.
Intégrations multiples de flux de données - Connectez-vous à des sources de données historiques comme Dukascopy avec le support de plus de 1600 instruments sur le forex, les actions, les matières premières et les indices.
Tolérance aux pannes - Construit sur les superviseurs OTP pour des systèmes résilients et auto-réparateurs qui gèrent les erreurs de manière élégante.
Intégration Livebook - Développement interactif et visualisation via Livebook grâce à la librairie KinoTheoryCraft.
En Développement
Intégrations broker - Connexion à Interactive Brokers, Binance et d'autres brokers pour l'exécution d'ordres en live. Broker simulé pour le backtesting.
Exécution de stratégie - StrategyEngine pour exécuter la logique de trading et générer des signaux d'entrée et de sortie.
Gestion de portfolio - PortfolioEngine pour gérer et coordonner dynamiquement plusieurs stratégies.
Analytique de performance - StatisticsEngine pour calculer des métriques comme le ratio de Sharpe, le drawdown maximum et le taux de réussite.
Optimisation de paramètres - OptimizerEngine pour la recherche systématique de paramètres et le raffinement de stratégie.
Intégration Python - Utilisez TheoryCraft depuis Python pour les chercheurs qui préfèrent cet environnement.
L'Écosystème
TheoryCraft se compose de plusieurs librairies qui fonctionnent ensemble :
| Librairie | Objectif | Statut |
|---|---|---|
| theory_craft | Moteur principal avec MarketSource, pipelines et processeurs | En développement actif |
| theory_craft_ta | Indicateurs d'analyse technique via l'intégration TA-Lib | En développement actif |
| kino_theory_craft | Visualisations interactives dans les notebooks Livebook | En développement actif |
| dukascopy | Données de marché historiques de Dukascopy Bank pour plus de 1600 instruments | Stable |
Toutes les librairies sont open-source sous licence Apache 2.0.
Prochaines Étapes
Continuez avec la documentation pour apprendre à utiliser TheoryCraft :
Concepts - Comprendre l'architecture et les composants
- MarketSource & DataFeeds - Comment les données de marché entrent dans le système
- Broker - Exécution d'ordres et gestion des positions
- Engines - Exécution de stratégie et analyse
- Workflow Événementiel - Comment les composants communiquent
Guides - Instructions étape par étape pour les tâches courantes
- Guide Dukascopy DataFeed - Télécharger et streamer des données de marché historiques
- Visualisation avec Kino - Créer des graphiques interactifs dans Livebook
Installation
Ajoutez TheoryCraft à votre projet Elixir en incluant les dépendances dans votre fichier mix.exs :
def deps do
[
{:theory_craft, github: "theorycraft-trading/theory_craft"},
{:dukascopy, github: "theorycraft-trading/dukascopy"}
]
end
TheoryCraft est en développement actif. Utilisez un hash de commit spécifique pour la stabilité en production.
Communauté et Support
- GitHub : github.com/theorycraft-trading
- Discord : https://discord.gg/sV7mdxEy4G
- Twitter : @ImNotAV1rus
- YouTube (bientôt) : TheoryCraft Trading
Signalez les problèmes et contribuez sur GitHub. Tous les dépôts accueillent les contributions.
Licence
TheoryCraft et les librairies de son écosystème sont des logiciels open-source sous licence Apache 2.0.