Wide Bid-Ask Spread Protection
Sometimes a bot that should be stopping out or taking profit appears to wait instead. Often the reason is simple: the quote for one of its legs has gone so wide that it no longer represents a real price, and the bot is refusing to trade against it. This article explains when that protection engages, how to control the wait, and what the exchange's own wide-market safeguards do and do not cover.
Why a bot pauses instead of stopping out
When a bot manages a stop or profit target, tradeSteward reads a live quote for each leg of the position. Most of the time the bid and ask sit close together and the quote is a trustworthy picture of where the option is trading. But option markets dislocate: liquidity thins, a market maker pulls back, and the spread on a strike balloons far beyond anything normal. At that moment there is no reliable price inside that quote — the midpoint is a guess, and any value computed from it is a guess too.
Acting on a quote like that is worse than waiting. A stop evaluated against a dislocated quote can fire on a loss that exists only on paper, and an order sent into a wide market can cross the full width of the spread — paying real money for a dislocation that often heals within seconds. So when a leg's bid-ask spread is abnormally wide, tradeSteward pauses management and stops on that leg rather than trading against a quote it cannot trust.
How wide is too wide
What counts as abnormally wide depends on the option's price: a $0.75 spread on a $0.50 option is a broken market, while the same spread on a $60.00 option is unremarkable. The thresholds are therefore keyed on the bid. A spread at or beyond these widths pauses trading on that leg:
| Bid price | Spread that pauses trading |
|---|---|
| Under $2.00 | $0.75 |
| $2.00 to $3.00 | $1.25 |
| $3.01 to $5.00 | $1.875 |
| $5.01 to $10.00 | $2.25 |
| $10.01 to $20.00 | $4.375 |
| $20.01 to $50.00 | $7.50 |
| $50.01 to $100.00 | $13.50 |
| Over $100.00 | $18.00 |
The Wide Spread Patience Window
The pause is not open-ended. How long a bot waits for quotes to normalize is your choice: the Wide Spread Patience Window, found under Bot Preferences on the Account Settings page. The options are Off, 15 Seconds, 30 Seconds, 1 Minute, 2 Minutes, 3 Minutes, 5 Minutes, and Until Normal Quotes.
- A timed window (15 Seconds through 5 Minutes) pauses management while the spread is wide, then proceeds using the available quotes once the window expires. Most dislocations heal in seconds, so even a short window filters out the vast majority of bad quotes while capping how long a stop can be delayed.
- Until Normal Quotes never proceeds while the spread stays wide. This is the strictest setting: no trade is ever evaluated against a wide quote, at the cost of an unbounded wait if the market stays dislocated.
- Off never pauses. Stops and targets are managed against whatever the quote says, however wide it is. Opening a new trade is the exception: a strike quoting wide at entry is still passed over in favor of one quoting normally, since there is no position at risk yet and nothing to be gained from opening on a bad price.
The trade-off is between two risks: acting on a bad price versus acting late on a real move. A timed window is the middle ground — it assumes a wide quote is noise for a bounded time, then treats it as reality. See User Preferences for where this setting lives alongside the other bot preferences.
Where the thresholds come from
The widths in the table above are not arbitrary. They are anchored to a table published in Cboe's own rules: the bid-ask width at which the exchange stops treating a quote as a usable price reference when it has to work out what an option was really worth at a moment in time. That table is also keyed on the bid:
| Bid price | Cboe wide-quote width |
|---|---|
| Under $2.00 | $0.75 |
| $2.00 to $5.00 | $1.25 |
| Above $5.00 to $10.00 | $1.50 |
| Above $10.00 to $20.00 | $2.50 |
| Above $20.00 to $50.00 | $3.00 |
| Above $50.00 to $100.00 | $4.50 |
| Above $100.00 | $6.00 |
tradeSteward starts from that table and scales up with premium: the thresholds are held exactly at the exchange's line for bids up to $3.00, then become progressively more tolerant as the premium rises. The reasoning is proportional — a dollar of spread means much less on an expensive option than on a cheap one, so a width that signals a broken market at $2.00 is ordinary at $80.00.
The exchange's backup: Cboe Wide Market Protection
tradeSteward's spread check is not the only line of defense. Cboe operates an exchange-level mechanism called Wide Market Protection, live since April 2025 on Cboe Options, C2, BZX and EDGX Options, and extended to SPX and SPXW options on December 15, 2025.
It works on the order itself. When an order arrives while the national best bid and offer is judged wide — or when a stop order is triggered and the quote after the trigger is wide — the exchange does not let the order execute straight into the dislocation. Instead it pauses the order and displays it at a benchmark price for about half a second, then walks the price toward more aggressive levels in short iterations, about every 200 milliseconds for SPX and SPXW, up to the order's limit price. The benchmark is the least aggressive of three references: the same-side quote adjusted by a set amount, the last trade price, or the quote midpoint. In effect, the exchange gives the market a beat to come back before your order pays the full width of a dislocated spread.
Whether a quote is wide is defined by a published table, again keyed on the bid. For SPX and SPXW the widths are:
| Bid price | SPX/SPXW wide-market width |
|---|---|
| $3.00 or under | $0.40 |
| Up to $5.00 | $0.70 |
| Up to $10.00 | $0.80 |
| Up to $20.00 | $1.30 |
| Up to $50.00 | $1.50 |
| Up to $100.00 | $2.30 |
| Above $100.00 | $3.00 |
Other option classes use wider values than these.
Why tradeSteward keeps its own protection
If the exchange already pauses orders into wide markets, why does tradeSteward check spreads at all? Because the exchange mechanism has boundaries, and they matter for exactly the trades bots run:
- It covers single-leg orders only. Multi-leg spread orders are handled by the exchange's complex order book and are not covered by Wide Market Protection. An iron condor or vertical closed as one spread order gets no exchange-side wide-market pause.
- It switches off at the close. Wide Market Protection is disabled in the last 30 seconds of the regular and Curb sessions — a window where end-of-day exits and 0 DTE stops are most likely to be working.
- It applies on Cboe exchanges. Options that trade on multiple exchanges may route elsewhere, where this mechanism does not exist.
tradeSteward's own check has none of those boundaries: it evaluates every leg's quote before acting, for any position, at any time of the session, regardless of where the order would route. The two layers are complementary — the bot avoids acting on a quote that is not a real price, and the exchange, where it applies, keeps a single-leg order from sweeping straight through a dislocation.
Wide spread protection is one piece of how your exits are managed. See Stop Losses Explained for how stops trigger and work their fills, and Stop Adjustments and Trailing Stops for shaping a stop over the life of the trade.