# Manual Trade Annotation UI A web-based interface for manually marking profitable buy/sell signals on historical market data to generate training test cases for machine learning models. ## Overview This tool allows traders to: - View multi-timeframe candlestick charts - Navigate through historical data - Mark entry and exit points for trades - Generate test cases in realtime format - Train models with annotated data - Simulate inference to measure model performance ## Project Structure ``` ANNOTATE/ ├── web/ # Web application │ ├── app.py # Main Flask/Dash application │ ├── templates/ # Jinja2 HTML templates │ │ ├── base_layout.html │ │ ├── annotation_dashboard.html │ │ └── components/ │ └── static/ # Static assets │ ├── css/ │ ├── js/ │ └── images/ ├── core/ # Core business logic │ ├── annotation_manager.py │ ├── training_simulator.py │ └── data_loader.py ├── data/ # Data storage │ ├── annotations/ │ ├── test_cases/ │ └── training_results/ └── tests/ # Test files ``` ## Installation ```bash # Install dependencies (if not already installed) pip install dash plotly pandas numpy # Run the application python TESTCASES/web/app.py ``` ## Usage 1. **Start the application**: Run `python TESTCASES/web/app.py` 2. **Open browser**: Navigate to `http://localhost:8051` 3. **Select symbol and timeframe**: Choose trading pair and timeframes to display 4. **Navigate to time period**: Use date picker or scroll to find market conditions 5. **Mark trades**: Click on chart to mark entry point, click again for exit 6. **Generate test cases**: Click "Generate Test Case" to create training data 7. **Train models**: Select model and click "Train" to run training session 8. **Simulate inference**: Click "Simulate" to test model performance ## Features - Multi-timeframe synchronized charts (1s, 1m, 1h, 1d) - Interactive trade marking with P&L calculation - Test case generation in realtime format - Model training integration - Inference simulation with performance metrics - Session persistence and auto-save - Dark theme UI ## Integration with Main System This sub-project is designed to be self-contained but can be integrated with the main trading system: ```python # Import annotation manager in main system from TESTCASES.core.annotation_manager import AnnotationManager # Import training simulator from TESTCASES.core.training_simulator import TrainingSimulator # Use generated test cases in training test_cases = annotation_manager.get_test_cases() ``` ## Configuration Configuration is loaded from the main `config.yaml` file. The application uses: - Data provider settings for historical data access - Model paths for training integration - Symbol and timeframe configurations ## Development To add new features: 1. Update requirements in `.kiro/specs/manual-trade-annotation-ui/requirements.md` 2. Update design in `.kiro/specs/manual-trade-annotation-ui/design.md` 3. Add tasks to `.kiro/specs/manual-trade-annotation-ui/tasks.md` 4. Implement changes following the task list ## License Part of the AI Trading System project.