Bot-Architektur

TCP Architecture

Systemüberblick

Die ByNinja Trading-Plattform ist als verteiltes Multiprozess-System aufgebaut, das die Handelsausführung von der Benutzerinteraktion trennt.

Die Architektur besteht aus zwei unabhängigen Anwendungen:

  • Trading Bot — verantwortlich für Marktanalyse, Strategieausführung, Risikomanagement und Orderverarbeitung.
  • Telegram Control Server — verantwortlich für Benachrichtigungen, Fernsteuerung und Befehlsverarbeitung über Telegram.

Beide Dienste kommunizieren über eine leichtgewichtige, benutzerdefinierte TCP-Ebene, die es ihnen ermöglicht, unabhängig zu laufen und dennoch in Echtzeit synchronisiert zu bleiben.

Diese Trennung verbessert Stabilität, Skalierbarkeit und Fehlerisolierung. Selbst wenn der Telegram-Dienst nicht verfügbar ist, kann die Handelsengine ohne Unterbrechung weiterarbeiten.


Prozessarchitektur

Das System verwendet ein prozessorientiertes Design, bei dem jede Komponente eine eigene Verantwortung hat.

Handelsprozess

Der Handelsprozess verwaltet:

  • Integration der Exchange-API
  • Marktüberwachung
  • Strategieausführung
  • Risikomanagement
  • Positionsverwaltung
  • Internes Logging

Die Handelsengine läuft kontinuierlich und stellt Fernsteuerungsbefehle über die TCP-Clientverbindung bereit.

Telegram-Prozess

Der Telegram-Prozess behandelt:

  • Telegram Bot API-Kommunikation
  • Benutzerbefehlsverarbeitung
  • Benachrichtigungen und Alarme
  • TCP-Serververwaltung

Dieser Prozess fungiert als Brücke zwischen dem Benutzer und der Handelsengine.

Unabhängige Laufzeit

Beide Anwendungen werden separat gestartet und arbeiten als unabhängige Prozesse:

Code
python3 -c "from trading.main import main; main()"
Code
python3 -c "from telegram.main import main; main()"

Da beide Dienste isoliert sind, kann jeder Prozess neu gestartet, aktualisiert oder debuggt werden, ohne das andere Subsystem zu beeinträchtigen.


TCP-Kommunikation

Die Kommunikationsebene basiert auf einem benutzerdefinierten TCP-Protokoll, das für geringen Overhead und Echtzeitinteraktion ausgelegt ist.

Kommunikationsablauf

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

Der umgekehrte Fluss wird für Logs, Alarme und Statusaktualisierungen verwendet.

Nachrichtenstruktur

Alle Nachrichten werden im JSON-Format mit einem Header fester Länge übertragen:

Code
{
    "tag": "command",
    "message": "starttrading",
    "timestamp": 1750000000
}

Unterstützte Funktionen

Die TCP-Ebene umfasst:

  • Automatische Wiederverbindungslogik
  • Hintergrund-Sende-/Empfangsworker
  • Threadsichere Nachrichtenwarteschlangen
  • Graceful Shutdown-Handling
  • Nachrichtenrouting nach Typ
  • Überwachung persistenter Verbindungen

Befehlssystem

Die Architektur unterstützt Fernbefehle wie:

  • Handel starten / stoppen
  • Kaufen aktivieren / deaktivieren
  • Verkaufen aktivieren / deaktivieren
  • Kauf-/Verkaufsaktionen erzwingen
  • Statistiken abrufen
  • Systemstatusüberwachung

Befehle können global oder symbol-spezifisch sein.


Multiprozessdesign

Die Plattform folgt einer Multiprozessarchitektur anstelle eines monolithischen Designs.

Vorteile

Isolation

Ein Fehler im Telegram-Subsystem stoppt den Handelsbetrieb nicht.

Skalierbarkeit

Jeder Dienst kann in Zukunft auf verschiedenen Maschinen oder Containern bereitgestellt werden.

Wartbarkeit

Die Codebasis ist in logische Komponenten mit klaren Verantwortlichkeiten unterteilt.

Zuverlässigkeit

TCP-Wiederherstellung und Hintergrundarbeiter helfen, eine stabile Kommunikation selbst bei vorübergehenden Netzwerkausfällen aufrechtzuerhalten.

Gleichzeitige Ausführung

Handelsoperationen, Telegram-Polling, TCP-Kommunikation und Logging laufen alle gleichzeitig mit dedizierten Threads.


Internes Parallelitätsmodell

Innerhalb jedes Prozesses verwendet das System Multithreading für asynchrone Operationen.

Threads der Handelsanwendung

  • Handelsausführungsthread
  • TCP-Kommunikationsthread
  • Log-Weiterleitungsthread
  • Hintergrund-Überwachungsworker

Threads der Telegram-Anwendung

  • Telegram-Polling-Thread
  • TCP-Server-Thread
  • Nachrichtenweiterleitungsworker

Dieses Design stellt sicher, dass Netzwerkoperationen die Handelsengine niemals blockieren.