Lesson Learned: Strategy Thresholds Too Tight - Positions Closed Before Trends Developed
Lesson Learned: Strategy Thresholds Too Tight - Positions Closed Before Trends Developed
ID: LL_051 Date: 2025-12-17 Severity: CRITICAL Category: Trading Tags: backtest, sharpe, take-profit, stop-loss, position-sizing, options
Incident Summary
All 13 backtest scenarios failed with negative Sharpe ratios (-7 to -2086). Investigation revealed 5% take-profit and stop-loss thresholds were too tight, causing positions to close on normal daily swings before capturing actual trends.
Root Cause
Six critical flaws identified:
- 5% take-profit too tight - SPY moves 3-5% weekly; positions closed on first rally, missed 10-20% trends
- 5% stop-loss too tight - Hit by normal daily volatility noise
- 14-day max hold too short - Trending positions killed on day 15 before completing
- No volatility filter - Traded same size regardless of VIX level
- Momentum entry buys at tops - Highest momentum = often local peak
- Fixed dollar sizing ignores risk - Same $900/day in calm and volatile markets
Options comparison revealed:
- Options showed 75% win rate but losses were 7x larger than wins
- Net P/L was actually -$29.96 (NEGATIVE)
- “High win rate” is misleading without considering loss magnitude
Impact
- 0/13 backtest scenarios pass
- All Sharpe ratios negative (-7 to -2086)
- Win rate appears acceptable (34-62%) but misleading
- Strategy returns 0.1% vs 4% risk-free rate = mathematically impossible positive Sharpe
Prevention Measures
Implemented Dec 17, 2025:
TAKE_PROFIT_PCT: 5% → 15% (let winners run)STOP_LOSS_PCT: 5% → 8% (wider to avoid noise)MAX_HOLDING_DAYS: 14 → 30 (allow trends to develop)ATR_MULTIPLIER: 2.0 → 2.5 (adaptive to volatility)- Added
VIX_HIGH_THRESHOLD = 35(skip trading in panic) - Added
VIX_POSITION_SCALE = True(size inversely to VIX)
Files changed:
src/strategies/core_strategy.pysrc/risk/position_manager.pysrc/orchestrator/main.py
Detection Method
Deep research using parallel agents to:
- Analyze backtest failure patterns
- Compare options vs equities performance
- Identify strategy-to-metric mismatch
Related Lessons
- LL_021: Backtest thresholds too strict for R&D phase
- LL_040: Catching falling knives (pyramid buying destroyed 96%)
- LL_033: Negative momentum buying
Key Insight
High win rate ≠ profitable strategy. Options showed 75% wins but 7x larger losses = net negative. The correct metrics are:
- Expected value per trade = (win_rate × avg_win) - (loss_rate × avg_loss)
- Risk-adjusted return (Sharpe/Sortino) must be positive
- Position sizing must scale with volatility