15-Minute Divergence on NASDAQ 100 — What a Full Year of Intraday Data Shows
A 1-year backtest of a multi-indicator divergence strategy on 15-minute IBKR bars across NASDAQ 100 stocks — 1,116 trades, a Sharpe of 2.99, and the one mechanical flaw that nearly buried the edge.
From Daily to Intraday — Why It Matters
The daily divergence backtest showed a profit factor of 3.34× and a Sharpe of 1.38 over five years on daily bars. A natural question follows: does the same divergence logic — RSI, Stochastic, MACD pivot divergence with an ATR-based exit — translate to intraday timeframes?
The short answer is yes, with a critical caveat. Intraday markets amplify both what works and what is broken. This post documents a full-year backtest on 15-minute bars: what the numbers reveal, where the strategy breaks down, and what institutional quant research suggests about fixing it.
The System Being Tested
The intraday variant of the divergence strategy shares its core logic with the daily version but has been rebuilt specifically for 15-minute bars:
Signal detection: Regular divergence using swing pivot detection on 15-minute bars. All three indicators — RSI, Stochastic, and MACD — must independently confirm divergence at the same pivot bar. A bullish divergence requires price to make a lower low while all three oscillators show a higher low. Single-indicator signals are excluded.
Trend filter: Bearish divergence signals are suppressed when the EMA50 is above the EMA200 on the 15-minute chart (an established intraday uptrend). On 15-minute bars, EMA50 represents approximately 12 hours of price history — an intraday momentum filter rather than the macro trend filter the same values represent on daily bars.
Intraday guards: No new entries after 15:30 ET. All positions force-closed by 15:45 ET. Signals generated during the previous session’s pivots are excluded (a pivot from 15:55 yesterday is never valid for today’s 09:31 bar). Stocks with earnings within ±3 days are skipped.
Entry and exit: Stop placed at the low (BUY) or high (SELL) of the divergence pivot candle minus/plus $0.01. Target at 3× ATR14 from entry. ATR trailing stop activates at +2× ATR, locking in +1× ATR of profit.
Capital and position sizing:
Key Results — 1,116 Trades Over One Year
The Sharpe ratio of 2.99 is the headline number. A Sharpe above 2.0 on a systematic intraday strategy is institutional-grade territory. Renaissance Technologies’ Medallion fund reportedly targets Sharpe ratios of 3–5. For context, the S&P 500 index itself produces a long-run Sharpe of approximately 0.5–0.6.
But the profit factor of 1.42× tells a different story — it is thin. The strategy is profitable, but not nearly as robust as the Sharpe alone would suggest. Understanding why requires looking under the surface.
The Exit-Type Breakdown
The stop-loss bucket destroys 219% of gross profit. Without it, the strategy would generate over $110,000 from winning exits. That is not a signal quality problem — it is a stop calibration problem, and the source is a single mechanical flaw.
The Core Problem: Stops Inside the Noise Band
461 of 1,116 trades (41.3%) were stopped out on the very first bar after entry.
That is not a bad setup rate. That is the stop being narrower than the natural noise of a 15-minute bar.
The structural stop — placed at the pivot candle’s low or high minus $0.01 — had a median distance of $0.35 from the entry price. The typical 15-minute ATR14 for large-cap NASDAQ stocks (TSLA, AVGO, AMD) is $0.55 to $1.20. This means the stop was regularly set inside the distance a stock normally moves within a single 15-minute bar, with no directional information at all.
This is what quants call a noise stop — it does not protect against genuine adverse moves, it simply exits at the worst moment of a normal fluctuation. The bar opens, moves in its ordinary range, touches the stop, and closes back in the entry zone. The trade was right. The stop was wrong.
The scale of the damage:
The institutional fix is well-established: enforce a minimum stop distance equal to at least 1× ATR14, regardless of where the structural pivot falls. This is standard practice at Renaissance, AQR, and Man AHL — stops must be wider than the expected noise of the holding period. In code, the logic is:
stop = max(pivot_low − $0.01, entry − floor_mult × ATR14)
For a 15-minute divergence strategy, a floor multiplier of 1.0 means the stop can never be tighter than one full ATR period of normal volatility.
The Overnight Structural Edge
This finding reframes what the strategy actually is.
The divergence signal is not an intraday scalp — it is detecting multi-session dislocations. TARGET exits averaged 5.72R and held for approximately 105 bars (26 hours). TRAIL_STOP exits averaged 2.22R and held for 83 bars (21 hours). These are swing trades that happen to be discovered on a 15-minute chart, not intraday trades that happen to work.
Two Sigma’s research on intraday systematic strategies describes this phenomenon as “horizon mismatch” — one of the primary causes of alpha decay. When a signal’s natural resolution time significantly exceeds the timeframe on which the signal is detected, the holding period, stop width, and target should all be calibrated to the expected resolution time, not to the bar size.
The Intraday Time-of-Day Effect
Not all trading hours are equal. The backtest reveals a consistent dead zone in the midday session:
The midday dead zone is a well-documented market microstructure phenomenon. Bid-ask spreads widen in the lunch lull, institutional order flow nearly stops, and the algorithmic noise that drives false divergence signals increases. Citadel’s systematic equity division and Jump Trading both explicitly reduce or pause intraday mean-reversion activity in this window.
The 15:30–16:00 window’s strength is equally well-explained: this is the institutional MOC (Market-on-Close) positioning period. Large funds rebalance, execute closing trades, and generate directional flow that divergence signals — which detect oscillator exhaustion at price extremes — are structurally well-positioned to capture. The smart money is most active at the close; the signal-to-noise ratio is at its daily peak.
Symbol-Level Performance
The aggregate results mask significant variation at the individual stock level.
| Symbol | Win Rate | Net P&L | Note |
|---|---|---|---|
| TSLA | ~30% | +$6,702 | High ATR — wide stops work |
| AVGO | ~28% | +$4,143 | Analyst coverage creates mean-reversion |
| AMD | ~26% | +$3,674 | Institutional flow at technical levels |
| MRK | 4% | –$2,378 | Pharmaceutical chop; FDA-driven moves |
| QCOM | 15% | –$2,289 | Licensing-driven gaps; tight range chop |
The divergence strategy works best on stocks with high intraday ATR — TSLA’s 1.5–4% daily moves create enough room for stops to be placed outside the noise band while still producing asymmetric reward. Pharmaceutical stocks like MRK move on FDA headlines and clinical trial data, not on oscillator patterns. A 4% win rate over 50 trades is statistically indistinguishable from random noise. No amount of parameter tuning will fix a structural mismatch between a pattern-based strategy and a news-driven instrument.
Two Sigma’s approach to this problem is an asset-level confidence decay model: an instrument’s position size is multiplied by a rolling performance ratio against the strategy’s base rate. A stock with a 4% win rate when the base rate is 23% receives a confidence multiplier near zero — it is effectively removed from the portfolio without a hard exclusion rule.
What Institutional Research Tells Us About Improving This Strategy
1. ATR Floor on Stops (Most Critical)
The fix with the highest expected impact. Every major systematic fund — Renaissance, AQR, Man AHL, Winton — enforces a minimum stop distance equal to the instrument’s recent volatility. The principle: a stop that is tighter than the noise band is not a risk control mechanism, it is a random exit mechanism. The floor is set as a minimum, not a fixed stop; if the structural pivot level produces a wider stop, that wider stop is used.
2. Session Time Filtering
Renaissance’s documented equity intraday activity clusters around the open (09:30–10:30) and close (15:00–16:00), with reduced presence in the midday session. This matches exactly what the backtest shows. Excluding the 11:30–13:30 window costs some signals (reducing trade count) while improving quality.
3. Target Multiplier Calibration
When TARGET exits average 5.72R and the target is set at 3.0R, the target is being hit quickly and then price is continuing for an additional 2.72R on average. Raising the target to 4.0R converts some early exits into TRAIL_STOP exits that capture more of the move. The trailing stop mechanism provides the safety net for genuine trending trades.
4. Sector Concentration Risk
Multiple semiconductor stocks (AMD, AVGO, NVDA) being eligible simultaneously means what looks like three independent positions can move nearly identically during a sector rotation. Citadel and Point72 both enforce per-sector exposure caps independent of position count. In a correlated drawdown, three semiconductor positions behave like one large position.
5. Regime Awareness
Citadel’s systematic equity division uses volatility regime classification as a meta-filter. When VIX is below 15, mean-reversion signals tend to fail more often — price doesn’t revert cleanly when volatility is suppressed. When VIX is above 40, stop-outs become catastrophic as bid-ask spreads widen and fills deteriorate. The sweet spot for divergence mean-reversion is VIX between approximately 15 and 35.
The Structural Conclusions
1. The 15-minute timeframe is detecting swing-trade setups, not scalps. The average TARGET trade holds for 26 hours and produces 5.72R. The system needs to be calibrated to this — stops, targets, and session rules should all reflect the true resolution horizon of the signal, not the bar size used to detect it.
2. Stop calibration is a technical problem, not a signal problem. The signal quality is demonstrated by the overnight win rate (54.7%) and the TARGET exits. The problem is structural stops being placed inside the noise band. Fixing this — enforcing a minimum ATR-relative stop distance — is the highest-leverage improvement available.
3. Not all instruments belong in the same strategy. A 4% win rate over 50+ trades is definitive. Some stocks are incompatible with technical pattern strategies, not because the pattern is wrong but because the stock’s fundamental driver regime (FDA approvals, licensing disputes, macro regime) overwhelms any oscillator pattern.
4. Time of day is a free filter. Excluding the midday dead zone reduces trade count but improves average quality. It costs nothing in implementation complexity and requires no signal modification — just a time check at entry.
5. A Sharpe of 2.99 with a 1.42× profit factor is a solvable problem. The high Sharpe tells you the edge is real and consistent. The thin profit factor tells you the stop calibration problem is eating most of it. These two numbers together point directly at where the work needs to go.
This post is for educational purposes only and does not constitute financial advice. All backtest results are historical and do not guarantee future performance.