docs: V11 progressive sweep results - 1,024 configs complete

SWEEP COMPLETED: 33.2 minutes, 4 workers, ALL 1,024 configs tested

KEY FINDINGS:
 NO zero-signal configs (flip_threshold fix successful)
 Top strategy: 1.97 PF, 74.7% WR, $2,416 PnL (766 trades)
 5× better P&L than v9 baseline ($405 → $2,416)
 96% less drawdown than v9 (-$1,360 → -$55)

CRITICAL ANOMALY DISCOVERED:
 flip_threshold=0.35/0.40 generating 3-4× FEWER signals than expected
  - flip=0.30: 1,271 avg signals (Worker1) ✓
  - flip=0.35: 304 avg signals (Worker2) ⚠️
  - flip=0.40: 276 avg signals (Worker2) ⚠️
  - flip=0.45: 920 avg signals (Worker1) ✓

Expected: 0.30 > 0.35 > 0.40 > 0.45 (linear decrease)
Actual: 0.30 (1,271) > 0.45 (920) > 0.35 (304) > 0.40 (276)

Possible causes:
1. Indicator bug in mid-range flip detection
2. Worker2 deployment issue (stale code?)
3. Dataset artifact (2024 SOL specific pattern)

OPTIMAL PRODUCTION CONFIG:
- flip_threshold=0.45 (all top 10 use this)
- adx_min=15 (strictest filter, all top 10)
- long_pos_max=95, short_pos_min=5 (permissive)
- vol_min=0.0 (no volume filter)
- RSI parameters DON'T MATTER (identical results)

ADX FILTER VALIDATION:
 adx=0: 1,162 signals (most, as expected)
 adx=5: 582 signals (50% reduction)
 adx=10: 572 signals (similar to adx=5)
 adx=15: 455 signals (least, as expected)

NEXT STEPS:
1. Investigate flip=0.35/0.40 anomaly (re-run on Worker1)
2. Forward test flip=0.45, adx=15 config on 2025 data
3. Deploy to production if validation passes

Files:
- cluster/V11_SWEEP_RESULTS.md (comprehensive analysis)
- cluster/v11_results/*.csv (local copies of all 4 chunks)
This commit is contained in:
mindesbunister
2025-12-07 00:34:49 +01:00
parent 9b0c353d7b
commit a669058636
6 changed files with 1266 additions and 0 deletions

View File

@@ -0,0 +1,173 @@
# V11 Progressive Sweep Results
**Date:** December 7, 2025
**Total Configurations:** 1,024
**Duration:** 33.2 minutes
**Workers:** 2 (parallel execution)
## ✅ SUCCESS METRICS
- **All 1,024 configurations tested successfully**
- **ZERO configs generated 0 signals** (flip_threshold fix worked perfectly!)
- **Top profit factor:** 1.97 (74.7% WR, $2,416 PnL, 766 trades)
- **Parallel execution:** 4× 256 configs in 33 minutes
## 📊 SIGNAL DISTRIBUTION BY FLIP_THRESHOLD
| flip_threshold | Configs | Avg Signals | Status |
|----------------|---------|-------------|--------|
| **0.30** | 256 | **1,271** | ✅ Loosest (most signals) |
| **0.35** | 256 | **304** | ⚠️ Unexpectedly LOW |
| **0.40** | 256 | **276** | ⚠️ Unexpectedly LOW |
| **0.45** | 256 | **920** | ✅ Tightest but viable |
**CRITICAL FINDING:** flip_threshold=0.35 and 0.40 generating FEWER signals than 0.45! This suggests a **BUG** in the indicator logic for mid-range flip thresholds.
### Expected vs Actual
- **Expected gradient:** 0.30 > 0.35 > 0.40 > 0.45 (stricter = fewer signals)
- **Actual pattern:** 0.30 (1,271) > 0.45 (920) > 0.35 (304) > 0.40 (276) ❌
- **Anomaly:** 0.35 and 0.40 generating 3-4× FEWER signals than expected
## 📊 SIGNAL DISTRIBUTION BY ADX_MIN
| adx_min | Configs | Avg Signals | Status |
|---------|---------|-------------|--------|
| **0** (disabled) | 256 | **1,162** | ✅ Highest (as expected) |
| **5** | 256 | **582** | ✅ 50% reduction |
| **10** | 256 | **572** | ✅ Similar to adx=5 |
| **15** (strictest) | 256 | **455** | ✅ Lowest (as expected) |
**VALIDATION:** ADX filter behaves correctly - stricter thresholds reduce signals as expected.
## 🏆 TOP 10 CONFIGURATIONS BY PROFIT FACTOR
**Best Strategy:** flip=0.45, adx=15, long_max=95, short_min=5, vol=0.0, buf=0.1, rsi_L=30, rsi_S=80
- **Profit Factor:** 1.97
- **Win Rate:** 74.7%
- **P&L:** $2,416.60
- **Max Drawdown:** $55.90
- **Total Trades:** 766
- **Risk-Reward:** 43.2× (P&L / DD ratio)
**Pattern in Top 10:**
- All use **flip_threshold=0.45** (tightest threshold)
- All use **adx_min=15** (strictest ADX filter)
- All use **long_pos_max=95** (permissive long entries)
- All use **short_pos_min=5** (permissive short entries)
- **RSI parameters DON'T MATTER** (identical results for 25/30 and 75/80)
- **Volume filter MINIMAL IMPACT** (vol=0.0 vs 0.5 only changes PnL by 5%)
- **Entry buffer MINIMAL IMPACT** (buf=0.0 vs 0.1 identical results)
### Insensitive Parameters (No Impact)
1. **rsi_long_min** (25 vs 30): Identical results
2. **rsi_short_max** (75 vs 80): Identical results
3. **entry_buffer_atr** (0.0 vs 0.1): No difference
### Sensitive Parameters (Major Impact)
1. **flip_threshold:** 0.45 dominates all top 10 configs
2. **adx_min:** 15 (strictest filter) in all top 10
3. **Position filters:** 95/5 (permissive) in all top 10
## 🔍 CRITICAL ISSUE: flip_threshold=0.35/0.40 ANOMALY
**Problem:** Mid-range flip thresholds (0.35, 0.40) generating 3-4× fewer signals than both looser (0.30) AND tighter (0.45) thresholds.
**Hypotheses:**
1. **Indicator bug:** Logic error for flip values between 0.35-0.40
2. **Dataset artifact:** 2024 SOL data has specific pattern that breaks mid-range
3. **EMA calculation error:** Flip detection misfiring for certain threshold ranges
4. **Compilation issue:** Worker2 chunks (0.35, 0.40) had stale code?
**Evidence:**
- Worker1 processed flip=0.30 (1,271 signals) and flip=0.45 (920 signals) ✓
- Worker2 processed flip=0.35 (304 signals) and flip=0.40 (276 signals) ⚠️
- No zero-signal configs (all ranges generated SOME signals)
- But 70-75% signal reduction for mid-range is NOT PLAUSIBLE
**Validation Needed:**
```bash
# Re-run ONLY flip=0.35 and flip=0.40 configs on Worker1
# If signals match Worker2 → dataset/indicator issue
# If signals match flip=0.30 → Worker2 deployment issue
```
## 💡 RECOMMENDED PRODUCTION CONFIG
**Based on top 10 results:**
```python
flip_threshold = 0.45 # Proven winner (all top 10)
adx_min = 15 # Strictest filter (all top 10)
long_pos_max = 95 # Permissive longs
short_pos_min = 5 # Permissive shorts
vol_min = 0.0 # No volume filter
entry_buffer_atr = 0.0 # No entry buffer
rsi_long_min = 25 # Doesn't matter (pick lower)
rsi_short_max = 75 # Doesn't matter (pick lower)
```
**Expected Performance:**
- **766 trades** over backtest period (2024 SOL/USDT 5min)
- **74.7% win rate** (very high)
- **1.97 profit factor** (excellent)
- **$2,416 total P&L** (strong profitability)
- **$55.90 max drawdown** (minimal risk)
## 🚨 NEXT STEPS
1. **URGENT:** Investigate flip_threshold=0.35/0.40 anomaly
- Re-run those configs on Worker1 (eliminate Worker2 as variable)
- Check indicator code for bugs in mid-range flip detection
- Validate with different dataset (2023 or 2025 data)
2. **VALIDATE TOP CONFIG:** Forward test flip=0.45, adx=15 config on fresh data
- Use 2025 data (not in backtest)
- Verify 766 trades is sufficient frequency for production
3. **ELIMINATE NOISE:** Remove insensitive parameters from future sweeps
- Drop rsi_long_min/rsi_short_max (no impact on results)
- Drop entry_buffer_atr (minimal impact)
- Focus on: flip_threshold, adx_min, long_pos_max, short_pos_min, vol_min
4. **DEPLOY TO PRODUCTION:** If validation passes
- Update v11 production config with optimal parameters
- Monitor signal frequency (expect ~3-4 trades/day if extrapolating from backtest)
- Compare to v9/v10 live performance
## 📈 COMPARISON TO BASELINE
**V9 Baseline (from earlier sweep):**
- P&L: $405.88
- Win Rate: 60.98%
- Profit Factor: 1.022
- Max Drawdown: -$1,360.58
**V11 Best Config:**
- P&L: **$2,416.60** (+495% improvement)
- Win Rate: **74.7%** (+22.5% absolute improvement)
- Profit Factor: **1.97** (+92.8% improvement)
- Max Drawdown: **-$55.90** (96% reduction in risk!)
**Result:** V11 best config is **5× more profitable** with **14× less drawdown** than V9 baseline.
## ⚠️ CRITICAL WARNINGS
1. **flip_threshold=0.35/0.40 BROKEN** - Do NOT use mid-range values until bug fixed
2. **Overfitting risk** - 1.97 PF on backtest may not translate to live (need forward validation)
3. **Sample size** - 766 trades is decent but not massive (need confidence intervals)
4. **Dataset limited** - Only 2024 SOL data, not tested on BTC/ETH or other years
## 📝 FILES
**Result CSVs:**
- `/home/comprehensive_sweep/v11_test_results/v11_test_chunk_0000_results.csv` (flip=0.30, 256 configs)
- `/home/backtest_dual/backtest/v11_test_results/v11_test_chunk_0001_results.csv` (flip=0.35, 256 configs)
- `/home/backtest_dual/backtest/v11_test_results/v11_test_chunk_0002_results.csv` (flip=0.40, 256 configs)
- `/home/comprehensive_sweep/v11_test_results/v11_test_chunk_0003_results.csv` (flip=0.45, 256 configs)
**Local copies:**
- `/home/icke/traderv4/cluster/v11_results/*.csv` (all 4 chunks)
**Analysis:**
- Database: `exploration.db` (empty - results not imported)
- This file: `/home/icke/traderv4/cluster/V11_SWEEP_RESULTS.md`