## Relevant Files

- `app.py` - Main Dash application entry point and layout definition
- `bot_manager.py` - Core bot lifecycle management and orchestration
- `database/models.py` - SQLAlchemy models for bots, trades, and market data
- `database/connection.py` - Database connection and session management
- `data/okx_integration.py` - OKX API connection and real-time data feed
- `strategies/` - Directory containing strategy modules (existing, may need refactoring)
- `trader/` - Directory containing virtual trading logic (existing, may need refactoring)
- `components/dashboard.py` - Dash dashboard components and layout
- `components/charts.py` - Plotly chart components for price and performance visualization
- `backtesting/engine.py` - Backtesting execution engine
- `config/bot_configs/` - Directory for JSON bot configuration files
- `utils/logging.py` - Logging configuration and utilities
- `requirements.txt` - Python dependencies using UV package manager

### Notes

- Use docker for development and database
- Use UV for package management as specified in project requirements
- PostgreSQL with SQLAlchemy for database persistence
- Plotly Dash for rapid UI development
- Bot configurations stored as JSON files in config directory
- System should support hot-reloading of bot states

## Tasks

- [ ] 0.0 Dev environment and Docker setup
  - [ ] 0.1 Create Docker Compose file with PostgreSQL service
  - [ ] 0.2 Set up UV package management with pyproject.toml dependencies
  - [ ] 0.3 Create .env file template for database and API configuration
  - [ ] 0.4 Add development scripts for starting/stopping services
  - [ ] 0.5 Test database connection and basic container orchestration

- [ ] 1.0 Database Infrastructure Setup
  - [ ] 1.1 Design PostgreSQL schema for bots, trades, market_data, and bot_states tables
  - [ ] 1.2 Create SQLAlchemy models in `database/models.py` for all entities
  - [ ] 1.3 Implement database connection management in `database/connection.py`
  - [ ] 1.4 Create Alembic migration scripts for initial schema
  - [ ] 1.5 Add database utility functions for common queries
  - [ ] 1.6 Implement bot state persistence for hot-reloading capability

- [ ] 2.0 Bot Management System Development  
  - [ ] 2.1 Create `bot_manager.py` with BotManager class for lifecycle control
  - [ ] 2.2 Implement bot configuration loading from JSON files in `config/bot_configs/`
  - [ ] 2.3 Add start/stop functionality for individual bots using threading/multiprocessing
  - [ ] 2.4 Create bot status tracking and monitoring system
  - [ ] 2.5 Implement error handling and automatic bot restart on crash
  - [ ] 2.6 Add bot state persistence to database for system restart recovery
  - [ ] 2.7 Create unified signal processing interface for strategy integration

- [ ] 3.0 OKX Integration and Data Pipeline
  - [ ] 3.1 Create `data/okx_integration.py` with OKX API client
  - [ ] 3.2 Implement real-time WebSocket connection for market data
  - [ ] 3.3 Add market data normalization and validation
  - [ ] 3.4 Create data storage pipeline to PostgreSQL with proper indexing
  - [ ] 3.5 Implement data feed monitoring and reconnection logic
  - [ ] 3.6 Add historical data retrieval for backtesting
  - [ ] 3.7 Test data pipeline with multiple cryptocurrency pairs

- [ ] 4.0 Dashboard UI and Visualization
  - [ ] 4.1 Set up basic Dash application structure in `app.py`
  - [ ] 4.2 Create dashboard layout with bot controls and chart areas
  - [ ] 4.3 Implement bot control panel in `components/dashboard.py` 
  - [ ] 4.4 Build candlestick charts with buy/sell markers in `components/charts.py`
  - [ ] 4.5 Add performance metrics display for each bot (balance, P&L, trade count, trade time)
  - [ ] 4.6 Implement bot switching functionality for chart views
  - [ ] 4.7 Add real-time data updates with 2-second refresh cycle
  - [ ] 4.8 Create responsive layout that works on different screen sizes

- [ ] 5.0 Backtesting System Implementation
  - [ ] 5.1 Create `backtesting/engine.py` with backtesting framework
  - [ ] 5.2 Implement historical data loading and time range selection
  - [ ] 5.3 Add accelerated testing capability (faster than real-time)
  - [ ] 5.4 Create backtesting results storage and comparison system
  - [ ] 5.5 Integrate backtesting with dashboard for result visualization
  - [ ] 5.6 Add date range picker component for backtest periods
  - [ ] 5.7 Test backtesting with sample strategies on 1+ week datasets 