← Back to Reviews
20260115_004044_breakout_fade_sol_range.md
# AI Review: breakout_fade_sol_range (1-Minute)
**Date:** Thu Jan 15 00:40:44 CET 2026
**Strategy File:** /root/trade_1m/strategies_rejected/breakout_fade_sol_range.py
---
```json
{
"score": 35,
"flags": [
"overfitting",
"cost_sensitive",
"execution",
"inconsistent"
],
"review": "## Critical Issues\n\n### 1. Severe Historical Overfitting (Major Red Flag)\n\nThe validation performance collapse is catastrophic:\n- **Training**: +8.07% return, 73% win rate, 4.25 Sharpe, 70 trades\n- **Validation**: -0.31% return, -0.35 Sharpe, only 9 trades\n- **Complete breakdown**: Strategy earned nothing out-of-sample despite 5/5 profitable training months\n\nThis is textbook overfitting. The strategy was curve-fitted to training data and has zero predictive power on unseen data. The 9 validation trades vs 70 training trades suggests the conditions are highly specific to the training period.\n\n### 2. Insufficient Trade Sample (Statistical Invalidity)\n\nWith only **9 validation trades**, this strategy fails basic statistical rigor:\n- Below the 15-trade minimum for role validation\n- Cannot establish reliable win rate or edge characteristics\n- Random noise dominates signal at this sample size\n- The training period's 70 trades over 5 months (14/month) already shows marginal activity\n\n### 3. Complex Multi-Factor Logic (Overfitting Enabler)\n\nThe entry requirements stack **5+ conditions** that create a highly specific fingerprint:\n1. 30-bar range calculation\n2. Exact 0.10% breakout threshold beyond range\n3. Rejection wick pattern (close back inside)\n4. 2x volume spike on rejection bar specifically\n5. ATR z-score < 1.5 filter\n6. 1-bar confirmation that price stays reversed\n\nEach additional filter exponentially reduces trade frequency while increasing the risk of overfitting to historical coincidences. The validation period proves these conditions don't generalize.\n\n### 4. Cost Sensitivity Still Present\n\nEven in the training period (before it collapsed):\n- Avg trade: 0.120% → After slippage: 0.020% margin per trade\n- That's only 2 basis points of cushion before going negative\n- Requires 86% execution accuracy just to break even\n- Validation's -0.31% proves costs dominate when edge disappears\n\n### 5. False Breakout Logic Flaws at 1-Minute Scale\n\n**Volume spike as signal quality filter is problematic**:\n- Volume at 1m is extremely noisy and exchange-dependent\n- A 2x volume spike could be one large market order, not \"trapped retail traders\"\n- The narrative of \"retail chasing breakouts\" doesn't match 1m microstructure reality\n- Institutional algos dominate at this timeframe, not emotional retail\n\n**Range breakout definition issues**:\n- 30-bar range (30 minutes) is arbitrary\n- Why not 20 bars? 40 bars? This exact value likely fit historical noise\n- The 0.10% breakout threshold is suspiciously precise\n- Requiring the breakout to fail within 1 bar is extremely specific timing\n\n### 6. Execution Realism Concerns\n\n**Same-bar dynamics**:\n- Strategy detects rejection on bar N-1 (needs high/low/close/volume)\n- Then confirms on bar N that close is still reversed\n- But by the time bar N closes, you're already late to the fade\n- Real execution would be bar N+1 open, adding another lag bar\n\n**Mid-range exit timing**:\n- Checking if `bar.close >= mid_range` uses the close price\n- In reality, you'd exit during the bar, not at the close\n- This creates optimistic exit timing in backtests\n\n### 7. Parameter Fragility\n\nDespite claims of \"round parameters only\", the strategy has:\n- 0.10% breakout threshold (why not 0.15% or 0.08%?)\n- 2.0x volume spike (why not 1.8x or 2.5x?)\n- 1.5 max ATR z-score (why not 1.0 or 2.0?)\n- 30-bar range period (why not 25 or 35?)\n\nThese look optimized to historical data. The validation collapse confirms they don't generalize.\n\n## Why This Failed\n\nThe core issue: **stacking multiple specific conditions to capture historical patterns that won't repeat**.\n\nTrue 1-minute edges are simple and robust:\n- VWAP reversion with minimal filters\n- RSI extremes at round levels (95/5)\n- Single-condition vol spikes\n\nThis strategy requires a precise sequence: range formation → specific breakout size → volume confirmation → reversal within 1 bar → continued reversal on next bar. That's not an edge, it's a historical fingerprint.\n\n## Cost vs Edge Reality\n\nThe training period showed +8.07% gross → +1.07% after slippage = **87% cost burden**.\n\nWhen validation performance dropped to -0.31%, it proved the edge was never robust enough to survive real-world friction. The strategy was always cost-sensitive, and the training results were luck.\n\n## Conclusion\n\nThis strategy demonstrates **severe overfitting masked by impressive training metrics**. The validation failure is conclusive evidence that the complex multi-factor logic captured noise, not signal. The 9-trade validation sample is statistically meaningless, and the -0.35 Sharpe confirms negative expectancy.\n\n**Not viable for live trading.** Recommend returning to simpler single-condition strategies with broader parameter ranges.",
"rule_suggestion": "Reject strategies with validation trade counts below 25 (insufficient statistical sample). Require validation Sharpe > 0.0 minimum for any consideration. Flag strategies where validation trade frequency drops >60% vs training as likely overfit to regime-specific conditions."
}
```