Architettura del Bot

TCP Architecture

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:

Code
python3 -c "from trading.main import main; main()"
Code
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

Code
Telegram User
      ↓
Telegram Bot
      ↓
TCP Server
      ↓
Trading Bot TCP Client
      ↓
Trading Engine

Il 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:

Code
{
    "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.