Architettura del Bot

Panoramica del Sistema
La piattaforma di trading ByNinja è costruita come un sistema multi-processo distribuito che separa l'esecuzione degli scambi dall'interazione con l'utente.
L'architettura consiste di due applicazioni indipendenti:
- •Trading Bot — responsabile dell'analisi di mercato, esecuzione della strategia, gestione del rischio ed elaborazione degli ordini.
- •Telegram Control Server — responsabile delle notifiche, del controllo remoto e della gestione dei comandi tramite Telegram.
Entrambi i servizi comunicano attraverso un leggero strato TCP personalizzato, permettendo loro di funzionare indipendentemente pur rimanendo sincronizzati in tempo reale.
Questa separazione migliora stabilità, scalabilità e isolamento dei guasti. Anche se il servizio Telegram diventa indisponibile, il motore di trading può continuare a operare senza interruzioni.
Architettura dei Processi
Il sistema utilizza un design orientato ai processi in cui ogni componente ha una responsabilità dedicata.
Processo di Trading
Il processo di trading gestisce:
- •Integrazione con l'API dello scambio
- •Monitoraggio del mercato
- •Esecuzione della strategia
- •Gestione del rischio
- •Gestione delle posizioni
- •Logging interno
Il motore di trading opera in modo continuo ed espone comandi di controllo remoto tramite la connessione client TCP.
Processo Telegram
Il processo Telegram gestisce:
- •Comunicazione con l'API del Bot Telegram
- •Elaborazione dei comandi utente
- •Notifiche e avvisi
- •Gestione del server TCP
Questo processo funge da ponte tra l'utente e il motore di trading.
Runtime Indipendente
Entrambe le applicazioni vengono avviate separatamente e operano come processi indipendenti:
python3 -c "from trading.main import main; main()"python3 -c "from telegram.main import main; main()"Poiché entrambi i servizi sono isolati, ogni processo può essere riavviato, aggiornato o debugato indipendentemente senza influenzare l'altro sottosistema.
Comunicazione TCP
Il livello di comunicazione si basa su un protocollo TCP personalizzato progettato per un basso overhead e interazione in tempo reale.
Flusso di Comunicazione
Telegram User
↓
Telegram Bot
↓
TCP Server
↓
Trading Bot TCP Client
↓
Trading EngineIl flusso inverso viene utilizzato per log, avvisi e aggiornamenti di stato.
Struttura del Messaggio
Tutti i messaggi vengono trasferiti in formato JSON con un header a lunghezza fissa:
{
"tag": "command",
"message": "starttrading",
"timestamp": 1750000000
}Funzionalità Supportate
Il livello TCP include:
- •Logica di riconnessione automatica
- •Worker di invio/ricezione in background
- •Code di messaggi thread-safe
- •Gestione dello spegnimento graduale (graceful shutdown)
- •Routing dei messaggi per tipo
- •Monitoraggio persistente della connessione
Sistema di Comandi
L'architettura supporta comandi remoti come:
- •Avvia / ferma trading
- •Abilita o disabilita acquisti
- •Abilita o disabilita vendite
- •Azioni di acquisto/vendita forzate
- •Recupero statistiche
- •Monitoraggio stato del sistema
I comandi possono essere globali o specifici per simbolo.
Design Multi-Processo
La piattaforma segue un'architettura multi-processo invece di un design monolitico.
Vantaggi
Isolamento
Un guasto nel sottosistema Telegram non blocca le operazioni di trading.
Scalabilità
Ogni servizio può essere distribuito su macchine o container diversi in futuro.
Manutenibilità
Il codebase è separato in componenti logici con responsabilità chiare.
Affidabilità
La riconnessione TCP e i worker in background aiutano a mantenere una comunicazione stabile anche durante guasti temporanei della rete.
Esecuzione Concorrente
Le operazioni di trading, il polling di Telegram, la comunicazione TCP e il logging vengono eseguiti contemporaneamente utilizzando thread dedicati.
Modello di Concorrenza Interno
All'interno di ogni processo, il sistema utilizza il multithreading per le operazioni asincrone.
Thread dell'Applicazione di Trading
- •Thread di esecuzione trading
- •Thread di comunicazione TCP
- •Thread di inoltro log
- •Worker di monitoraggio in background
Thread dell'Applicazione Telegram
- •Thread di polling Telegram
- •Thread del server TCP
- •Worker di inoltro messaggi
Questo design garantisce che le operazioni di rete non blocchino mai il motore di trading stesso.