6.2 KiB
6.2 KiB
Momentum Score & Moneyness Context - Implementation Complete ✅
What Was Implemented
✅ Backend Changes
-
Momentum Score Calculation (
backend/src/services/momentumScore.js)- Calculates 0-100 score based on:
- Rocket score (0-30 points)
- Flow trend (SURGING/FADING/STABLE) (0-25 points)
- Volume spikes (0-15 points)
- Tape alignment (0-10 points)
- Catalyst presence (0-10 points)
- Flow recency (0-10 points)
- Premium size (0-5 points)
- Calculates 0-100 score based on:
-
Moneyness Context (
backend/src/utils/moneynessHelper.js)- Detects ITM/OTM/ATM status
- Calculates distance from strike to spot
- Identifies gamma squeeze setups (Deep OTM calls + full badges)
- Provides display labels
-
Enhanced Flow Trend Detection (
backend/src/services/flowTrendDetector.js)- Added volume spike detection
- Volume ratio calculation
- Stronger signals when SURGING + volume spike
-
Updated Trade Signal Generator (
backend/src/services/tradeSignalGenerator.js)- Detects gamma squeeze setups
- Special signal type:
GAMMA_SQUEEZE_SETUP - Boosted confidence (+10 points) for gamma setups
- Enhanced reasoning with moneyness details
-
Updated Options Flow Route (
backend/src/routes/optionsFlow.js)- Calculates momentum score for each row
- Adds moneyness context to each row
- Detects gamma squeeze setups
- Includes all new fields in API response
✅ Frontend Changes
-
Momentum Column (
frontend/src/components/dashboard/OptionsFlowPanel.jsx)- Visual progress bar (0-100)
- Color-coded badges (green/yellow/orange/red)
- Sortable by momentum score
- Added to default visible columns
-
Moneyness Column
- Shows ITM/OTM/ATM status with distance %
- Color-coded badges
- Gamma squeeze indicator badge
- Added to option group
-
Enhanced Trade Signal Display
- Shows "⚡ GAMMA BUY" for gamma squeeze setups
- Gamma squeeze badge indicator
- Better visual distinction
-
New Quick Filters
- 🔥 High Momentum (70+) - Filter by momentum score
- ⚡ Gamma Squeeze - Filter for gamma setups only
New Data Fields Available
Each flow row now includes:
{
// Momentum Score
momentumScore: 75, // 0-100
momentumLabel: 'VERY HIGH', // EXTREME, VERY HIGH, HIGH, MODERATE, LOW, VERY LOW
momentumColor: 'green', // green, yellow, orange, red
momentumIcon: '🔥', // 🔥🔥, 🔥, 🟢, 🟡, 🟠, 🔴
// Moneyness Context
moneynessContext: {
category: 'DEEP_OTM', // DEEP_ITM, ITM, NEAR_ATM, OTM, DEEP_OTM, EXTREME_OTM
distance: 2.5, // Absolute distance from strike
distancePct: 5.2, // Percentage distance
isITM: false,
isOTM: true,
isATM: false,
strike: 150,
spot: 142.5
},
moneynessLabel: 'Deep OTM (+5.2%)',
isGammaSqueezeSetup: true, // true if gamma squeeze detected
// Enhanced Trade Signal
tradeSignal: {
signal: 'BUY',
type: 'GAMMA_SQUEEZE_SETUP', // NEW TYPE
confidence: 85, // Boosted for gamma setups
reasoning: 'Gamma squeeze setup: Deep OTM calls (5.2% OTM) + full institutional flow...',
// ... rest of signal
}
}
How to Test
1. Restart Backend
cd backend
npm run dev
2. Check API Response
curl http://localhost:3010/api/options/flow?startDate=2024-01-15&endDate=2024-01-15 | jq '.data[0] | {momentumScore, momentumLabel, moneynessLabel, isGammaSqueezeSetup, tradeSignal}'
You should see:
momentumScore: Number 0-100momentumLabel: String like "VERY HIGH"moneynessLabel: String like "Deep OTM (+5.2%)"isGammaSqueezeSetup: BooleantradeSignal.type: May be "GAMMA_SQUEEZE_SETUP" for deep OTM calls
3. Check Frontend
- Open your app
- Look for new Momentum column (should be visible by default)
- Look for Moneyness column (in column selector)
- Try the new filters:
- Click "🔥 High Momentum (70+)" - should filter to high momentum flows
- Click "⚡ Gamma Squeeze" - should show only gamma setups
4. Test Gamma Squeeze Detection
Look for flows with:
- Deep OTM calls (5%+ OTM)
- Full badges: 🟢 + 💎 + ⭐ + 💰 + ⚡
- Should show "⚡ GAMMA BUY" in Trade Signal column
- Should have purple "⚡ GAMMA" badge in Moneyness column
What You'll See
Momentum Column
- Progress bar showing 0-100 score
- Badge with icon and score number
- Colors:
- Green (80+): EXTREME momentum
- Green (70-79): VERY HIGH momentum
- Green (60-69): HIGH momentum
- Yellow (50-59): MODERATE momentum
- Orange (40-49): LOW momentum
- Red (<40): VERY LOW momentum
Moneyness Column
- Badge showing ITM/OTM status
- Distance percentage (e.g., "+5.2%" for OTM)
- Gamma badge (purple) if gamma squeeze detected
Trade Signal
- "⚡ GAMMA BUY" label for gamma squeezes
- Purple badge indicating gamma setup
- Higher confidence (boosted by +10 points)
Expected Results
After implementation, you should:
- ✅ See momentum scores (0-100) for every flow
- ✅ See moneyness labels (ITM/OTM/etc) for every flow
- ✅ See gamma squeeze detection when conditions are met
- ✅ Be able to filter by momentum and gamma squeezes
- ✅ See enhanced trade signals with gamma squeeze reasoning
Troubleshooting
No momentum scores showing?
- Check backend logs for errors
- Verify
momentumScore.jsis imported correctly - Check that flow trend data is available
No gamma squeezes detected?
- Gamma squeezes require:
- Deep OTM calls (5%+ OTM)
- Full badges (🟢 + 💎 + ⭐ + 💰 + ⚡)
- Check if you have any flows matching these criteria
Frontend not showing new columns?
- Hard refresh browser (Ctrl+Shift+R)
- Check browser console for errors
- Verify column is in
DEFAULT_VISIBLE_COLUMNS
Next Steps
Now that momentum and moneyness are working:
- Test with real data - See which flows get high momentum scores
- Filter by momentum - Find the strongest signals
- Watch for gamma squeezes - These are high-probability setups
- Compare signals - See how momentum correlates with price movement
Implementation Time: ~15 minutes Status: ✅ Complete and ready to test!