Reorganize UI for external trading workflow with manual trade logging
- Restructure tabs to analysis-focused workflow: * Analysis Hub: AI analysis, risk management, manual trade logger * Daily Prep: Market summary, alerts, checklist, news, trading plan * Journal & Review: Trading journal, habit tracker, advanced analytics * Live Charts: Technical analysis with streaming charts - Add ManualTradeLogger component for logging trades from MT5/TradingView/cTrader - Remove execution-focused components (TradeControls, PortfolioTracker) - Update XAU/USD price to realistic ,084.99 - Add indicator preferences and AI plan service - Add comprehensive documentation on decision coverage and implementation
This commit is contained in:
@@ -0,0 +1,445 @@
|
||||
# Indicator Preferences & AI Plan Generation Implementation
|
||||
|
||||
## 🎯 Overview
|
||||
|
||||
This document describes the complete implementation of **Indicator Preferences** and **AI-Powered Trading Plan Generation** features for the Gold Trading Simulator.
|
||||
|
||||
## ✨ Features Implemented
|
||||
|
||||
### 1. **Indicator Preferences System**
|
||||
- Users can select their preferred technical indicators
|
||||
- Configure priority levels for each indicator (1-10)
|
||||
- Add custom notes for why they prefer each indicator
|
||||
- Enable/disable indicators individually
|
||||
- Preferences are stored in the database and used for AI analysis
|
||||
|
||||
### 2. **AI Trading Plan Generation**
|
||||
- AI generates comprehensive daily trading plans
|
||||
- Uses user's indicator preferences in the analysis
|
||||
- Provides market bias, entry zones, targets, stop losses
|
||||
- Includes support/resistance levels
|
||||
- Generates strategy notes and reasoning
|
||||
- One-click plan generation with "AI Plan" button
|
||||
|
||||
---
|
||||
|
||||
## 📂 Files Created/Modified
|
||||
|
||||
### Backend Files
|
||||
|
||||
#### **New Models** (`backend/app/models/models.py`)
|
||||
```python
|
||||
- UserIndicatorPreferences: Stores user's preferred indicators
|
||||
- AIPlanGeneration: Stores AI-generated trading plans
|
||||
```
|
||||
|
||||
#### **New Schemas** (`backend/app/schemas/schemas.py`)
|
||||
```python
|
||||
- IndicatorPreferenceCreate/Update/Response
|
||||
- IndicatorPreferencesListResponse
|
||||
- AIPlanGenerationRequest/Response
|
||||
- AIPlanFeedback
|
||||
- MarketBias enum
|
||||
```
|
||||
|
||||
#### **New API Endpoints** (`backend/app/api/settings_api.py`)
|
||||
```python
|
||||
GET /settings/indicators/preferences
|
||||
POST /settings/indicators/preferences
|
||||
PUT /settings/indicators/preferences/{id}
|
||||
DELETE /settings/indicators/preferences/{id}
|
||||
POST /settings/indicators/preferences/bulk
|
||||
```
|
||||
|
||||
#### **New AI Endpoints** (`backend/app/api/ai.py`)
|
||||
```python
|
||||
POST /ai/generate-plan
|
||||
GET /ai/plans/history
|
||||
POST /ai/plans/feedback
|
||||
```
|
||||
|
||||
#### **New Service** (`backend/app/services/ai_plan_service.py`)
|
||||
- `AIPlanService` class with methods:
|
||||
- `generate_plan()`: Generate AI trading plan
|
||||
- `get_plan_history()`: Get historical plans
|
||||
- `submit_feedback()`: Submit user feedback
|
||||
|
||||
#### **Enhanced Service** (`backend/app/services/openrouter.py`)
|
||||
- Added `generate_trading_plan()` method for AI plan generation
|
||||
|
||||
#### **Migration Script** (`backend/migrate_indicator_ai_tables.py`)
|
||||
- Creates new database tables
|
||||
- Includes rollback functionality
|
||||
- Verification checks
|
||||
|
||||
### Frontend Files
|
||||
|
||||
#### **New Component** (`frontend/src/components/IndicatorPreferences.tsx`)
|
||||
- Visual indicator selection interface
|
||||
- Priority slider with star ratings
|
||||
- Enable/disable toggles
|
||||
- Notes for each indicator
|
||||
- Bulk save functionality
|
||||
- Real-time validation
|
||||
|
||||
#### **Enhanced Component** (`frontend/src/components/DailyTradingPlan.tsx`)
|
||||
- Added "AI Plan" button with sparkle icon
|
||||
- Integrated AI plan generation
|
||||
- Maps AI response to plan structure
|
||||
- Loading states and error handling
|
||||
- User feedback with confidence display
|
||||
|
||||
#### **Enhanced Service** (`frontend/src/services/api.ts`)
|
||||
- Added `aiApi.generateTradingPlan()`
|
||||
- Added `aiApi.getPlanHistory()`
|
||||
- Added `aiApi.submitPlanFeedback()`
|
||||
- Added `settingsApi` methods for indicator preferences
|
||||
|
||||
#### **Enhanced Settings** (`frontend/src/components/SettingsPanel.tsx`)
|
||||
- Integrated IndicatorPreferences component
|
||||
- New section in settings panel
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ Database Schema
|
||||
|
||||
### **user_indicator_preferences**
|
||||
```sql
|
||||
id INTEGER PRIMARY KEY
|
||||
user_id VARCHAR (nullable)
|
||||
indicator_name VARCHAR (e.g., 'SMA', 'RSI', 'MACD')
|
||||
enabled BOOLEAN (default: true)
|
||||
parameters JSON (indicator-specific parameters)
|
||||
priority INTEGER (1-10, higher = more important)
|
||||
notes TEXT (user notes)
|
||||
created_at TIMESTAMP
|
||||
updated_at TIMESTAMP
|
||||
```
|
||||
|
||||
### **ai_plan_generations**
|
||||
```sql
|
||||
id INTEGER PRIMARY KEY
|
||||
user_id VARCHAR (nullable)
|
||||
plan_date DATE
|
||||
market_bias VARCHAR (BULLISH/BEARISH/NEUTRAL)
|
||||
confidence FLOAT (0-100)
|
||||
daily_target FLOAT
|
||||
max_loss FLOAT
|
||||
entry_zone_min FLOAT
|
||||
entry_zone_max FLOAT
|
||||
target_price FLOAT
|
||||
stop_loss FLOAT
|
||||
support_levels JSON (array of prices)
|
||||
resistance_levels JSON (array of prices)
|
||||
max_trades INTEGER
|
||||
trading_notes TEXT
|
||||
indicators_used JSON (array of indicator names)
|
||||
reasoning TEXT
|
||||
market_conditions JSON
|
||||
ai_model VARCHAR
|
||||
accepted BOOLEAN
|
||||
modified BOOLEAN
|
||||
feedback TEXT
|
||||
created_at TIMESTAMP
|
||||
updated_at TIMESTAMP
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Usage Guide
|
||||
|
||||
### Setting Up Indicator Preferences
|
||||
|
||||
1. **Navigate to Settings**
|
||||
- Click "Settings" tab in the main navigation
|
||||
|
||||
2. **Configure Indicators**
|
||||
- Scroll to "Indicator Preferences" section
|
||||
- Click on indicators to add them
|
||||
- Set priority level (1-10) with slider
|
||||
- Add notes explaining why you prefer this indicator
|
||||
- Enable/disable as needed
|
||||
|
||||
3. **Save Preferences**
|
||||
- Click "Save" button at the top
|
||||
- Preferences are stored in database
|
||||
|
||||
### Generating AI Trading Plans
|
||||
|
||||
1. **Open Daily Trading Plan**
|
||||
- Navigate to any panel showing the Daily Trading Plan component
|
||||
|
||||
2. **Generate Plan**
|
||||
- Click the "AI Plan" button (purple gradient with sparkle icon)
|
||||
- Confirm generation when prompted
|
||||
- Wait for AI to analyze (5-15 seconds)
|
||||
|
||||
3. **Review Plan**
|
||||
- AI plan is loaded into the form
|
||||
- Shows market bias and confidence level
|
||||
- Review all fields (entry zones, targets, levels)
|
||||
- Edit if needed
|
||||
- Save when satisfied
|
||||
|
||||
4. **Submit Feedback (Optional)**
|
||||
- After trading, submit feedback on plan accuracy
|
||||
- Helps improve future AI generations
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Installation & Setup
|
||||
|
||||
### 1. Run Database Migration
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
python migrate_indicator_ai_tables.py
|
||||
```
|
||||
|
||||
This will create the two new tables in your database.
|
||||
|
||||
### 2. Verify Backend
|
||||
|
||||
```bash
|
||||
# Start backend server
|
||||
cd backend
|
||||
python -m uvicorn app.main:app --reload
|
||||
```
|
||||
|
||||
### 3. Test New Endpoints
|
||||
|
||||
```bash
|
||||
# Test indicator preferences
|
||||
curl http://localhost:8000/settings/indicators/preferences
|
||||
|
||||
# Test AI plan generation
|
||||
curl -X POST http://localhost:8000/ai/generate-plan \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"current_price": 2025.50, "risk_tolerance": "moderate"}'
|
||||
```
|
||||
|
||||
### 4. Start Frontend
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm run dev
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Available Indicators
|
||||
|
||||
The system supports 10 technical indicators:
|
||||
|
||||
| Indicator | Description |
|
||||
|-----------|-------------|
|
||||
| **SMA** | Simple Moving Average - Smooths price data |
|
||||
| **EMA** | Exponential Moving Average - Recent price focus |
|
||||
| **RSI** | Relative Strength Index - Momentum (0-100) |
|
||||
| **MACD** | Moving Average Convergence Divergence |
|
||||
| **BB** | Bollinger Bands - Volatility bands |
|
||||
| **ATR** | Average True Range - Volatility measure |
|
||||
| **Stochastic** | Momentum indicator vs range |
|
||||
| **Fibonacci** | Support/resistance retracement levels |
|
||||
| **VWAP** | Volume Weighted Average Price |
|
||||
| **Pivot** | Key support and resistance levels |
|
||||
|
||||
---
|
||||
|
||||
## 🤖 AI Plan Generation Logic
|
||||
|
||||
### How It Works
|
||||
|
||||
1. **User Preferences Loading**
|
||||
- System loads user's enabled indicators
|
||||
- Sorts by priority (highest first)
|
||||
|
||||
2. **Prompt Construction**
|
||||
- Builds detailed prompt with:
|
||||
- Current market price
|
||||
- User's risk tolerance
|
||||
- Preferred indicators with parameters
|
||||
- Recent price action (if available)
|
||||
- Current indicator values
|
||||
|
||||
3. **AI Analysis**
|
||||
- Sends prompt to Claude 3.5 Sonnet
|
||||
- AI analyzes using specified indicators
|
||||
- Generates comprehensive trading plan
|
||||
|
||||
4. **Plan Storage**
|
||||
- Stores plan in database
|
||||
- Includes metadata (confidence, reasoning)
|
||||
- Tracks indicators used
|
||||
|
||||
5. **User Review**
|
||||
- Plan displayed in UI
|
||||
- User can edit before accepting
|
||||
- Feedback can be submitted later
|
||||
|
||||
---
|
||||
|
||||
## 🎨 UI Features
|
||||
|
||||
### Indicator Preferences Component
|
||||
- **Visual Design**: Clean card-based layout
|
||||
- **Priority System**: Star ratings (1-10)
|
||||
- **Status Badges**: Green (enabled) / Gray (disabled)
|
||||
- **Quick Actions**: Remove indicators easily
|
||||
- **Info Box**: Explains how system works
|
||||
- **Validation**: Prevents duplicate indicators
|
||||
|
||||
### AI Plan Button
|
||||
- **Prominent Design**: Purple gradient with sparkle icon
|
||||
- **Loading State**: Shows "Generating..." during AI call
|
||||
- **Success Feedback**: Alert with bias and confidence
|
||||
- **Error Handling**: Graceful fallback message
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Security Considerations
|
||||
|
||||
- User preferences are user-specific (user_id field)
|
||||
- AI plan history is private per user
|
||||
- No sensitive data in AI prompts
|
||||
- OpenRouter API key stored securely in .env
|
||||
- Input validation on all endpoints
|
||||
|
||||
---
|
||||
|
||||
## 📈 Future Enhancements
|
||||
|
||||
Potential improvements for future versions:
|
||||
|
||||
1. **Multi-timeframe Analysis**
|
||||
- Generate plans for different timeframes
|
||||
- 1H, 4H, Daily plans
|
||||
|
||||
2. **Backtesting**
|
||||
- Test AI plans against historical data
|
||||
- Measure accuracy over time
|
||||
|
||||
3. **Learning System**
|
||||
- AI learns from user feedback
|
||||
- Improves accuracy for individual users
|
||||
|
||||
4. **Custom Indicators**
|
||||
- Allow users to add custom indicators
|
||||
- Configure parameters per indicator
|
||||
|
||||
5. **Plan Templates**
|
||||
- Save favorite plan configurations
|
||||
- Quick load common strategies
|
||||
|
||||
6. **Notifications**
|
||||
- Alert when conditions match plan
|
||||
- Price hits entry zone notification
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Migration Issues
|
||||
|
||||
**Problem**: Tables already exist
|
||||
```bash
|
||||
# Use checkfirst=True (already implemented)
|
||||
# Or rollback first:
|
||||
python migrate_indicator_ai_tables.py --rollback
|
||||
```
|
||||
|
||||
**Problem**: Database connection error
|
||||
- Check DATABASE_URL in .env
|
||||
- Verify PostgreSQL is running
|
||||
- Check credentials
|
||||
|
||||
### AI Generation Issues
|
||||
|
||||
**Problem**: AI Plan button does nothing
|
||||
- Check browser console for errors
|
||||
- Verify OPENROUTER_API_KEY is set
|
||||
- Check backend logs
|
||||
|
||||
**Problem**: Plan generation fails
|
||||
- Ensure indicator preferences are saved
|
||||
- Check current price is valid
|
||||
- Verify AI service is responding
|
||||
|
||||
### Frontend Issues
|
||||
|
||||
**Problem**: Component not showing
|
||||
- Clear browser cache
|
||||
- Check React dev tools for errors
|
||||
- Verify component import in Settings
|
||||
|
||||
---
|
||||
|
||||
## 📝 API Examples
|
||||
|
||||
### Create Indicator Preference
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/settings/indicators/preferences \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"indicator_name": "RSI",
|
||||
"enabled": true,
|
||||
"priority": 8,
|
||||
"parameters": {"period": 14},
|
||||
"notes": "Good for identifying overbought/oversold"
|
||||
}'
|
||||
```
|
||||
|
||||
### Generate AI Trading Plan
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/ai/generate-plan \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"current_price": 2025.50,
|
||||
"risk_tolerance": "moderate",
|
||||
"use_indicator_preferences": true,
|
||||
"user_capital": 100000
|
||||
}'
|
||||
```
|
||||
|
||||
### Get Plan History
|
||||
|
||||
```bash
|
||||
curl http://localhost:8000/ai/plans/history?limit=5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Testing Checklist
|
||||
|
||||
- [ ] Database migration runs successfully
|
||||
- [ ] Can create indicator preferences
|
||||
- [ ] Can edit indicator preferences
|
||||
- [ ] Can delete indicator preferences
|
||||
- [ ] Preferences appear in Settings panel
|
||||
- [ ] AI Plan button appears in Daily Trading Plan
|
||||
- [ ] AI Plan generation works
|
||||
- [ ] Generated plan loads into form
|
||||
- [ ] Can edit AI-generated plan
|
||||
- [ ] Can save plan after AI generation
|
||||
- [ ] Plan history is stored
|
||||
- [ ] Backend API endpoints respond correctly
|
||||
|
||||
---
|
||||
|
||||
## 📚 Related Documentation
|
||||
|
||||
- `DAILY_HELPER_ENHANCEMENT_PLAN.md` - Original feature proposal
|
||||
- `DAILY_TRADING_WORKFLOW.md` - Daily trading workflow
|
||||
- `DAILY_TRADING_IMPLEMENTATION.md` - Previous trading features
|
||||
|
||||
---
|
||||
|
||||
## 👥 Credits
|
||||
|
||||
Implementation completed as part of the Phase 1 Daily Helper Enhancements.
|
||||
|
||||
**Date**: November 16, 2025
|
||||
**Features**: Indicator Preferences + AI Plan Generation
|
||||
**Status**: ✅ Complete and Ready for Use
|
||||
Reference in New Issue
Block a user