Files
gogo2/.kiro/specs/5.manual-trade-annotation-ui/tasks.md
Dobromir Popov f464a412dc uni data storage
2025-10-20 09:48:59 +03:00

317 lines
9.7 KiB
Markdown

# Implementation Plan
- [x] 1. Set up project structure and base templates
- Create directory structure for templates, static files, and core modules
- Create base HTML template with dark theme styling
- Set up Flask/Dash application skeleton with template rendering
- _Requirements: 7.1, 7.2, 7.3_
- [x] 2. Implement data loading and caching layer
- [x] 2.1 Create HistoricalDataLoader class
- Integrate with existing DataProvider for multi-timeframe data access
- Implement data caching for frequently accessed time ranges
- Add pagination support for large time ranges
- _Requirements: 2.1, 2.2, 2.3_
- [x] 2.2 Implement TimeRangeManager
- Handle time range calculations for different timeframes
- Implement data prefetching for smooth scrolling
- Add boundary detection for available data
- _Requirements: 2.5, 2.6_
- [ ] 3. Build multi-timeframe chart visualization
- [ ] 3.1 Create ChartManager JavaScript class
- Initialize Plotly charts for multiple timeframes
- Implement candlestick rendering with OHLCV data
- Add volume bars below price charts
- _Requirements: 1.1, 1.2, 9.4_
- [x] 3.2 Implement chart synchronization
- Synchronize time navigation across all timeframe charts
- Implement crosshair cursor with price/time display
- Add zoom and pan functionality
- _Requirements: 1.3, 9.1, 9.2_
- [ ] 3.3 Add chart interaction features
- Implement hover tooltips with OHLCV details
- Add drawing tools (horizontal lines, trend lines)
- Implement full-screen mode support
- _Requirements: 1.4, 9.3, 9.7_
- [ ] 4. Implement time navigation system
- [ ] 4.1 Create TimeNavigator JavaScript class
- Implement date/time picker for direct navigation
- Add horizontal scrolling with dynamic data loading
- Implement keyboard shortcuts for navigation
- _Requirements: 2.1, 2.2, 2.6_
- [x] 4.2 Add navigation controls UI
- Create control panel template with navigation buttons
- Add time range selector (1h, 4h, 1d, 1w, custom)
- Implement loading indicators for data fetching
- _Requirements: 2.3, 2.4_
- [ ] 5. Build trade annotation system
- [ ] 5.1 Create AnnotationManager JavaScript class
- Implement click handling for marking entry points
- Add logic for marking exit points after entry
- Calculate and display profit/loss percentage
- _Requirements: 3.1, 3.2, 3.4_
- [x] 5.2 Implement annotation visualization
- Add visual markers for entry/exit points on charts
- Draw connecting lines between entry and exit
- Display P&L percentage on annotation
- _Requirements: 3.3, 3.6_
- [ ] 5.3 Add annotation editing and deletion
- Implement click handling on existing annotations
- Add edit mode for modifying annotations
- Implement delete confirmation dialog
- _Requirements: 3.5_
- [ ] 6. Implement annotation storage and management
- [ ] 6.1 Create AnnotationManager Python class
- Implement TradeAnnotation dataclass
- Add JSON-based storage for annotations
- Implement CRUD operations (create, read, update, delete)
- _Requirements: 3.7, 8.1, 8.2_
- [ ] 6.2 Add annotation validation
- Validate entry/exit timestamps and prices
- Ensure exit is after entry
- Validate profit/loss calculations
- _Requirements: 3.7_
- [ ] 6.3 Implement annotation listing UI
- Create annotation list template
- Display all annotations with filtering options
- Add search and sort functionality
- _Requirements: 8.3_
- [ ] 7. Build test case generation system
- [ ] 7.1 Implement test case generator
- Create method to extract market state at entry/exit points
- Build BaseDataInput structure from historical data
- Generate test case in realtime format
- _Requirements: 4.1, 4.2, 4.3_
- [ ] 7.2 Add market context extraction
- Extract OHLCV data for all timeframes at annotation time
- Include COB data if available
- Add technical indicators and pivot points
- _Requirements: 4.2_
- [ ] 7.3 Implement test case storage
- Save generated test cases to designated directory
- Add versioning support for test cases
- Implement batch export functionality
- _Requirements: 4.4, 4.5, 4.6_
- [ ] 8. Integrate model loading and management
- [ ] 8.1 Create TrainingSimulator class
- Integrate with TradingOrchestrator for model access
- Implement model loading from checkpoints
- Add model caching to avoid repeated loading
- _Requirements: 5.1, 5.2_
- [ ] 8.2 Build model selection UI
- Create template for model selection dropdown
- Display model metadata (version, training date, metrics)
- Add model refresh button
- _Requirements: 5.2_
- [ ] 9. Implement training execution system
- [ ] 9.1 Create training controller
- Implement training session management
- Add training progress tracking
- Handle training errors and recovery
- _Requirements: 5.3, 5.4_
- [ ] 9.2 Build training UI panel
- Create training panel template
- Add training progress bar and metrics display
- Implement real-time loss/accuracy updates
- _Requirements: 5.4_
- [ ] 9.3 Add training result storage
- Save training results and metrics
- Store checkpoint paths
- Implement training history tracking
- _Requirements: 5.5_
- [ ] 10. Build inference simulation system
- [ ] 10.1 Implement inference simulator
- Create method to replay annotated time period
- Generate model predictions at each timestep
- Compare predictions against annotations
- _Requirements: 6.1, 6.2, 6.3_
- [ ] 10.2 Add inference visualization
- Display model predictions on charts with distinct markers
- Highlight correct vs incorrect predictions
- Show prediction confidence levels
- _Requirements: 6.2, 6.5, 6.6_
- [ ] 10.3 Implement performance metrics calculation
- Calculate accuracy, precision, recall, F1 score
- Generate confusion matrix
- Display metrics in UI
- _Requirements: 6.4_
- [ ] 10.4 Add playback controls
- Implement playback speed control (1x, 2x, 5x, 10x)
- Add pause/resume functionality
- Implement step-by-step mode
- _Requirements: 6.7_
- [ ] 11. Implement configuration and symbol management
- [ ] 11.1 Create configuration UI
- Add symbol selection dropdown
- Implement timeframe enable/disable checkboxes
- Add configuration save/load functionality
- _Requirements: 10.1, 10.2, 10.3_
- [ ] 11.2 Add data source configuration
- Support multiple exchange data sources
- Display data availability per symbol/timeframe
- Handle missing data gracefully
- _Requirements: 10.4, 10.5, 10.6_
- [ ] 12. Implement session persistence
- [ ] 12.1 Add auto-save functionality
- Implement automatic annotation saving
- Save UI state (position, zoom level, selected timeframes)
- Add periodic backup of annotations
- _Requirements: 8.1, 8.4_
- [ ] 12.2 Implement session restoration
- Restore UI state on page load
- Load previous annotations
- Restore chart position and zoom
- _Requirements: 8.3_
- [ ] 12.3 Add export functionality
- Implement JSON export for annotations
- Add CSV export option
- Support batch export of multiple annotations
- _Requirements: 8.6_
- [ ] 13. Add error handling and validation
- [ ] 13.1 Implement client-side error handling
- Add network error retry logic with exponential backoff
- Validate annotations before sending to server
- Handle chart rendering errors with fallback
- _Requirements: 3.7, 8.1_
- [ ] 13.2 Implement server-side error handling
- Add comprehensive error logging
- Return structured error responses
- Implement transaction rollback for storage errors
- _Requirements: 4.4, 5.3, 5.6_
- [ ] 13.3 Add user-friendly error messages
- Display clear error messages in UI
- Provide troubleshooting suggestions
- Add error recovery options
- _Requirements: 2.5, 10.5_
- [ ] 14. Optimize performance
- [ ] 14.1 Implement data loading optimizations
- Add lazy loading for historical data
- Implement data compression for network transfer
- Add pagination for large time ranges
- _Requirements: 2.2, 2.3_
- [ ] 14.2 Optimize chart rendering
- Implement downsampling for distant time ranges
- Add virtual scrolling for large datasets
- Use Plotly WebGL for improved performance
- _Requirements: 1.1, 1.2_
- [ ] 14.3 Optimize training and inference
- Implement batch processing for test cases
- Leverage GPU when available
- Stream training progress to UI
- _Requirements: 5.3, 6.1_
- [ ] 15. Add styling and responsive design
- [ ] 15.1 Create dark theme CSS
- Implement dark theme color scheme
- Style all UI components consistently
- Add hover and active states
- _Requirements: 7.6, 9.5_
- [ ] 15.2 Implement responsive layout
- Make UI responsive for different screen sizes
- Optimize for desktop use (primary target)
- Test on different browsers
- _Requirements: 9.5_
- [ ] 16. Integration testing and documentation
- [ ] 16.1 Test end-to-end annotation flow
- Test creating annotations from chart clicks
- Verify test case generation
- Test training with generated test cases
- Verify inference simulation
- _Requirements: All requirements_
- [ ] 16.2 Test multi-timeframe synchronization
- Verify all timeframes stay synchronized
- Test navigation across timeframes
- Verify data consistency
- _Requirements: 1.3, 2.3_
- [ ] 16.3 Create user documentation
- Write user guide for annotation workflow
- Document keyboard shortcuts
- Add troubleshooting guide
- _Requirements: All requirements_