# Project Context ## Current State The Orderflow Backtest System has successfully implemented a comprehensive OBI (Order Book Imbalance) and CVD (Cumulative Volume Delta) metrics calculation and visualization system. The project is in a production-ready state with full feature completion. ## Recent Achievements ### ✅ Completed Features (Latest Implementation) - **Metrics Calculation Engine**: Complete OBI and CVD calculation with per-snapshot granularity - **Persistent Storage**: Metrics stored in SQLite database to avoid recalculation - **Memory Optimization**: >70% memory usage reduction through efficient data management - **Visualization System**: Multi-subplot charts (OHLC, Volume, OBI, CVD) with shared time axis - **Strategy Framework**: Enhanced trading strategy system with metrics analysis - **Clean Architecture**: Proper separation of concerns between data, analysis, and visualization ### 📊 System Metrics - **Performance**: Batch processing of 1000 records per operation - **Memory**: >70% reduction in peak memory usage - **Test Coverage**: 27 comprehensive tests across 6 test files - **Code Quality**: All functions <50 lines, all files <250 lines ## Architecture Decisions ### Key Design Patterns 1. **Repository Pattern**: Clean separation between data access and business logic 2. **Dataclass Models**: Lightweight, type-safe data structures with slots optimization 3. **Batch Processing**: High-performance database operations for large datasets 4. **Separation of Concerns**: Strategy, Storage, and Visualization as independent components ### Technology Stack - **Language**: Python 3.12+ with type hints - **Database**: SQLite with optimized PRAGMAs for performance - **Package Management**: UV for fast dependency resolution - **Testing**: Pytest with comprehensive unit and integration tests - **Visualization**: Matplotlib with Qt5Agg backend ## Current Development Priorities ### ✅ Completed (Production Ready) 1. **Core Metrics System**: OBI and CVD calculation infrastructure 2. **Database Integration**: Persistent storage and retrieval system 3. **Visualization Framework**: Multi-chart display with proper time alignment 4. **Memory Optimization**: Efficient processing of large datasets 5. **Code Quality**: Comprehensive testing and documentation ### 🔄 Maintenance Phase - **Documentation**: Comprehensive docs completed - **Testing**: Full test coverage maintained - **Performance**: Monitoring and optimization as needed - **Bug Fixes**: Address any issues discovered in production use ## Known Patterns and Conventions ### Code Style - **Functions**: Maximum 50 lines, single responsibility - **Files**: Maximum 250 lines, clear module boundaries - **Naming**: Descriptive names, no abbreviations except domain terms (OBI, CVD) - **Error Handling**: Comprehensive try-catch with logging, graceful degradation ### Database Patterns - **Parameterized Queries**: All SQL uses proper parameterization for security - **Batch Operations**: Process records in batches of 1000 for performance - **Indexing**: Strategic indexes on timestamp and foreign key columns - **Transactions**: Proper transaction boundaries for data consistency ### Testing Patterns - **Unit Tests**: Each module has comprehensive unit test coverage - **Integration Tests**: End-to-end workflow testing - **Mock Objects**: External dependencies mocked for isolated testing - **Test Data**: Temporary databases with realistic test data ## Integration Points ### External Dependencies - **SQLite**: Primary data storage (read and write operations) - **Matplotlib**: Chart rendering and visualization - **Qt5Agg**: GUI backend for interactive charts - **Pytest**: Testing framework ### Internal Module Dependencies ``` main.py → storage.py → repositories/ → models.py → strategies.py → models.py → visualizer.py → repositories/ ``` ## Performance Characteristics ### Optimizations Implemented - **Memory Management**: Metrics storage instead of full snapshot retention - **Database Performance**: Optimized SQLite PRAGMAs and batch processing - **Query Efficiency**: Indexed queries with proper WHERE clauses - **Cache Usage**: Price caching in orderbook parser for repeated calculations ### Scalability Notes - **Dataset Size**: Tested with 600K+ snapshots and 300K+ trades per day - **Time Range**: Supports months to years of historical data - **Processing Speed**: ~1000 rows/second with full metrics calculation - **Storage Overhead**: Metrics table adds <20% to original database size ## Security Considerations ### Implemented Safeguards - **SQL Injection Prevention**: All queries use parameterized statements - **Input Validation**: Database paths and table names validated - **Error Information**: No sensitive data exposed in error messages - **Access Control**: Database file permissions respected ## Future Considerations ### Potential Enhancements - **Real-time Processing**: Streaming data support for live trading - **Additional Metrics**: Volume Profile, Delta Flow, Liquidity metrics - **Export Capabilities**: CSV/JSON export for external analysis - **Interactive Charts**: Enhanced user interaction with visualization - **Configuration System**: Configurable batch sizes and processing parameters ### Scalability Options - **Database Upgrade**: PostgreSQL for larger datasets if needed - **Parallel Processing**: Multi-threading for CPU-intensive calculations - **Caching Layer**: Redis for frequently accessed metrics - **API Interface**: REST API for external system integration ## Development Environment ### Requirements - Python 3.12+ - UV package manager - SQLite database files with required schema - Qt5 for visualization (Linux/macOS) ### Setup Commands ```bash # Install dependencies uv sync # Run full test suite uv run pytest # Process sample data uv run python main.py BTC-USDT 2025-07-01 2025-08-01 ``` ## Documentation Status ### ✅ Complete Documentation - README.md with comprehensive overview - Module-level documentation for all components - API documentation with examples - Architecture decision records - Code-level documentation with docstrings ### 📊 Quality Metrics - **Code Coverage**: 27 tests across 6 test files - **Documentation Coverage**: All public interfaces documented - **Example Coverage**: Working examples for all major features - **Error Documentation**: All error conditions documented --- *Last Updated: Current as of OBI/CVD metrics system completion* *Next Review: As needed for maintenance or feature additions*