Stop Orders for Options: Wetin Dey Trigger Am?
Broker dey hold most option stop orders, then trigger am by last trade, bid, ask, or mark. Know the choice wey fit affect your fill before you trade.
What dey trigger a stop order for option? For most retail accounts, exchange no dey see the stop: broker dey hold am for its own system and convert am to live order when the contract’s last trade, bid or ask, or mark reach the stop price. Which one broker dey monitor go decide whether the stop go trigger for the price you expect, or whether e go trigger at all. The bid-ask spread go then decide how the fill go look once e triggers.
Where stop order for option dey actually sit?
Options exchanges still define stop order types. The Cboe Exchange rulebook, updated as of August 14, 2026, list both “Stop (Stop-Loss)” order and “Stop-Limit” order under Rule 5.6(c), and e explain the exchange’s own trigger:
“A ‘Stop (Stop-Loss)’ order na order to buy (sell) wey become market order when the consolidated last sale price (excluding prices from complex order trades if e dey outside the NBBO) or NBB (NBO) for particular option contract equal or pass (fall below) the stop price wey User specify. Users no fit designate Stop Order as All Sessions or RTH and Curb.” (Rules of Cboe Exchange, Inc., Rule 5.6(c), updated as of August 14, 2026)
Two details apply to every broker. The exchange trigger na the last sale or the national best bid or offer (NBB/NBO). So sell stop fit trigger when bid touch the stop price, even if no trade happen. Also, person no fit designate the order for all-sessions or curb sessions. For the exchange, stop na regular-hours instrument.
Retail order almost never reach that rule. Most retail brokers dey hold the stop for their own servers. Dem release market or limit order to exchange or wholesaler only after their own trigger fire. Ticket fit write “stop”, but broker get the trigger logic. You go find am for broker’s order-type disclosure, not exchange rulebook.
Which price dey trigger options stop: last, bid, ask, or mark?
Three conventions cover almost every broker. Take sell stop at $1.80 on long put, placed while the put quote dey $1.90 bid / $2.10 ask.
- Last trade. Stop go trigger only when print happen at or below $1.80. If contract no trade, nothing go happen, no matter how far quote fall.
- Bid or ask. Stop go trigger when bid reach $1.80. Some brokers dey watch ask, or either side. No trade need happen; one market maker reducing its quote fit trigger am.
- Mark. Stop go trigger when midpoint of bid and ask reach $1.80. For quote wey get $0.40 spread, mark fit move $0.20 even when neither side trade.
Why “last trade” no reliable for thin contract
Options chain fit look continuous for screen, but most contracts trade only few times per day. The panel below group every AAPL contract wey trade at all on July 15, 2026, based on full-day volume. One lot na one contract.
| volume bucket | contracts | share pct |
|---|---|---|
| 1 to 5 lots | 414 | 23.4 |
| 6 to 25 lots | 323 | 18.2 |
| 26 to 100 lots | 358 | 20.2 |
| 101 to 1,000 lots | 486 | 27.4 |
| over 1,000 lots | 190 | 10.7 |
The exact SQL behind every number
WITH traded AS
(
SELECT
ticker,
max(volume) AS contracts_traded
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND date = toDate('2026-07-15')
AND volume > 0
GROUP BY ticker
)
SELECT
multiIf(contracts_traded <= 5, '1 to 5 lots',
contracts_traded <= 25, '6 to 25 lots',
contracts_traded <= 100, '26 to 100 lots',
contracts_traded <= 1000, '101 to 1,000 lots',
'over 1,000 lots') AS volume_bucket,
count() AS contracts,
round(100 * count() / (SELECT count() FROM traded), 1) AS share_pct
FROM traded
GROUP BY volume_bucket
ORDER BY min(contracts_traded)23.4% of the contracts wey print that day trade five lots or fewer for the whole session. Another 18.2% trade between six and 25. Contract wey get three lots of volume produce at most three prints. So stop wey dey follow last trade get at most three chances to trigger that whole day, at any price wey those prints carry. Between prints, quote fit move from your stop go far pass am without anybody observing the trigger. For the other side of the table, 190 contracts trade more than 1,000 lots each. Last-trade stop on those ones dey behave almost like stock stop.
Why stop-market dey fill for far side of spread
Now take put wey quote $1.60 bid / $2.00 ask, with $0.40-wide market, and sell stop-market at $1.80 wey dey follow mark. Quote slip to $1.55 / $1.95. Mark become $1.75, stop trigger, and broker send market order to sell. Market order go take the best available bid, $1.55. So fill land $0.25 below stop price, about 14% away, even though no trade print near $1.80. If bid flash $1.20 for one quote update as order arrive, fill fit be $1.20. For thin contract, bid-ask spread na the minimum slippage wey stop-market go accept. The usual market order vs limit order trade-off still apply, but options quotes fit make the effect bigger because their spreads wide.
Why stop-limit fit leave the position stranded
Replace the market order with stop-limit wey get $1.75 limit. Quote slip to $1.55 / $1.95, stop trigger, and resulting sell order at $1.75 or better rest $0.20 above bid. Nobody must pay that price. If put continue to fall, order go remain unfilled. Position stay open, and loss continue to grow. Na the opposite of wetin stop suppose do. The two types dey compared for stop order vs stop-limit order, while why options orders don't get filled explain how resting limit leg fit remain unfilled.
Why 20% stop distance fit be normal day for option
Stop distance wey look generous for stock, like 10% or 20% below entry, fit dey inside normal daily noise for option. The trace below follow one SPY put, the strike nearest the money with 25 to 35 days to expiry as of July 6, 2026, through the next two weeks of closes, beside the ETF’s own daily move.
| 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 dateThe put close at $8.79 on Jul 6 and $11.5 on Jul 17. Look at the two percentage columns side by side. ETF day-over-day moves na fractions of a percent, while put move reach whole percentage points and often tens of percentage points. That gap put a stop 20% below put price inside just one day’s range. If we widen the view to every near-the-money SPY put with 20 to 45 days to expiry across July 2026, one contract turn into a distribution.
| move bucket | contract days | share pct |
|---|---|---|
| under 5% | 396 | 16.7 |
| 5% to 10% | 339 | 14.3 |
| 10% to 20% | 591 | 25 |
| 20% or more | 1039 | 43.9 |
The exact SQL behind every number
WITH daily AS
(
SELECT
ticker,
date,
max(toFloat64(option_close)) AS put_close,
max(toFloat64(underlying_close)) AS spy_close,
max(toFloat64(strike_price)) AS strike,
max(days_to_expiry) AS dte
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND lower(toString(option_type)) IN ('put', 'p')
AND date >= toDate('2026-06-29')
AND date < toDate('2026-08-01')
AND days_to_expiry BETWEEN 15 AND 50
AND volume > 0
GROUP BY ticker, date
),
chained AS
(
SELECT
date,
put_close,
spy_close,
strike,
dte,
lagInFrame(put_close, 1) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_put,
lagInFrame(date, 1) OVER (PARTITION BY ticker ORDER BY date ASC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prev_date
FROM daily
),
moves AS
(
SELECT abs(100 * (put_close / prev_put - 1)) AS move_pct
FROM chained
WHERE prev_put > 0
AND dateDiff('day', prev_date, date) <= 4
AND date >= toDate('2026-07-01')
AND dte BETWEEN 20 AND 45
AND abs(strike / spy_close - 1) < 0.02
)
SELECT
multiIf(move_pct < 5, 'under 5%',
move_pct < 10, '5% to 10%',
move_pct < 20, '10% to 20%',
'20% or more') AS move_bucket,
count() AS contract_days,
round(100 * count() / (SELECT count() FROM moves), 1) AS share_pct
FROM moves
GROUP BY move_bucket
ORDER BY min(move_pct)43.9% of those contract-days move 20% or more from the previous close. That compare with 16.7% wey move below 5%. Stop wey dey 20% below previous close cross on roughly 43.9 of every 100 contract-days, even before we count intraday moves wey close-to-close data no show.
Broker restrictions to check before you place one
Broker rules for options stops dey differ and fit change. So treat these ones as categories to check inside your own broker’s order-type disclosure, not as facts about any particular firm:
- Whether broker accept stop-market orders for options at all. Some brokers accept only stop-limit orders for options. That removes far-side fill problem, but e introduces the stranding problem.
- Which trigger convention apply: last, bid, ask, or mark. Also check whether you fit choose am for each order.
- Whether broker evaluate triggers only during regular trading hours. The exchange-level stop in Cboe rule na regular-hours only. Broker-held stops commonly get the same restriction, and this matter for index options with extended sessions.
- Whether broker allow stops on multi-leg orders. If yes, check which price the trigger dey watch, usually the spread’s net mark. Also check which time-in-force choices stop fit carry.
What fit work instead of plain stop
- Bracket or OCO exit with debit target. One order go close the position at profit target. Another stop-limit get limit wide enough to clear normal spread. Whichever one fill first go cancel the other. Bracket and OCO orders explain the mechanics. For options, profit leg dey quote as specific debit or credit, not as percentage.
- Contingent order wey dey follow underlying price. The order watches the stock. Stock fit print thousands of times per hour, unlike put wey fit print only dozen times per day. When stock trade at your level, order sends limit order for the option. The trace above show why this trigger cleaner: ETF na the smooth series, while put na the noisy one.
- No stop for defined-risk spread. Vertical spread maximum loss fixed from entry. Stop on the spread dey watch combined mark of two wide quotes. That mark fit swing because of noise and close both legs at the worst combination of prices. If you adjust the trade instead, as described for how to roll an option position, the defined risk remain intact.
FAQ
Stop orders dey work for options?
Yes, but one caveat dey. Cboe rulebook still define exchange-level stop and stop-limit orders for options. But most retail brokers dey hold the stop themselves and trigger am using their own convention: last trade, bid or ask, or mark. The behaviour you get na the broker’s convention, and dem write am inside the order-type disclosure for your account.
Wetin dey trigger stop order for option: bid, ask, or last trade?
E depend on the broker. Common conventions na last trade price, bid or ask, and mark, wey be midpoint of the quote. Cboe’s own exchange-held stop trigger on either consolidated last sale or national best bid or offer.
Why my options stop order fill far below my stop price?
Stop-market become market order the moment e trigger. Market order to sell go take current bid. If quote get $0.40 spread and trigger na mark, fill go land at bid, roughly 10% below trigger for $2 contract, before any extra slippage.
I fit set stop-loss on options spread?
Some brokers allow stops on multi-leg orders, usually based on the spread’s net mark. Others no allow am. Defined-risk spread already get fixed maximum loss. Stop on the spread fit trigger because of quote noise and close both legs at poor prices. Many traders manage spreads by rolling or adjusting instead.
Every panel above come with the SQL wey produce am. To run the same contract-by-contract volume count for another ticker or date, ask for am in plain English on the Strasmore terminal.