Stop Orders on Options: What Actually Triggers
One near-the-money SPY put, July 6 to July 17, 2026: daily close and day-over-day move next to SPY'sseries ·
2026-09-11 · 10×5
Near-the-money SPY puts (20-45 days to expiry), July 2026: size of the day-over-day close moveranking ·
2026-09-11 · 4×3
AAPL option contracts on July 15, 2026, bucketed by full-day volumeranking ·
2026-09-11 · 5×3
One near-the-money SPY put, July 6 to July 17, 2026: daily close and day-over-day move next to SPY's
One near-the-money SPY put, July 6 to July 17, 2026: daily close and day-over-day move next to SPY's
| session_date | calendar_label | put_close | put_move_pct | spy_move_pct |
|---|---|---|---|---|
| 2026-07-06 | Jul 6 | 8.79 | -41.3 | 0.66 |
| 2026-07-07 | Jul 7 | 11.21 | 27.5 | -0.6 |
| 2026-07-08 | Jul 8 | 12.03 | 7.3 | -0.11 |
| 2026-07-09 | Jul 9 | 8.31 | -30.9 | 0.82 |
| 2026-07-10 | Jul 10 | 6.5 | -21.8 | 0.45 |
| 2026-07-13 | Jul 13 | 9.28 | 42.8 | -0.88 |
| 2026-07-14 | Jul 14 | 7.49 | -19.3 | 0.66 |
| 2026-07-15 | Jul 15 | 5.92 | -21 | 0.21 |
| 2026-07-16 | Jul 16 | 7.94 | 34.1 | -0.74 |
| 2026-07-17 | Jul 17 | 11.5 | 44.8 | -0.88 |
the exact SQL behind every number
WITH pick AS
(
SELECT ticker
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND lower(toString(option_type)) IN ('put', 'p')
AND date = toDate('2026-07-06')
AND days_to_expiry BETWEEN 25 AND 35
AND volume > 0
ORDER BY abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) ASC,
expiration_date ASC,
ticker ASC
LIMIT 1
),
daily AS
(
SELECT
date,
max(toFloat64(option_close)) AS put_close_raw,
max(toFloat64(underlying_close)) AS spy_close_raw
FROM global_markets.options_greeks
WHERE ticker IN (SELECT ticker FROM pick)
AND date >= toDate('2026-07-02')
AND date < toDate('2026-07-18')
AND volume > 0
GROUP BY date
),
chained AS
(
SELECT
date,
put_close_raw,
spy_close_raw,
lagInFrame(put_close_raw, 1) OVER (ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_put,
lagInFrame(spy_close_raw, 1) OVER (ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_spy
FROM daily
)
SELECT
toString(date) AS session_date,
concat(formatDateTime(date, '%b'), ' ', toString(toDayOfMonth(date))) AS calendar_label,
round(put_close_raw, 2) AS put_close,
round(100 * (put_close_raw / prev_put - 1), 1) AS put_move_pct,
round(100 * (spy_close_raw / prev_spy - 1), 2) AS spy_move_pct
FROM chained
WHERE prev_put > 0
AND prev_spy > 0
AND date >= toDate('2026-07-06')
ORDER BY date
More from this analysisStop Orders on Options: What Actually Triggers
AAPL option contracts on July 15, 2026, bucketed by full-day volume
ranking 5×3
→
Near-the-money SPY puts (20-45 days to expiry), July 2026: size of the day-over-day close move
ranking 4×3
→
SPY on a calm day vs. a fast day: session range, per-minute movement, and quoted spread
series 2×5
→
What a 100-share market order pays crossing the spread: July 8, 2026, regular session
ranking 5×4
→
See all 2,595 queries →