À propos du projet
NautilusTrader est un moteur open-source, de qualité production, écrit en Rust, pour les systèmes de trading multi-actifs et multi-plateformes. Il couvre la recherche, la simulation déterministe et l'exécution en direct dans une architecture événementielle unique, avec Python servant de plan de contrôle pour la logique de stratégie, la configuration et l'orchestration. Cette séparation offre la performance et la sécurité d'un moteur de trading compilé avec la flexibilité de Python pour la composition du système et le développement de stratégies. Les systèmes de trading peuvent également être écrits entièrement en Rust pour les charges de travail critiques.
Le même code de stratégie et d'algorithme d'exécution peut fonctionner dans les systèmes de backtest et en direct, réduisant la divergence de déploiement. L'exécution en direct introduit néanmoins des comportements de plateforme, de transport, de synchronisation, de persistance, d'activité externe et de rapprochement qu'une simulation peut ne pas reproduire.
NautilusTrader est agnostique en termes de classe d'actifs. Toute plateforme avec une API REST ou un flux WebSocket peut être intégrée via des adaptateurs modulaires. Les intégrations actuelles couvrent les bourses crypto (CEX et DEX), les marchés traditionnels (FX, actions, contrats à terme, options) et les bourses de paris.
Les principales fonctionnalités incluent :
- Rapide : cœur Rust avec allocateur mimalloc et réseau asynchrone tokio.
- Fiable : sécurité de type et de thread garantie par Rust, avec persistance d'état optionnelle basée sur Redis.
- Portable : fonctionne sur Linux, macOS et Windows. Déploiement via Docker.
- Flexible : adaptateurs modulaires pour intégrer toute API REST ou flux WebSocket.
- Avancé : temps en vigueur IOC, FOK, GTC, GTD, DAY, AT_THE_OPEN, AT_THE_CLOSE, types d'ordres avancés et déclencheurs conditionnels. Instructions d'exécution post-only, reduce-only et icebergs. Ordres de contingence incluant OCO, OUO, OTO.
- Personnalisable : composants définis par l'utilisateur, ou assemblage de systèmes entiers à partir de zéro en utilisant le cache et le bus de messages.
- Backtesting : plusieurs plateformes, instruments et stratégies simultanément en utilisant des données historiques de ticks de devis, ticks de transactions, barres, carnets d'ordres et données personnalisées avec une résolution de nanosecondes.
- En direct : implémentations de stratégies identiques entre la recherche et le déploiement en direct.
- Multi-plateformes : exécution de stratégies de tenue de marché et multi-plateformes sur plusieurs plateformes simultanément.
- Formation IA : moteur suffisamment rapide pour former des agents de trading IA (RL/ES).
Les intégrations incluent AX Exchange, Betfair, Binance, BitMEX, Bybit, Coinbase, Databento, Deribit, Derive, dYdX, Hyperliquid, Interactive Brokers, Kraken, Lighter, Lighter sur Robinhood, OKX, Polymarket et Tardis.
NautilusTrader prend en charge deux modes de précision pour les types de valeurs de base (Price, Quantity, Money) : haute précision (entiers 128 bits, jusqu'à 16 décimales) et précision standard (entiers 64 bits, jusqu'à 9 décimales). Les wheels Python officielles sont livrées en mode haute précision par défaut.
L'installation est disponible via des wheels binaires précompilés depuis PyPI ou l'index de paquets Nautech Systems, ou en compilant à partir des sources. Le projet est en développement actif, avec un calendrier de versions bihebdomadaire et des branches pour master, nightly et develop. La sécurité est une priorité, avec des contrôles sur la sélection des dépendances, le développement, les builds et les versions, y compris cargo-vet, cargo-deny, la provenance SLSA et la signature Sigstore.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.