NautilusTrader : La plateforme de trading algorithmique centrée sur l'IA pour les quantitative analysts

NautilusTrader : Plateforme de trading algorithmique haute performance

NautilusTrader Logo

Description du projet

NautilusTrader est une plateforme de trading algorithmique open-source, de haute performance et de qualité production. Elle offre aux traders quantitatifs un moteur événementiel pour le backtesting de portefeuilles de stratégies de trading automatisées sur des données historiques et le déploiement de ces mêmes stratégies en direct sans modifier le code. La plateforme est conçue pour être "AI-first", permettant le développement et le déploiement de stratégies de trading algorithmiques dans un environnement robuste et performant, natif Python. Son objectif est de résoudre le défi de parité entre les environnements de recherche/backtesting et les environnements de trading en direct en production.

NautilusTrader privilégie la justesse et la sûreté du logiciel afin de supporter les charges de travail de systèmes de trading critiques, natifs Python. Elle est agnostique en termes de classe d'actifs, supportant le trading haute fréquence sur diverses classes d'actifs et types d'instruments, incluant le Forex, les actions, les contrats à terme, les options, les cryptomonnaies et les paris sportifs, et ce, sur plusieurs places de marché simultanément. Ses composants essentiels sont écrits en Rust et Cython pour la performance, tout en conservant un environnement natif Python pour les traders et les entreprises.

NautilusTrader Diagram

Instructions d'utilisation

NautilusTrader peut être installé via des "wheels" binaires pré-construites depuis PyPI ou l'index de paquets de Nautech Systems, ou en compilant depuis les sources. Il est recommandé d'utiliser la dernière version supportée de Python et d'installer NautilusTrader dans un environnement virtuel.

Installation

Recommandé : Utilisez le gestionnaire de paquets uv avec un CPython "vanilla".

Depuis PyPI :

pip install -U nautilus_trader

Depuis l'index de paquets Nautech Systems (pour les "wheels" stables ou de développement) :

  • "Wheels" stables :
    pip install -U nautilus_trader --index-url=https://packages.nautechsystems.io/simple
    
  • "Wheels" de développement (dernière pré-version) :
    pip install -U nautilus_trader --pre --index-url=https://packages.nautechsystems.io/simple
    
  • "Wheel" de développement spécifique :
    pip install nautilus_trader==1.208.0a20241212 --index-url=https://packages.nautechsystems.io/simple
    

Depuis les sources :

  1. Installer rustup :
    • Linux/macOS : curl https://sh.rustup.rs -sSf | sh
    • Windows : Téléchargez et installez rustup-init.exe, puis installez "Développement de bureau en C++" avec les Outils de compilation pour Visual Studio 2019.
  2. Activer cargo :
    • Linux/macOS : source $HOME/.cargo/env
    • Windows : Démarrez un nouveau PowerShell.
  3. Installer clang :
    • Linux : sudo apt-get install clang
    • Windows : Ajoutez Clang aux Outils de compilation pour Visual Studio 2019.
  4. Activer clang (Windows) :
    [System.Environment]::SetEnvironmentVariable('path', "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\Llvm\x64\bin\;" + $env:Path,"User")
    
  5. Installer uv :
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  6. Cloner et installer :
    git clone --branch develop --depth 1 https://github.com/nautechsystems/nautilus_trader
    cd nautilus_trader
    uv sync --all-extras
    

Utilisation avec Docker

Des images conteneurisées sont disponibles avec diverses étiquettes. Par exemple, pour exécuter le conteneur JupyterLab nightly :

docker pull ghcr.io/nautechsystems/jupyterlab:nightly --platform linux/amd64
docker run -p 8888:8888 ghcr.io/nautechsystems/jupyterlab:nightly
Ensuite, accédez à JupyterLab dans votre navigateur à l'adresse http://127.0.0.1:8888/lab.

Fonctionnalités clés

  • Haute performance : Le cœur est écrit en Rust avec une gestion de réseau asynchrone utilisant tokio.
  • Fiabilité : Sécurité de type et de thread assurée par Rust, avec une persistance de l'état optionnelle via Redis.
  • Portabilité : Indépendant du système d'exploitation (Linux, macOS, Windows) et déployable via Docker.
  • Flexibilité : Des adaptateurs modulaires permettent l'intégration avec n'importe quelle API REST ou flux WebSocket.
  • Gestion avancée des ordres : Supporte diverses options de durée de validité (IOC, FOK, GTC, GTD, DAY, AT_THE_OPEN, AT_THE_CLOSE), des types d'ordres avancés, des déclencheurs conditionnels, des instructions d'exécution (post-only, reduce-only, icebergs), et des ordres contingents (OCO, OUO, OTO).
  • Personnalisable : Composants et systèmes personnalisés définis par l'utilisateur exploitant le cache et le bus de messages.
  • Capacités de Backtesting : Supporte plusieurs places de marché, instruments et stratégies simultanément avec des données historiques de cotation, de transaction, de barres, de carnet d'ordres, et des données personnalisées, à une résolution nanoseconde.
  • Déploiement en direct : Implémentations de stratégies identiques pour le backtesting et le trading en direct.
  • Multi-place de marché : Facilite les stratégies de teneur de marché et d'arbitrage statistique.
  • Entraînement de l'IA : Moteur de backtest rapide adapté à l'entraînement d'agents de trading IA (RL/ES).
  • Environnement natif Python : Les composants centraux critiques sont en Rust/Cython pour la performance, offrant un environnement natif Python aux traders professionnels.
  • Modes haute précision : Supporte une précision entière de 64 bits (standard) et 128 bits (élevée) pour les types de valeurs fondamentales (Prix, Quantité, Argent).

Utilisateurs cibles

  • Traders quantitatifs : Particuliers ou entreprises développant et déployant des stratégies de trading algorithmiques.
  • Développeurs : Ceux qui s'intéressent à la construction de systèmes de trading haute performance ou à la contribution à une plateforme open-source.
  • Chercheurs : Universitaires ou professionnels de l'industrie menant des recherches en trading algorithmique, en apprentissage automatique et en IA dans la finance.

Liens du projet

Scénarios d'application

  • Trading algorithmique : Développement et exécution de stratégies de trading automatisées sur diverses classes d'actifs (Forex, actions, contrats à terme, options, cryptomonnaies, paris sportifs).
  • Trading haute fréquence (HFT) : Exploitation de la performance et des capacités à faible latence de la plateforme pour les stratégies HFT.
  • Backtesting et simulation : Test rigoureux des stratégies de trading par rapport aux données historiques avec une précision granulaire (résolution nanoseconde).
  • Recherche quantitative : Mener des recherches sur l'efficacité des stratégies de trading et le comportement du marché.
  • IA/Apprentissage automatique en trading : Entraînement et déploiement d'agents de trading IA utilisant le moteur de backtesting rapide.
  • Teneur de marché : Implémentation de stratégies de teneur de marché sur plusieurs places de marché.
  • Arbitrage statistique : Développement et exécution de stratégies qui exploitent les écarts de prix entre des actifs ou des marchés liés.
  • Trading inter-places de marché : Opérer simultanément sur différentes places de trading grâce à ses capacités multi-places de marché.

Partager cet article