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)
6.9 KiB
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)
- rsi_long_min (25 vs 30): Identical results
- rsi_short_max (75 vs 80): Identical results
- entry_buffer_atr (0.0 vs 0.1): No difference
Sensitive Parameters (Major Impact)
- flip_threshold: 0.45 dominates all top 10 configs
- adx_min: 15 (strictest filter) in all top 10
- 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:
- Indicator bug: Logic error for flip values between 0.35-0.40
- Dataset artifact: 2024 SOL data has specific pattern that breaks mid-range
- EMA calculation error: Flip detection misfiring for certain threshold ranges
- 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:
# 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:
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
-
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)
-
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
-
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
-
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
- flip_threshold=0.35/0.40 BROKEN - Do NOT use mid-range values until bug fixed
- Overfitting risk - 1.97 PF on backtest may not translate to live (need forward validation)
- Sample size - 766 trades is decent but not massive (need confidence intervals)
- 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