Architecture du Bot

Aperçu du Système
La plateforme de trading ByNinja est conçue comme un système multi-processus distribué qui sépare l'exécution des transactions de l'interaction utilisateur.
L'architecture se compose de deux applications indépendantes :
- •Bot de Trading — responsable de l’analyse de marché, de l’exécution de la stratégie, de la gestion des risques et du traitement des ordres.
- •Serveur de Contrôle Telegram — responsable des notifications, du contrôle à distance et du traitement des commandes via Telegram.
Les deux services communiquent via une couche TCP personnalisée et légère, leur permettant de fonctionner indépendamment tout en restant synchronisés en temps réel.
Cette séparation améliore la stabilité, la scalabilité et l'isolation des défauts. Même si le service Telegram devient indisponible, le moteur de trading peut continuer à fonctionner sans interruption.
Architecture des Processus
Le système utilise une conception orientée processus où chaque composant a une responsabilité dédiée.
Processus de Trading
Le processus de trading gère :
- •Intégration de l'API de l'échange
- •Surveillance du marché
- •Exécution de la stratégie
- •Gestion des risques
- •Gestion des positions
- •Journalisation interne
Le moteur de trading fonctionne en continu et expose des commandes de contrôle à distance via la connexion client TCP.
Processus Telegram
Le processus Telegram gère :
- •Communication avec l'API Telegram Bot
- •Traitement des commandes utilisateur
- •Notifications et alertes
- •Gestion du serveur TCP
Ce processus agit comme un pont entre l’utilisateur et le moteur de trading.
Environnement d'Exécution Indépendant
Les deux applications sont lancées séparément et fonctionnent comme des processus indépendants :
python3 -c "from trading.main import main; main()"python3 -c "from telegram.main import main; main()"Les deux services étant isolés, chaque processus peut être redémarré, mis à jour ou débogué indépendamment sans affecter l'autre sous-système.
Communication TCP
La couche de communication est basée sur un protocole TCP personnalisé conçu pour une faible surcharge et une interaction en temps réel.
Flux de Communication
Telegram User
↓
Telegram Bot
↓
TCP Server
↓
Trading Bot TCP Client
↓
Trading EngineLe flux inverse est utilisé pour les journaux, les alertes et les mises à jour de statut.
Structure des Messages
Tous les messages sont transférés au format JSON avec un en-tête de longueur fixe :
{
"tag": "command",
"message": "starttrading",
"timestamp": 1750000000
}Fonctionnalités Prises en Charge
La couche TCP inclut :
- •Logique de reconnexion automatique
- •Workers d'envoi/réception en arrière-plan
- •Files d'attente de messages thread-safe
- •Gestion gracieuse de l'arrêt
- •Routage des messages par type
- •Surveillance de la connexion persistante
Système de Commandes
L'architecture supporte des commandes à distance telles que :
- •Démarrer / arrêter le trading
- •Activer ou désactiver les achats
- •Activer ou désactiver les ventes
- •Forcer les actions d’achat / vente
- •Récupération des statistiques
- •Surveillance de l'état du système
Les commandes peuvent être globales ou spécifiques à un symbole.
Conception Multi-Processus
La plateforme suit une architecture multi-processus plutôt qu'une conception monolithique.
Avantages
Isolation
Une défaillance dans le sous-système Telegram n'arrête pas les opérations de trading.
Évolutivité
Chaque service peut être déployé sur différentes machines ou conteneurs à l’avenir.
Maintenabilité
La base de code est séparée en composants logiques avec des responsabilités claires.
Fiabilité
La reconnexion TCP et les workers en arrière-plan aident à maintenir une communication stable même en cas de pannes réseau temporaires.
Exécution Concurrente
Les opérations de trading, la interrogation de Telegram, la communication TCP et la journalisation s’exécutent toutes simultanément en utilisant des threads dédiés.
Modèle de Concurrence Interne
À l'intérieur de chaque processus, le système utilise le multithreading pour les opérations asynchrones.
Threads de l'Application de Trading
- •Thread d'exécution du trading
- •Thread de communication TCP
- •Thread de transfert des journaux
- •Workers de surveillance en arrière-plan
Threads de l'Application Telegram
- •Thread d'interrogation Telegram
- •Thread du serveur TCP
- •Workers de transfert de messages
Cette conception garantit que les opérations réseau ne bloquent jamais le moteur de trading lui-même.