67 lines
3.9 KiB
Markdown
67 lines
3.9 KiB
Markdown
|
|
# Tasks: OBI and CVD Metrics Integration
|
||
|
|
|
||
|
|
Based on the PRD for integrating Order Book Imbalance (OBI) and Cumulative Volume Delta (CVD) calculations into the orderflow backtest system.
|
||
|
|
|
||
|
|
## Relevant Files
|
||
|
|
|
||
|
|
- `repositories/sqlite_repository.py` - Extend to support metrics table operations and batch insertions
|
||
|
|
- `repositories/test_metrics_repository.py` - Unit tests for metrics repository functionality
|
||
|
|
- `models.py` - Add new data models for metrics and update Book class
|
||
|
|
- `tests/test_models_metrics.py` - Unit tests for new metric models
|
||
|
|
- `storage.py` - Modify to integrate metric calculations during snapshot processing
|
||
|
|
- `tests/test_storage_metrics.py` - Unit tests for storage metric integration
|
||
|
|
- `strategies.py` - Enhance DefaultStrategy to calculate OBI and CVD metrics
|
||
|
|
- `tests/test_strategies_metrics.py` - Unit tests for strategy metric calculations
|
||
|
|
- `visualizer.py` - Extend to plot OBI and CVD curves beneath volume graphs
|
||
|
|
- `tests/test_visualizer_metrics.py` - Unit tests for metric visualization
|
||
|
|
- `parsers/metric_calculator.py` - New utility class for OBI and CVD calculations
|
||
|
|
- `tests/test_metric_calculator.py` - Unit tests for metric calculation logic
|
||
|
|
|
||
|
|
### Notes
|
||
|
|
|
||
|
|
- Unit tests should be placed alongside the code files they are testing
|
||
|
|
- Use `uv run pytest [optional/path/to/test/file]` to run tests following project standards
|
||
|
|
- Database schema changes require migration considerations for existing databases
|
||
|
|
|
||
|
|
## Tasks
|
||
|
|
|
||
|
|
- [ ] 1.0 Database Schema and Repository Updates
|
||
|
|
- [ ] 1.1 Create metrics table schema with proper indexes and foreign key constraints
|
||
|
|
- [ ] 1.2 Add metrics table creation method to SQLiteOrderflowRepository
|
||
|
|
- [ ] 1.3 Implement metrics insertion methods with batch support for performance
|
||
|
|
- [ ] 1.4 Add metrics querying methods (by timestamp range, snapshot_id)
|
||
|
|
- [ ] 1.5 Create database migration utility to add metrics table to existing databases
|
||
|
|
- [ ] 1.6 Add proper error handling and transaction management for metrics operations
|
||
|
|
|
||
|
|
- [ ] 2.0 Metric Calculation Engine
|
||
|
|
- [ ] 2.1 Create MetricCalculator class with OBI calculation method
|
||
|
|
- [ ] 2.2 Implement CVD calculation with incremental support and reset functionality
|
||
|
|
- [ ] 2.3 Add volume delta calculation for individual timestamps
|
||
|
|
- [ ] 2.4 Implement best bid/ask extraction from orderbook snapshots
|
||
|
|
- [ ] 2.5 Add edge case handling (empty orderbook, no trades, zero volume)
|
||
|
|
- [ ] 2.6 Create validation methods to ensure OBI values are within [-1, 1] range
|
||
|
|
|
||
|
|
- [ ] 3.0 Storage System Integration
|
||
|
|
- [ ] 3.1 Modify Storage.build_booktick_from_db to integrate metric calculations
|
||
|
|
- [ ] 3.2 Update _create_snapshots_from_rows to calculate and store metrics per snapshot
|
||
|
|
- [ ] 3.3 Implement memory optimization by removing full snapshot retention
|
||
|
|
- [ ] 3.4 Add metric persistence during snapshot processing
|
||
|
|
- [ ] 3.5 Update Book model to store only essential data (metrics + best bid/ask)
|
||
|
|
- [ ] 3.6 Add progress reporting for metric calculation during processing
|
||
|
|
|
||
|
|
- [ ] 4.0 Strategy Enhancement
|
||
|
|
- [ ] 4.1 Update DefaultStrategy to use MetricCalculator for OBI and CVD
|
||
|
|
- [ ] 4.2 Modify compute_OBI method to work with new metric calculation system
|
||
|
|
- [ ] 4.3 Add CVD computation method to DefaultStrategy
|
||
|
|
- [ ] 4.4 Return time-series data structures compatible with visualizer
|
||
|
|
- [ ] 4.5 Integrate metric calculation into on_booktick workflow
|
||
|
|
- [ ] 4.6 Add configuration options for CVD reset points and calculation parameters
|
||
|
|
|
||
|
|
- [ ] 5.0 Visualization Implementation
|
||
|
|
- [ ] 5.1 Extend Visualizer to load metrics data from database
|
||
|
|
- [ ] 5.2 Add OBI and CVD plotting methods beneath volume graphs
|
||
|
|
- [ ] 5.3 Implement shared X-axis time alignment across all charts (OHLC, volume, OBI, CVD)
|
||
|
|
- [ ] 5.4 Add 6-hour bar aggregation support for metrics visualization
|
||
|
|
- [ ] 5.5 Implement standard line styling for OBI and CVD curves
|
||
|
|
- [ ] 5.6 Make time resolution configurable for future flexibility
|