11 KiB
Project Context: Advanced Crypto Trading Bot Platform
This document provides a comprehensive overview of the project's architecture, technology stack, conventions, and current implementation status, following the guidelines in context-management.md.
1. Architecture Overview
The platform is a monolithic application built with Python, designed for professional crypto trading strategy development and testing. The architecture features a mature, modular design with production-ready components and clear separation between infrastructure and business logic.
Core Components
-
Production-Ready Data Collection Service: A highly sophisticated, multi-process service with robust error handling, health monitoring, and auto-restart capabilities. Features a
BaseDataCollectorabstraction,CollectorManagerfor coordination, and exchange-specific implementations (OKX). Includes comprehensive telemetry, state management, and connection management. -
Enterprise Database Layer: PostgreSQL with TimescaleDB support, featuring a mature repository pattern implementation. Uses SQLAlchemy ORM with proper connection pooling, session management, and Alembic migrations. Includes specialized repositories for different entities with consistent error handling.
-
Advanced Dashboard & Visualization: A sophisticated Dash application with multiple specialized layouts, real-time charting, technical indicator overlays, and comprehensive system monitoring. Features advanced chart configurations, strategy visualization tools, and responsive UI components.
-
Technical Indicators Engine: Complete implementation of technical indicators (SMA, EMA, RSI, MACD, Bollinger Bands) with sparse data handling, chart layer integration, and configurable parameters.
-
Real-time Messaging Infrastructure: Redis-based pub/sub system for component communication, with organized channel structures and both synchronous and asynchronous support.
-
Strategy Engine: (✅ IMPLEMENTED) Core trading logic components for strategy execution, including base strategy interface, dynamic loading, signal generation, batch processing, and real-time execution.
-
Bot Manager: (⚠️ NOT YET IMPLEMENTED) Core trading logic components for bot lifecycle management, and virtual portfolio tracking.
-
Backtesting Engine: (⚠️ NOT YET IMPLEMENTED) Historical strategy testing capabilities.
Data Flow
- Data Collection:
DataCollectionServiceconnects to exchange APIs (OKX WebSocket) - Processing: Raw trade data processed by exchange-specific processors
- Aggregation: Trades aggregated into OHLCV candles across multiple timeframes
- Storage: Both raw trade data and processed OHLCV stored in PostgreSQL
- Distribution: Real-time data distributed via Redis pub/sub channels
- Visualization: Dashboard reads from database for charts and system monitoring
- Strategy Processing: Strategy engine now consumes OHLCV data for signal generation and execution.
System Health & Monitoring
The platform includes comprehensive system health monitoring with:
- Real-time data collection status tracking
- Database performance metrics
- Redis connection monitoring
- CPU and memory usage tracking
- Automatic error detection and alerting
2. Technology Stack
- Backend: Python 3.10+
- Web Framework: Dash with Dash Bootstrap Components and Mantine UI components
- Database: PostgreSQL 14+ with SQLAlchemy ORM and Alembic migrations
- Time-Series: TimescaleDB support (schema available, not yet activated)
- Messaging: Redis for pub/sub communication
- Data Processing: pandas for numerical computations and data manipulation
- Charting: Plotly for advanced financial charts with technical indicators
- Package Management:
uvfor dependency management - Containerization: Docker and Docker Compose for development environment
- Testing: pytest with comprehensive test suites for core components
- Logging: Custom unified logging system with component-specific organization
3. Coding Conventions
-
Modular Design: Code is organized into modules with a clear purpose (e.g.,
data,database,dashboard,strategies). Seearchitecture.mdfor more details. -
Naming Conventions:
- Classes:
PascalCase(e.g.,MarketData,BaseDataCollector,CollectorManager) - Functions & Methods:
snake_case(e.g.,get_system_health_layout,connect) - Variables & Attributes:
snake_case(e.g.,exchange_name,_ws_client) - Constants:
UPPER_SNAKE_CASE(e.g.,MAX_RECONNECT_ATTEMPTS) - Modules:
snake_case.py(e.g.,collector_manager.py) - Private Attributes/Methods: Single underscore
_prefix
- Classes:
-
File Organization & Code Structure:
- Repository Pattern: Database operations centralized through repository classes
- Factory Pattern: Used for collector creation, strategy loading and management
- Abstract Base Classes: Well-defined interfaces for extensibility
- Dependency Injection: Configuration and dependencies injected rather than hardcoded
- Error Handling: Custom exception hierarchies with proper error context
-
Import/Export Patterns:
- Absolute imports preferred over relative imports
- Clean public APIs exposed through
__init__.pyfiles - Grouped imports: Standard library, third-party, local application
-
Configuration Management:
- Pydantic Settings: Type-safe configuration with environment variable support
- JSON Configuration: Strategy and bot parameters in JSON files
- Environment Variables: All credentials and deployment settings via
.env
-
Database Access:
- Repository Pattern: All database operations through repository layer
- SQLAlchemy ORM: Exclusive use of ORM for type safety and maintainability
- Connection Pooling: Sophisticated connection management with monitoring
- Session Management: Proper session lifecycle with context managers
-
Logging & Monitoring:
- Unified Logging: Component-specific loggers with centralized configuration
- Health Monitoring: Comprehensive health checks and telemetry
- Error Tracking: Detailed error context and automated alerts
4. Current Implementation Status
✅ Completed & Production-Ready Features
🏗️ Infrastructure Foundation (95% Complete)
- Database Schema & Models: Complete PostgreSQL schema with all necessary tables, indexes, and relationships
- Repository Layer: Mature repository pattern with proper ORM usage
- Connection Management: Sophisticated connection pooling with health monitoring
- Migration System: Full Alembic setup for schema versioning
📊 Data Collection System (90% Complete)
- BaseDataCollector: Abstract base with health monitoring, auto-restart, telemetry
- CollectorManager: Multi-collector coordination with lifecycle management
- OKX Integration: Production-ready WebSocket implementation with error handling
- Data Processing: Real-time trade processing and OHLCV aggregation
- State Management: Comprehensive collector state tracking and monitoring
🎯 Dashboard & Visualization (85% Complete)
- Multiple Layouts: Market data, system health, bot management, performance dashboards
- Advanced Charting: Real-time candlestick charts with technical indicator overlays
- System Monitoring: Comprehensive real-time system health dashboard
- Technical Indicators: Complete implementation with chart integration
- User Interface: Professional UI with responsive design and intuitive navigation
📈 Technical Analysis (95% Complete)
- Indicator Library: SMA, EMA, RSI, MACD, Bollinger Bands with proper sparse data handling
- Chart Integration: Sophisticated indicator overlay system with configuration options
- Strategy Configurations: Advanced chart strategy templates and examples
🤖 Strategy Engine (95% Complete)
- BaseStrategy Interface: Implemented and serving as a foundation for strategies
- Strategy Implementations: EMA Crossover, MACD, and RSI strategies implemented
- Strategy Factory: Dynamic strategy loading and registration system in place
- Signal Generation: Core trading signal logic implemented with vectorized operations
- Batch Processing: Capabilities for backtesting large datasets
- Real-time Execution: Event-driven real-time signal generation and broadcasting
🔧 Supporting Systems (90% Complete)
- Logging System: Unified, component-specific logging with automatic cleanup
- Configuration Management: Type-safe settings with environment variable support
- Redis Integration: Pub/sub messaging system for real-time communication
- Development Tools: Comprehensive development and monitoring scripts
⚠️ Critical Gaps - Core Business Logic Missing
🎮 Bot Management System (10% Complete)
- Bot Database Models: Exist but no business logic implementation
- BotManager Class: Does not exist (
bot_manager.pymissing) - Virtual Portfolio: No portfolio tracking or P&L calculation
- Bot Lifecycle: No start/stop/monitor functionality
📊 Backtesting Engine (0% Complete)
- BacktestingEngine: No historical testing capabilities
- Performance Metrics: No Sharpe ratio, drawdown, or performance calculation
- Historical Data Processing: No vectorized backtesting implementation
⚡ Real-Time Trading Simulation (0% Complete)
- Trade Execution: No simulated trade processing
- Signal Processing: No real-time signal generation from market data
- Portfolio Updates: No virtual portfolio management
🔧 Technical Debt & Issues
📋 Testing Issues
- Import errors in test suite due to file structure changes (mostly resolved with recent updates)
- Test coverage needs update for new components
📄 Documentation Gaps
- API documentation needs expansion
🎯 Next Phase Priority
The project has excellent infrastructure and a nearly complete Strategy Engine. The next phases will focus on:
- Chart Integration and Visualization (Task Group 5.0) - Implement live strategy signal visualization layers and performance metrics display.
- Bot Management System (Task Group 6.0) - Create bot lifecycle management and virtual portfolios
- Backtesting Engine (Task Group 7.0) - Build historical strategy testing capabilities
- Real-Time Simulation (Task Group 8.0) - Implement live strategy execution with virtual trading
The sophisticated infrastructure provides a solid foundation for rapid development of the trading logic components.