← Back to Reviews
20260114_135003_vol_control_sol_atr_regime.md
# AI Review: vol_control_sol_atr_regime (1-Minute)
**Date:** Wed Jan 14 13:50:03 CET 2026
**Strategy File:** /root/trade_1m/strategies/vol_control_sol_atr_regime.py
---
```json
{
"score": 45,
"flags": ["overfitting", "cost_sensitive", "inconsistent", "concentration"],
"review": "## Vol Control Strategy Assessment\n\n### Core Concept\nThe strategy attempts to fade small price moves during low volatility regimes, using ATR z-score as a volatility filter. The theoretical edge is sound: mean reversion should be more reliable when volatility is calm.\n\n### Critical Issues\n\n#### 1. **Severe Cost Sensitivity (Fatal)**\n- Strategy generates 1,529 total trades across the test period\n- At 0.1% round-trip slippage (realistic for 1m SOL): ~15.3% total cost\n- Reported total return: 5.05%\n- **Net after costs: -10.25%** - strategy is unviable\n- Even at unrealistic 0.05% slippage: still barely breakeven\n- The 0.15% take profit target is too small relative to execution costs at 1-minute scale\n\n#### 2. **Extreme Parameter Specificity**\n- `cooldown_bars: 1440` (exactly 24 hours) - suspiciously precise, not round\n- `vol_entry_max: -0.5` (negative z-score entry) - highly specific threshold\n- Multiple narrow range filters: 0.10-0.40% price change window is very tight\n- `price_change_period: 5` - oddly specific lookback\n- These parameters appear optimized to historical noise rather than capturing a robust edge\n\n#### 3. **Inconsistent Performance**\n- Monthly returns: [-1.3%, 4.0%, 0.1%, -0.5%, 4.1%, -1.3%]\n- Only 3/6 periods positive (including zero period)\n- Two winning months (2021, 2024) contribute 8.1% out of 5.05% total\n- Max month contribution: ~81% from best period\n- Strategy fails in most market regimes, profits concentrated in specific conditions\n\n#### 4. **Overfit Logic Cascade**\nThe strategy stacks multiple narrow filters:\n- ATR z-score must be < -0.5 (below average vol)\n- Price change must be 0.10-0.40% (narrow range)\n- Volatility spike exits at z > 1.0\n- Hard disable at z > 2.0\n\nThis creates a very specific \"pocket\" of conditions that likely fit historical data rather than a fundamental microstructure edge.\n\n#### 5. **1-Minute Execution Reality**\n- With 1440-bar cooldown, strategy trades ~1x per day despite being 1-minute resolution\n- The 5-bar price change calculation uses same-timeframe bars without execution delay\n- At 1-minute scale, market impact and adverse selection are severe\n- Take profit at 0.15% is only 1.5x realistic slippage - insufficient edge buffer\n\n### Positive Elements\n- Volatility filtering is conceptually sound for mean reversion\n- Stop loss (0.20%) and take profit (0.15%) are defined\n- Time-based exit (10 bars) prevents runaway losses\n- No obvious lookahead bias in the code structure\n\n### Why This Fails\nThe strategy confuses **curve-fitting** with **edge discovery**. The narrow parameter windows (negative vol entry, 0.10-0.40% price bands, 1440-bar cooldown) create a highly specific profile that worked in 2 periods but fails in 4 others. The edge is too small to survive realistic execution costs at 1-minute frequency.\n\n**A true vol-control strategy should:**\n- Work consistently across regimes (not just 50% of periods)\n- Generate positive returns even after 0.1% round-trip costs\n- Use rounder, more intuitive parameters that capture structural inefficiencies\n\n### Verdict\nThis appears to be a lucky fit to specific historical conditions rather than a robust microstructure edge. The cost sensitivity alone is disqualifying, and the inconsistency suggests the parameters are tuned to noise.",
"rule_suggestion": "Vol-control strategies at 1-minute resolution must demonstrate positive returns after 0.1% round-trip slippage costs and achieve profitability in at least 60% of monthly test periods. Cooldown periods should use round numbers (60, 120, 300 bars), and volatility thresholds should be intuitive (0, 0.5, 1.0, 1.5 z-scores). Reject strategies where the top 2 periods contribute >70% of total returns."
}
```