- 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
446 lines
12 KiB
Markdown
446 lines
12 KiB
Markdown
# 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
|