A two-candle setup on the SPY 4-hour chart: a strong green push, then a small pause candle that pokes higher. When the pause shows up, a move often follows. The full strategy, the rules, every example, and the 2-year backtest.
The alert sorts every signal into one of two buckets — clean or risky. You will see these words all over this page, so here is what each one means in plain English.
| Type | What it is | How it has done |
|---|---|---|
| clean | The textbook version. The first candle is green, so price was already pushing up. The second candle — the pause — pokes a little higher, then settles back and closes in the upper part of that green candle. No surprise price jumps overnight. Everything lines up the calm, clean way. | The stronger signal. It finished green in the next candle — of the time — and — of the time when it set up in the afternoon to hold overnight. |
| risky | Still a real signal, but something is off, so the alert flags it. Any one of these three makes it risky: (1) the first candle was actually red, and it only counts because price gapped up over it; (2) the pause candle closed low — in the bottom half of the green candle instead of up high; or (3) price made a big jump (a gap) right into the setup. | Close to a coin flip — green about — of the time. Trade it smaller, or skip it. |
“Risky” is not one thing. A setup gets the risky tag for one of three reasons — and they don’t all perform the same. We split the — risky setups below. (Win = the next candle popped at least +0.20%.)
A setup can trip more than one flag, so these groups overlap. Here is how each flag did on its own:
| Why it was flagged risky | Win rate | Avg peak |
|---|
The same “strong push” signal from the winners study cuts the risky bucket roughly in half:
| Risky setup, split by… | Win rate | Verdict |
|---|
Sample caveat: these are small buckets — a dozen-ish trades each. Treat this as a tilt, not a guarantee.
A different question: instead of the peak, what if you bought one 15-delta call (an OTM lottery ticket, ~0.15 delta) on each setup and sold it at a fixed time? Modeled at 2 DTE, 14% IV, a call solved to 0.15 delta at the moment you buy. Each cell shows the green rate (% of those trades that finished above where you bought) and, smaller, the median return — median, not average, because a couple of +300–600% pops would otherwise flatter the mean.
About “first hour”: two baselines are shown. Sell at open and after 1st hr are measured from your entry at the setup’s close — so for an overnight setup they include the overnight gap plus ~18h of decay. First hour only instead buys at the next open and sells one hour later — the open→+1hr move on its own, no overnight gap, no overnight theta. That last one is the “difference from open to the end of the first hour” you asked about.
| Setup type | # | Sell at open | After 1st hr | First hour only |
|---|
Once you buy at the open, the next question is when to sell. We tested selling after 1, 2, and 3 hours, and at the lunchtime close, across all 24 clean-overnight setups in the two years. This time the option is priced the realistic way: it is bought with the higher “open” volatility and that volatility is allowed to fade as the morning goes on (more on that below). We show the win rate and the median (middle) result, not the average, so one giant winner can’t skew it.
| Hold (after buying at the open) | Win rate | Median gain |
|---|---|---|
| 1 hour — the sweet spot | 54% | +15% |
| 2 hours | 54% | +5% |
| 3 hours | 42% | −8% |
| To the lunchtime close (~3.5 hrs) | 50% | +5% |
With the full two years of data the answer is even sharper: 13 of the 24 setups peaked in the very first hour. One hour in, the median trade is up +15% and just over half are green. By hour three the median has gone negative and the win rate drops to 42% — holding that long actively hurt. So the target zone is the first hour, and the second hour at the latest, not “ride it all day.”
Early on, SPY is still moving fast enough to pay you more than these two take away. By late morning the move slows down but the decay and the fading cushion do not — so the math flips against you. That is the whole reason the sweet spot is early.
A stop loss is a fixed line in the sand: “if this option drops to a set price, I’m out.” It only protects your downside. A trailing (moving) stop follows the trade up: as the option gains, the exit line ratchets higher behind it, so you lock in more of a win but still get kicked out if it rolls over. Because this trade tends to peak in the first hour and then fade, a trailing stop fits the shape better than a fixed target — it lets the early move run but pulls you out when it dies.
A clean plan: buy at the open, hard stop near −35% of the premium, aim to sell into strength around the first hour, and trail behind the high if it keeps running. This is a model and a starting point, not advice — paper-trade it first.
Option % return per setup. Intraday setups have ~0% “at open” by construction — their entry (morning block close) and the next block’s open are the same moment.
| Setup (circled) | Type | Hold | At open | After 1st hr | First hr only |
|---|
15-delta call, 2 DTE, flat 14% IV, sold for time value (not held to expiry). A real 15-delta strike carries higher IV than this flat assumption, and fills on cheap OTM contracts are wide — treat these as directional, not exact. Not financial advice.
The setup is just two candles sitting next to each other. The first one does the work. The second one rests, but its wick reaches up past the first candle's high.
A green (up) candle with a real body. This is the move that gets things going.
A candle with a long upper wick — a shooting-star look. The wick pokes above the push candle's high, but it closes back down in the bottom third of its own range.
This is the checklist the alert uses to spot the pattern automatically.
Beyond the clean/risky split, we compared the — winners against the — losers to see what the good ones had in common. A few signals jumped out — some you might not have on your checklist. Win-rate splits below cut all the setups at the middle value of each signal.
| Signal | The good ones… | Win rate split |
|---|
Read these as leads, not laws. Some buckets are small (a dozen-ish trades), so the day-of-week edge especially could soften with more data. The strong-push filter is the single biggest lever and the alert does not yet require it.
Each yellow ring is a real pause candle the detector flagged on SPY. The green candle right before it (tagged "push") is the setup candle.
Recent SPY 4-hour setups. Yellow ring = the pause candle. Green "push" = the candle before it.
All — flagged setups, each drawn as mini 4-hour candles. The gold-ringed candle is the pause; the candle just before it is the push; the dashed box on the right is the next candle — the outcome. Stack as many filters as you want, then sort, and eyeball what the good and bad ones actually look like.
Every flagged setup from — — — in all (the most Yahoo’s hourly data allows). For each one: how far SPY moved in the next 4-hour candle, measured from the entry (the circled candle's close). 1st hr = where it sat one hour in, peak = the best green pop you could have sold into, close = where the candle finished.
The numbers that actually matter for sizing a trade. Win = hit +0.20% in the next candle. Popped green = went positive at any point (your chance to exit at a profit). Avg peak = the typical best pop to sell into. Avg close = where it ended if you held the whole candle. Worst close = the deepest a single setup finished, your downside reality check.
| Setup type | # | Win | Popped green | Avg peak | Avg close | Worst close |
|---|
| Setup (circled) | Type | Hold | 1st hr | Peak pop | Close | Result |
|---|
Setups from —. Entry = the circled candle's close; moves measured over the next 4-hour candle. Past results only — not a prediction. Yahoo 1-hour data only reaches back ~2 years, which caps how far this backtest can go.
A small script checks SPY 4-hour candles a few minutes before each candle closes during market hours. When all the rules above line up, it sends one text so the entry window is not missed.