2025-08-26 17:22:07 +08:00
# Project Context
## Current State
2025-09-10 15:39:16 +08:00
The project implements a modular, efficient orderflow processing pipeline:
- Stream orderflow from SQLite (`DBInterpreter.stream` ).
- Process trades and orderbook updates through modular `OHLCProcessor` architecture.
- Exchange data with the UI via atomic JSON files (`viz_io` ).
- Render OHLC+Volume, Depth, and Metrics charts with a Dash app (`app.py` ).
The system features a clean composition-based architecture with specialized modules for different concerns, providing OBI/CVD metrics alongside OHLC data.
## Recent Work
- **Modular Refactoring**: Extracted `ohlc_processor.py` into focused modules:
- `level_parser.py` : Orderbook level parsing utilities (85 lines)
- `orderbook_manager.py` : In-memory orderbook state management (90 lines)
- `metrics_calculator.py` : OBI and CVD metrics calculation (112 lines)
- **Architecture Compliance**: Reduced main processor from 440 to 248 lines (250-line target achieved)
- Maintained full backward compatibility and functionality
- Implemented read-only, batched SQLite streaming with PRAGMA tuning.
- Added robust JSON IPC with atomic writes and tolerant UI reads.
- Built a responsive Dash visualization polling at 500ms.
- Unified CLI using Typer, with UV for process management.
## Conventions
- Python 3.12+, UV for dependency and command execution.
- **Modular Architecture**: Composition over inheritance, single-responsibility modules
- **File Size Limits**: ≤250 lines per file, ≤50 lines per function (enforced)
- Type hints throughout; concise, focused functions and classes.
- Error handling with meaningful logs; avoid bare exceptions.
- Prefer explicit JSON structures for IPC; keep payloads small and bounded.
## Priorities
- Improve configurability: database path discovery, CLI flags for paths and UI options.
- Add tests for `DBInterpreter.stream` and `OHLCProcessor` (run with `uv run pytest` ).
- Performance tuning for large DBs while keeping UI responsive.
- Documentation kept in sync with code; architecture reflects current design.
## Roadmap (Future Work)
- Enhance OBI metrics with additional derived calculations (e.g., normalized OBI).
- Optional repository layer abstraction and a storage orchestrator.
- Extend visualization with additional subplots and interactivity.
- Strategy module for analytics and alerting on derived metrics.
## Tooling
- Package management and commands: UV (e.g., `uv sync` , `uv run ...` ).
- Visualization server: Dash on `http://localhost:8050` .
- Linting/testing: Pytest (e.g., `uv run pytest` ).