TCPDashboard/docs/architecture.md
2025-06-06 20:33:29 +08:00

5.4 KiB

System Architecture

This document provides a high-level overview of the system architecture for the Crypto Trading Bot Platform.

1. Core Components

The platform consists of six core components designed to work together in a monolithic application structure. This design prioritizes rapid development and clear separation of concerns.

┌─────────────────────────────────────────────────────────────┐
│                   TCP Dashboard Platform                    │
│                                                             │
│  ┌──────────────────┐      ┌──────────────────┐     ┌──────────────────┐│
│  │   Data Collector  │────> │  Strategy Engine │────>│    Bot Manager   ││
│  │ (OKX, Binance...) │      │ (Signal Generation)│     │(State & Execution)││
│  └──────────────────┘      └──────────────────┘     └──────────────────┘│
│          │                          │                        │           │
│┌──────────────────┐      ┌──────────────────┐     ┌──────────────────┐│
││    Dashboard     │<──── │   Backtesting    │<────│     Database     ││
││ (Visualization)  │      │     Engine       │     │   (PostgreSQL)   ││
│└──────────────────┘      └──────────────────┘     └──────────────────┘│
└─────────────────────────────────────────────────────────────┘

1. Data Collection Module

Responsibility: Collect real-time market data from exchanges Implementation: data/ Key Features:

2. Strategy Engine

Responsibility: Unified interface for all trading strategies Status: Not yet implemented. This section describes the planned architecture.

class BaseStrategy:
    def __init__(self, parameters: dict):
        self.params = parameters
        
    def calculate(self, ohlcv_data: pd.DataFrame) -> Signal:
        raise NotImplementedError
        
    def get_indicators(self) -> dict:
        raise NotImplementedError

3. Bot Manager

Responsibility: Orchestrate bot execution and state management Status: Not yet implemented. This section describes the planned architecture.

class BotManager:
    def __init__(self):
        self.bots = {}

    def create_bot(self, config: dict) -> Bot:
        # ...
        
    def run_all_bots(self):
        # ...

4. Database

Responsibility: Data persistence and storage Implementation: database/ Key Features:

5. Backtesting Engine

Responsibility: Test strategies against historical data Status: Not yet implemented. This section describes the planned architecture.

6. Dashboard

Responsibility: Visualization and user interaction Implementation: dashboard/ Key Features:

2. Data Flow

Real-time Data Flow

  1. Data Collector connects to exchange WebSocket (e.g., OKX).
  2. Raw trades are aggregated into OHLCV candles (1m, 5m, etc.).
  3. OHLCV data is published to a Redis channel.
  4. Strategy Engine subscribes to Redis and receives OHLCV data.
  5. Strategy generates a Signal (BUY/SELL/HOLD).
  6. Bot Manager receives the signal and executes a virtual trade.
  7. Trade details are stored in the Database.
  8. Dashboard visualizes real-time data and bot activity.

Backtesting Data Flow

  1. Backtesting Engine queries historical OHLCV data from the Database.
  2. Data is fed into the Strategy Engine.
  3. Strategy generates signals, which are logged.
  4. Performance metrics are calculated and stored.

3. Design Principles

  • Monolithic Architecture: All components are part of a single application for simplicity.
  • Modular Design: Components are loosely coupled to allow for future migration to microservices.
  • API-First: Internal components communicate through well-defined interfaces.
  • Configuration-driven: Bot and strategy parameters are managed via JSON files.

Back to [Main Documentation (README.md)]