Performance

Techniques d'Optimisation

L'architecture du bot est conçue autour d'une exécution légère et d'opérations bloquantes minimales. La plupart des systèmes critiques fonctionnent de manière asynchrone ou dans des threads isolés pour maintenir la logique de trading réactive même sous forte charge.

L'infrastructure sépare les responsabilités en modules dédiés :

  • Moteur de trading
  • Couche de communication TCP
  • Intégration Telegram
  • Couche de persistance
  • Système de journalisation
  • Workers en arrière-plan

Cela empêche les opérations lentes de bloquer l’exécution des ordres ou l’analyse du marché.

Par exemple, la persistance est gérée via un système asynchrone basé sur une file d'attente. Les mises à jour d'état sont poussées dans un worker en arrière-plan au lieu d'être écrites directement sur le disque pendant les opérations de trading. Cela réduit considérablement la surcharge d'exécution pendant le trading actif.

Le système de journalisation est également optimisé pour une utilisation en production :

  • Gestionnaires console et fichier séparés
  • Fichiers journaux rotatifs
  • Transfert de journaux TCP indépendant
  • Niveaux de journalisation configurables

Le bot évite les points de synchronisation excessifs et n'utilise un threading léger que lorsque cela est nécessaire. Les workers en arrière-plan s'exécutent en tant que threads démons, permettant à la boucle de stratégie principale de rester concentrée sur l'exécution du marché.

Les techniques d'optimisation supplémentaires utilisées dans tout le projet incluent :

  • Déduplication de la file d'attente pour les sauvegardes de persistance
  • Remplacement atomique de fichier au lieu de réécritures complètes
  • Instances de logger réutilisables
  • Connexions TCP persistantes
  • Imports de modules explicites avec contrôle PYTHONPATH
  • Services redémarrables indépendants
  • Intervalles de sommeil bloquants minimaux

L'architecture est intentionnellement modulaire afin que les utilisateurs puissent remplacer la logique de la stratégie sans reconstruire la couche d'infrastructure.

Performance Intro

Réduction de l'Utilisation de l'API

L'utilisation efficace de l'API est essentielle pour tout système de trading sérieux.

La plateforme est conçue pour réduire les requêtes inutiles à la bourse tout en maintenant une vitesse de réaction rapide.

Plusieurs décisions d'infrastructure aident à minimiser la charge de l'API :

Persistance d'État Intelligente

Au lieu de récupérer constamment les données de la bourse après chaque redémarrage, le bot stocke l'état de trading interne localement en utilisant la couche de persistance.

Cela permet :

  • Récupération de position
  • Suivi des ordres
  • Continuation de la stratégie après redémarrage
  • Requêtes de synchronisation réduites

Le bot n'a pas besoin de reconstruire l'état complet à partir de la bourse à chaque lancement.

Routage Interne des Commandes

Le système Telegram communique via une couche TCP locale plutôt que d’interroger des services externes pour l’état du bot.

Des commandes telles que :

  • starttrading
  • stoptrading
  • buy
  • sell
  • getstatus

sont routées en interne entre les modules avec une surcharge presque nulle.

Cela évite une communication API externe inutile et maintient l'infrastructure légère.

Niveaux de Journalisation Contrôlés

La verbosité de la journalisation peut être configurée indépendamment pour :

  • Sortie console
  • Journalisation fichier
  • Niveau de journalisation général

Cela empêche des opérations de débogage excessives dans les environnements de production.

Une journalisation de débogage lourde peut réduire considérablement les performances dans les systèmes à haute fréquence, donc un filtrage de journalisation configurable est important.

Logique de Récupération Locale

Les systèmes de récupération après crash et de redémarrage automatique aident à réduire les requêtes de synchronisation de démarrage répétées.

Au lieu de reconstruire manuellement l'environnement d'exécution complet après des pannes, le bot se rétablit rapidement en utilisant un état persistant et des boucles d'exécution watchdog.


Exécution à Faible Latence

L'exécution à faible latence est obtenue grâce à la simplicité de l'infrastructure et à l'isolation des processus.

Le projet évite les frameworks inutiles et les couches d'orchestration lourdes. Le système de trading fonctionne comme des processus Python directs avec un minimum de middleware entre la logique de stratégie et l'exécution.

Les principaux choix de conception axés sur la latence incluent :

Processus de Trading Dédié

Le bot de trading fonctionne indépendamment de l’interface Telegram.

Cela signifie :

  • Le trafic Telegram ne peut pas bloquer la logique de trading
  • Les retards de messagerie n'affectent pas l'exécution
  • Les notifications externes restent isolées

Même si Telegram devient indisponible, le moteur de trading continue de fonctionner.

Communication TCP Persistante

La communication entre les modules utilise une couche TCP persistante au lieu de générer des processus temporaires ou d’utiliser des mécanismes IPC lents.

Cela fournit :

  • Livraison rapide des commandes
  • Routage léger des messages
  • Flux de journaux en temps réel
  • Communication à faible surcharge

Les journaux du moteur de trading sont transférés directement vers le bot Telegram via le pipeline TCP, permettant une surveillance quasi temps réel sans bloquer l’exécution.

Architecture de Threads en Arrière-plan

Plusieurs opérations s’exécutent indépendamment de la boucle de stratégie principale :

  • Sauvegardes de persistance
  • Communication TCP
  • Gestion des commandes Telegram
  • Transfert de journaux
  • Workers de récupération

Cela empêche les opérations d'E/S lentes d'interrompre l'exécution des transactions.

Infrastructure de Redémarrage Automatique

Le

Cela minimise les temps d’arrêt et maintient une latence de récupération extrêmement faible.

Au lieu de nécessiter une intervention manuelle, l'infrastructure restaure les services automatiquement en quelques secondes.

Pile d'Exécution Minimale

Le système évite intentionnellement :

  • Frameworks web lourds
  • Surcharge d'orchestration de conteneurs
  • Serveurs de base de données
  • Courtiers de messages complexes
  • Grandes chaînes de dépendances

Le résultat est un environnement d'exécution léger entièrement concentré sur la performance du trading et la stabilité opérationnelle.

L'infrastructure agit comme une base à haute vitesse où les utilisateurs peuvent implémenter leurs propres algorithmes de trading tout en conservant des systèmes de persistance, de journalisation, de surveillance, de récupération de redémarrage et de communication de qualité professionnelle déjà entièrement intégrés.