← Back to Reviews

20260115_091414_eth_ema_alignment_balanced.md

# AI Review: eth_ema_alignment_balanced **Date:** Thu Jan 15 09:14:14 CET 2026 **Strategy File:** /root/trade_rules/strategies_rejected/eth_ema_alignment_balanced.py --- ```json { "score": 35, "flags": ["overfitting", "inconsistent", "execution"], "review": "## Critical Issues\n\n### 1. Severe Regime Inconsistency (Major Red Flag)\n\nThe year-by-year results reveal **extreme inconsistency** across market regimes:\n\n- **Bull years (2020, 2021, 2024):** Strong positive returns (+12% to +20%)\n- **Bear/chop years (2022, 2023):** Severe losses (-14% to -20%)\n- **Recent period (2025):** Near breakeven\n\nThis is a **textbook momentum trap**: the strategy works beautifully in sustained uptrends but collapses when the regime shifts. A momentum role strategy should handle bear markets poorly but not catastrophically (-15% threshold exists for a reason). The -20% drawdown in bear conditions exceeds acceptable risk.\n\n**Validation period failure** (Sharpe -4.63) confirms this is not a robust system—it likely encountered a regime it couldn't handle.\n\n### 2. Overfitting Through Condition Stacking\n\nThe strategy uses **7 distinct entry conditions**:\n1. Score must equal exactly 4 (rigid threshold)\n2. Previous score must be <4 (transition detection)\n3. EMA50 slope >0.5% (specific threshold)\n4. Slope measured over exactly 20 bars\n5. Price extension <8% above EMA50 (specific threshold)\n6. Requires 4-way EMA alignment (20/50/100/200)\n7. Implicit warmup requirements\n\nThis exceeds the **5-6 condition limit** specified in the rules. More critically, the thresholds (0.5%, 8%, exactly 20 bars, score transition from 3→4) appear curve-fitted to historical data rather than derived from market principles.\n\n### 3. Execution Realism Issues\n\n**Fresh alignment detection is problematic:**\n```python\nfresh_alignment = score == 4 and prev_score < 4\n```\n\nThis requires detecting the exact bar where alignment transitions. In live markets:\n- EMAs recalculate continuously within bars\n- 4h timeframe means you're trying to catch a specific 4-hour window\n- Slippage during breakouts can be severe\n- The strategy doesn't account for this timing precision requirement\n\nThe 8% take-profit on a 4h momentum strategy is reasonable, but the entry timing precision creates unrealistic fill assumptions.\n\n### 4. Magic Number Concerns\n\nWhile the strategy uses round parameters (4, 8, 20, 50, 100, 200), the **thresholds appear optimized**:\n- Why 0.5% slope vs 0.4% or 0.6%?\n- Why 8% extension vs 7% or 10%?\n- Why score transition from <4 to 4, not from ≤2 to 4?\n\nThese feel curve-fitted to the training data rather than universal momentum principles.\n\n## Positive Elements\n\n- **No lookahead bias:** Uses only past data, trades on next bar\n- **Relative indicators:** No absolute price levels or dates\n- **Risk management:** Has stop-loss and take-profit\n- **Code quality:** Clean, readable, well-documented\n- **Trade count:** Sufficient for statistical validity (24 total trades)\n\n## Why This Fails\n\nA true momentum strategy should:\n1. **Adapt to regime changes** (this one breaks in bear markets)\n2. **Use simple, universal rules** (this one stacks 7 specific conditions)\n3. **Work across decades** (this one works in 3/6 years)\n\nThe core issue: **the strategy was optimized for specific historical patterns rather than fundamental momentum principles**. When those patterns didn't repeat in validation, it collapsed.\n\n## Verdict\n\n**Score: 35/100 - Poor**\n\nThe strategy is fundamentally unsound for production use. While it shows strong returns in favorable regimes, it:\n- Fails catastrophically in unfavorable conditions\n- Uses too many specific conditions (complexity breeds overfitting)\n- Relies on precise entry timing that may not be executable\n- Shows no evidence of robustness across diverse market conditions\n\nThe validation failure (Sharpe -4.63) is the market telling you this doesn't generalize.", "rule_suggestion": "**Max Conditions Rule:** Limit strategies to 4 entry conditions maximum (reduced from 5-6). Each additional condition increases overfitting risk exponentially. Count transition detection, slope thresholds, and extension filters as separate conditions. Simpler strategies are more robust." } ```