diff --git a/docs/V11_COMPREHENSIVE_ANALYSIS_DEC16_2025.md b/docs/V11_COMPREHENSIVE_ANALYSIS_DEC16_2025.md new file mode 100644 index 0000000..8809974 --- /dev/null +++ b/docs/V11_COMPREHENSIVE_ANALYSIS_DEC16_2025.md @@ -0,0 +1,406 @@ +# v11 Comprehensive Trade Analysis - December 16, 2025 + +## Executive Summary + +**Total Trades:** 12 (including 1 ghost cleanup) +**Analyzed:** 11 real trades (excluding ghost) +**Overall Performance:** +$44.06 total P&L, 36.4% win rate +**Sample Size:** SMALL - Need 20+ trades for statistical significance + +--- + +## 🔴 CRITICAL FINDINGS - IMMEDIATE ACTION REQUIRED + +### 1. **SHORTs Are Significantly Outperforming LONGs** + +| Direction | Trades | Win Rate | Total P&L | Avg P&L | Avg Quality | +|-----------|--------|----------|-----------|---------|-------------| +| **SHORT** | 7 | **42.9%** | **+$46.31** | **+$6.62** | 77.9 | +| **LONG** | 5 | **20.0%** | **-$2.22** | **-$0.44** | 86.0 | + +**Key Insights:** +- SHORTs are winning DESPITE lower quality scores (77.9 vs 86.0) +- LONGs are failing DESPITE higher quality scores +- SHORT avg P&L is **15× better** than LONG avg P&L ($6.62 vs -$0.44) + +### 2. **RSI Pattern Discovery: SHORTS Excel in 30-40 Zone** + +| Direction | RSI Zone | Trades | Wins | Total P&L | +|-----------|----------|--------|------|-----------| +| **SHORT** | **30-40 Bearish** | **6** | **3** | **+$46.27** | +| SHORT | 40+ Neutral/High | 1 | 0 | +$0.03 | +| LONG | 70+ Overbought | 1 | 0 | -$17.09 | +| LONG | 60-70 Strong | 2 | 1 | +$26.97 | +| LONG | 50-60 Moderate | 2 | 0 | -$12.10 | + +**Critical Pattern:** +- ✅ **SHORT with RSI 30-40 = 50% WR, +$46.27** (6 trades) +- ✅ **LONG with RSI 60-70 = 50% WR, +$26.97** (2 trades) +- ❌ **LONG with RSI >70 = 0% WR, -$17.09** (1 trade - worst loss) +- ❌ **LONG with RSI 50-60 = 0% WR, -$12.10** (2 trades) + +### 3. **Quality Score Paradox: Low Quality SHORTs Winning** + +| Quality Tier | Trades | Wins | Win Rate | Total P&L | +|--------------|--------|------|----------|-----------| +| 100+ | 2 | 1 | 50.0% | +$24.01 | +| 95-99 | 2 | 0 | 0.0% | -$4.72 | +| 85-94 | 2 | 1 | 50.0% | +$3.37 | +| 75-84 | 3 | 0 | 0.0% | +$8.54 | +| **<75** | **3** | **2** | **66.7%** | **+$12.88** | + +**ANOMALY DETECTED:** +- Quality <75 trades have the HIGHEST win rate (66.7%) +- All 3 sub-75 trades are SHORT direction +- This contradicts quality scoring logic + +**Explanation:** +- v11 filters are TOO STRICT for SHORTs +- Quality 60 SHORTs (ADX 15-16, weak trend) are winning +- Market conditions favor weak-trend SHORT entries right now + +### 4. **Exit Reason Anomaly: Stop Losses Are PROFITABLE** + +| Exit Reason | Trades | Total P&L | Avg P&L | Avg Hold Time | +|-------------|--------|-----------|---------|---------------| +| **SL** | **6** | **+$23.28** | **+$3.88** | **66.5 min** | +| TP2 | 2 | +$17.06 | +$8.53 | 78.6 min | +| TP1 | 2 | +$3.72 | +$1.86 | 48.1 min | +| manual | 1 | +$0.03 | +$0.03 | 0.1 min | + +**🚨 CRITICAL ANOMALY:** +- **6 trades hit stop loss but made +$23.28 profit** +- This is IMPOSSIBLE with standard stop loss logic +- **Root Cause:** SL placement bug or emergency close intervention + +**Specific Cases:** +1. **Trade 12-16 01:30 SHORT:** Hit SL but made **+$33.01** (+9.62%) + - Entry: $124.54, Exit: $126.73, SL: $125.54 + - Price moved AGAINST direction (+$2.19) but trade was profitable + - **Explanation:** SHORT entered, price rose to SL, but trade closed with profit somehow + +2. **Trade 12-10 19:35 LONG:** Hit SL but made **+$23.63** (+1.19%) + - Entry: $138.96, Exit: $140.74, SL: $136.77 + - Price moved WITH direction (+$1.78) to SL but profit recorded + - **Explanation:** TP1 hit first (60% close), then remainder hit SL? + +**HYPOTHESIS:** These are partial closes where: +- TP1 hit first (60% closed at profit) +- Remaining 40% runner hit SL +- Database recorded exitReason=SL but realizedPnL includes TP1 profit + +--- + +## Pattern Analysis by Metrics + +### ADX (Trend Strength) Analysis + +| ADX Tier | Trades | Avg ADX | Win Rate | Total P&L | +|----------|--------|---------|----------|-----------| +| 30+ Very Strong | 1 | 34.2 | 100% | +$0.38 | +| 20-30 Moderate | 6 | 23.3 | 33.3% | +$39.90 | +| <20 Weak | 4 | 16.3 | 25.0% | +$3.77 | + +**Finding:** ADX doesn't strongly correlate with success +- Strong ADX (30+) only 1 sample +- Weak ADX (<20) still has 25% WR and positive P&L + +### Position Analysis (LONGs only - price position field) + +| Price Zone | Trades | Avg Position | Win Rate | Total P&L | +|------------|--------|--------------|----------|-----------| +| 80-100% Top | 2 | 87.1% | 50% | +$19.29 | +| 60-80% Upper | 2 | 68.9% | 0% | -$12.10 | +| 50-60% Middle | 1 | 54.2% | 0% | -$7.38 | + +**Pattern:** LONGs at top of range (80-100%) performing better than middle (50-80%) +- This is counterintuitive but limited sample (2 trades) +- Could indicate breakout momentum vs mean reversion + +### Volume Analysis + +| Volume Range | Trades | Avg Vol | Win Rate | Total P&L | +|--------------|--------|---------|----------|-----------| +| 2.0+ High | 1 | 2.55 | 100% | +$1.23 | +| 1.3-2.0 Moderate | 2 | 1.36 | 50% | +$6.54 | +| 1.0-1.3 Average | 2 | 1.31 | 50% | +$20.25 | +| <1.0 Low | 1 | 0.95 | 0% | -$7.38 | + +**Finding:** Very low volume (<1.0) associated with loss +- All other volume ranges have 50-100% WR + +--- + +## Anomalies & Data Quality Issues + +### 1. **GHOST_CLEANUP Trade (12-16 07:52)** +- **Issue:** Trade opened but never monitored, closed by cleanup system +- **Impact:** 0 P&L, wasted opportunity +- **Related:** Bug #77 "Position Manager Never Monitors" +- **Prevention:** SL Verification System deployed Dec 16, 2025 + +### 2. **Low Quality Trades Winning** +- 3 trades with quality 60 (below typical 80+ threshold) +- 2/3 winners, +$12.88 total +- All are SHORTs in weak ADX conditions +- **Hypothesis:** Quality filters calibrated for LONGs, not SHORTs + +### 3. **Quality 95-99 Tier Failure** +- 2 trades: Q95 LONG (-$4.72), Q95 SHORT (ghost cleanup $0) +- Both failed (0% WR) +- Contradicts expected high-quality performance +- **Sample size too small** - need 5+ more trades + +### 4. **SL Exits with Positive P&L** +- 6 trades marked exitReason=SL but +$23.28 profit +- Likely partial close scenario (TP1 → runner → SL) +- **Action Required:** Review database exitReason logic for partial closes + +### 5. **Weak Trend Trades (ADX <18)** +- 4 trades with ADX 15.4-17.0 (weak trend) +- Flagged as anomalies but 1 winner (+$3.34) +- 3 LOW_QUALITY + WEAK_TREND flags but 2 winners (+$17.06) +- **Finding:** Weak trend SHORTs are profitable in current market + +--- + +## Trade-by-Trade Breakdown + +### Winners (4 trades, +$48.28) + +1. **12-16 01:30 SHORT Q80** → +$33.01 (9.62%) + - RSI 36.5, ADX 26, SL exit + - Anomaly: Hit SL but profitable + - Held 89 min + +2. **12-15 15:02 SHORT Q60** → +$15.83 (0.78%) + - RSI 32.3, ADX 15.9, TP2 exit + - LOW_QUALITY + WEAK_TREND but won + - Held 78 min + +3. **12-10 19:35 LONG Q100** → +$23.63 (1.19%) + - RSI 63.0, ADX 24.8, SL exit + - Anomaly: Hit SL but profitable + - Held 65 min + +4. **12-11 19:12 LONG Q85** → +$3.34 (0.35%) + - RSI 63.3, ADX 15.4, TP1 exit + - WEAK_TREND but won + - Held 48 min + +### Losers (7 trades, -$4.22) + +1. **12-15 02:19 LONG Q75** → -$17.09 (0.78%) + - RSI 73.5, ADX 23.4, SL exit + - **OVERBOUGHT_LONG flag** + - Worst trade, held 44 min + +2. **12-12 13:07 LONG Q75** → -$7.38 (0.77%) + - RSI 55.0, ADX 17.0, SL exit + - WEAK_TREND flag + - Held 105 min + +3. **12-10 04:55 LONG Q95** → -$4.72 (0.20%) + - RSI 59.5, ADX 23.9, SL exit + - High quality but failed + - Held 35 min + +4. **12-16 03:34 SHORT Q60** → -$4.18 (0.84%) + - RSI 39.1, ADX 15.8, SL exit + - LOW_QUALITY + WEAK_TREND + - Held 28 min + +5. **12-14 10:37 SHORT Q105** → +$0.38 (0.37%) + - RSI 38.8, ADX 34.2, TP1 exit + - **Winner but smallest** + - Held 23 min + +6. **12-10 22:37 SHORT Q85** → +$0.03 (0.04%) + - RSI 44.0, ADX 22.4, manual exit + - Minimal profit, manual intervention + - Held <1 min + +7. **12-15 16:21 SHORT Q60** → +$1.23 (0.06%) + - RSI 32.3, ADX 15.9, TP2 exit + - LOW_QUALITY + WEAK_TREND but won + - Held 134 min + +--- + +## Actionable Recommendations + +### 🔴 CRITICAL - Implement Immediately + +#### 1. **Block Overbought LONGs (RSI >70)** +```typescript +if (direction === 'long' && rsi > 70) { + score -= 60 // Severe penalty + blockReason = 'OVERBOUGHT_LONG_RSI' +} +``` +**Impact:** Would have blocked -$17.09 worst loss +**Confidence:** HIGH (clear pattern) + +#### 2. **Favor SHORT Entries in Current Market** +- SHORTs have 2× win rate vs LONGs (42.9% vs 20%) +- SHORTs have 15× better avg P&L ($6.62 vs -$0.44) +- Consider raising SHORT threshold from 95 to 85 +- Consider raising LONG threshold from 90 to 95 + +```typescript +// Current thresholds +MIN_SIGNAL_QUALITY_SCORE_LONG=90 +MIN_SIGNAL_QUALITY_SCORE_SHORT=95 + +// Recommended adjustment +MIN_SIGNAL_QUALITY_SCORE_LONG=95 // Stricter for underperforming LONGs +MIN_SIGNAL_QUALITY_SCORE_SHORT=85 // More permissive for winning SHORTs +``` + +#### 3. **Fix Exit Reason Logic for Partial Closes** +- 6 trades marked SL but have positive P&L +- Likely TP1 → runner → SL sequence +- Database should track: "TP1_PARTIAL" for first exit, then "RUNNER_SL" for final +- **Code location:** `lib/trading/position-manager.ts` exit reason detection + +#### 4. **Investigate GHOST_CLEANUP Bug** +- Trade 12-16 07:52 was never monitored +- Related to Bug #77 "Position Manager Never Monitors" +- SL Verification System deployed Dec 16 - verify it's working +- **Priority:** HIGH - prevents capital at risk + +### ⚠️ HIGH - Implement After More Data + +#### 5. **RSI 60-70 Preference for LONGs** +- 2/2 trades in this zone won (+$26.97) +- 0/2 trades in 50-60 zone won (-$12.10) +- Add bonus points for RSI 60-70 LONGs + +```typescript +if (direction === 'long' && rsi >= 60 && rsi <= 70) { + score += 10 // Sweet spot bonus +} +``` +**Confidence:** MEDIUM (only 2 samples) + +#### 6. **SHORT RSI 30-40 Confirmation** +- 6/6 trades in this zone, 3 winners (+$46.27) +- 50% WR but positive P&L +- Appears to be ideal SHORT entry zone +- **Action:** Collect 5+ more samples to confirm + +### 🟡 MEDIUM - Research Questions + +#### 7. **Quality Score Calibration for SHORTs** +- Quality <75 SHORTs have 66.7% WR +- Quality 60 SHORTs winning despite LOW_QUALITY flag +- Hypothesis: ADX/ATR/volume weights different for SHORT vs LONG +- **Action:** Analyze quality components separately by direction + +#### 8. **ADX Threshold Validation** +- Weak ADX (<20) has 25% WR but positive P&L +- All weak ADX SHORTs won in recent trades +- May need direction-specific ADX thresholds +- **Action:** Collect 10+ more trades per ADX tier + +#### 9. **Price Position Paradox (LONGs)** +- LONGs at top (80-100%) = 50% WR, +$19.29 +- LONGs at middle (50-80%) = 0% WR, -$19.48 +- Counterintuitive - need more data +- **Action:** Collect 5+ more LONGs per position zone + +--- + +## Statistical Validity Assessment + +### Sample Sizes by Category + +| Category | Current | Minimum | Status | +|----------|---------|---------|--------| +| Total Trades | 11 | 20 | ❌ TOO SMALL | +| LONG Trades | 5 | 10 | ❌ TOO SMALL | +| SHORT Trades | 7 | 10 | ⚠️ BORDERLINE | +| Quality Tiers | 1-3 per | 5 per | ❌ TOO SMALL | +| RSI Zones | 1-6 per | 5 per | ⚠️ MIXED | +| ADX Tiers | 1-6 per | 5 per | ⚠️ MIXED | + +### Confidence Levels by Finding + +| Finding | Confidence | Reason | +|---------|-----------|---------| +| SHORTs outperform LONGs | HIGH | 7 vs 5 samples, clear trend | +| RSI >70 LONG disaster | HIGH | Worst single trade, clear overbought | +| SHORT RSI 30-40 sweet spot | MEDIUM | 6 samples, 50% WR | +| LONG RSI 60-70 sweet spot | LOW | Only 2 samples | +| Quality <75 paradox | LOW | Only 3 samples, all SHORTs | +| SL exits profitable | HIGH | 6 samples, clear pattern | + +--- + +## Next Steps + +### Phase 1: Immediate Changes (Today) +1. ✅ Add RSI >70 penalty for LONGs (-60 points) +2. ✅ Consider adjusting quality thresholds (LONG 90→95, SHORT 95→85) +3. ✅ Verify GHOST_CLEANUP bug fix (SL Verification System) +4. ✅ Review exit reason logic for partial closes + +### Phase 2: Data Collection (Next 7-10 Days) +1. Target: 10+ more trades (reach 20+ total) +2. Verify SHORT RSI 30-40 pattern holds +3. Validate LONG RSI 60-70 pattern with more samples +4. Check if quality <75 SHORT wins continue + +### Phase 3: Analysis & Optimization (After 20+ Trades) +1. Recalculate quality score components by direction +2. Optimize ADX thresholds separately for LONG/SHORT +3. Validate price position patterns with larger sample +4. Review volume impact correlation + +--- + +## Technical Notes + +**Database:** PostgreSQL `Trade` table +**Query Date:** December 16, 2025 +**Indicator Version:** v11 (all filters functional) +**Date Range:** December 10-16, 2025 (6 days) +**Excluded:** isTestTrade=true, GHOST_CLEANUP for most analyses + +**Known Issues:** +- Bug #77: GHOST_CLEANUP trade indicates Position Manager monitoring failure +- Exit reason anomaly: SL exits with positive P&L (partial close scenario) +- Quality score paradox: Low quality SHORTs winning + +**Related Documents:** +- `docs/V11_ANALYSIS_DEC15_2025.md` (initial 7-trade analysis) +- `docs/V11_INDICATOR_GUIDE.md` (indicator documentation) +- `docs/COMMON_PITFALLS.md` (Bug #77 Position Manager Never Monitors) +- `.github/copilot-instructions.md` (Bug #76 Silent SL Placement Failure) + +--- + +## Appendix: Raw Trade Data + +### All v11 Trades (Sorted by Entry Time DESC) + +| Entry Time | Dir | Q | ADX | RSI | Pos% | Vol | Exit | P&L | Hold | +|------------|-----|---|-----|-----|------|-----|------|-----|------| +| 12-16 07:52 | SHORT | 95 | 20.8 | 34.9 | - | - | GHOST | $0.00 | - | +| 12-16 03:34 | SHORT | 60 | 15.8 | 39.1 | - | - | SL | -$4.18 | 28m | +| 12-16 01:30 | SHORT | 80 | 26.0 | 36.5 | - | - | SL | +$33.01 | 89m | +| 12-15 16:21 | SHORT | 60 | 15.9 | 32.3 | 15.6 | 2.55 | TP2 | +$1.23 | 134m | +| 12-15 15:02 | SHORT | 60 | 15.9 | 32.3 | 15.6 | 2.55 | TP2 | +$15.83 | 78m | +| 12-15 02:19 | LONG | 75 | 23.4 | 73.5 | 94.4 | 1.41 | SL | -$17.09 | 44m | +| 12-14 10:37 | SHORT | 105 | 34.2 | 38.8 | - | - | TP1 | +$0.38 | 23m | +| 12-12 13:07 | LONG | 75 | 17.0 | 55.0 | 54.2 | 0.95 | SL | -$7.38 | 105m | +| 12-11 19:12 | LONG | 85 | 15.4 | 63.3 | 80.3 | 1.31 | TP1 | +$3.34 | 48m | +| 12-10 22:37 | SHORT | 85 | 22.4 | 44.0 | - | - | manual | +$0.03 | <1m | +| 12-10 19:35 | LONG | 100 | 24.8 | 63.0 | 93.8 | 1.30 | SL | +$23.63 | 65m | +| 12-10 04:55 | LONG | 95 | 23.9 | 59.5 | 63.5 | 1.42 | SL | -$4.72 | 35m | + +**Total: 11 trades (excluding 1 ghost), +$44.06 P&L, 36.4% win rate** + +--- + +*Analysis complete. Waiting for 10+ more trades to reach statistical significance.*