期权止损单由什么触发
期权止损单通常由经纪商监控最新成交价、买价、卖价或标记价格后触发,而非直接挂在交易所;触发依据会影响是否成交及成交价格。
什么会触发期权止损单?在大多数零售账户中,交易所根本看不到这类止损单。经纪商会将其保存在自己的系统中,等合约的最新成交价、买价、卖价或标记价格达到止损价后,再将其转换为实时订单。经纪商监控哪一种价格,决定了止损单是否会按您预期的价格触发,甚至是否会触发;而买卖价差则决定了订单触发后的成交情况。
期权止损单实际上存放在哪里?
期权交易所仍会定义止损单类型。Cboe Exchange规则手册截至2026年8月14日的版本,在第5.6(c)条中列出了“Stop(Stop-Loss)”订单和“Stop-Limit”订单,并明确规定了交易所自身的触发条件:
“‘Stop(Stop-Loss)’订单是指买入(卖出)订单。当某一期权合约的综合最新成交价(不包括复杂订单交易产生的、超出NBBO的价格),或NBB(NBO)达到或高于(低于)用户指定的止损价时,该订单转为市价单。用户不得将Stop Order指定为All Sessions、RTH或Curb。”(Cboe Exchange, Inc.规则手册,第5.6(c)条,截至2026年8月14日更新)
其中有两点适用于所有经纪商。交易所的触发条件是最新成交价或全国最佳买价或卖价(NBB/NBO)。因此,卖出止损单可能仅因买价触及止损价而触发,即使没有实际成交。该订单也不能指定为全时段或场外交易时段订单。在交易所层面,止损单只适用于常规交易时段。
零售订单几乎不会直接适用这条规则。大多数零售经纪商会将止损单保存在自己的服务器上,只有在自身触发条件满足后,才向交易所或批发做市商发送市价单或限价单。订单界面显示“stop”,但触发逻辑属于经纪商,具体内容通常写在其订单类型披露文件中,而不是交易所规则手册中。
什么价格会触发期权止损单:最新成交价、买价、卖价还是标记价格?
几乎所有经纪商都采用以下三种做法之一。假设您持有一张看跌期权,并以$1.80设置卖出止损单;下单时,该期权报价为$1.90买价 / $2.10卖价。
- 最新成交价。只有在出现不高于$1.80的成交价时,止损单才会触发。如果合约没有成交,无论报价跌得多低,订单都不会触发。
- 买价或卖价。当买价达到$1.80时,止损单会触发。有些经纪商监控卖价,或监控买卖两侧。无需实际成交;只要一家做市商下调报价,就可能触发。
- 标记价格。当买卖价的中点达到$1.80时,止损单会触发。在买卖价相差$0.40的报价中,即使两侧都没有成交,标记价格也可能移动$0.20。
为什么在成交清淡的合约上,按最新成交价触发并不可靠
期权链在屏幕上看起来连续,但其中大多数合约每天只成交几次。下图按2026年7月15日全天成交量,对当天有过成交的所有AAPL期权合约进行分组(1手等于1张合约)。
| 成交量区间 | 合约数 | 占比 |
|---|---|---|
| 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 |
每个数字背后的完整 SQL
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%全天成交量不超过5手,另有18.2%成交量在6至25手之间。一张成交量为3手的合约,全天最多只会产生3笔成交。因此,按最新成交价触发的止损单全天最多只有3次触发机会,而且触发价格取决于这些成交的价格。在两笔成交之间,报价可能从止损价一路移动并大幅跌破,而系统无法观察到。表格的另一端有190张合约的成交量超过1,000手。对其中一张合约而言,按最新成交价触发的止损单,其表现会比较接近股票止损单。
为什么止损市价单会在买卖价差的远端成交
假设一张看跌期权报价为$1.60买价 / $2.00卖价,买卖价差为$0.40,并设置一张按标记价格触发的$1.80卖出止损市价单。报价下移至$1.55 / $1.95。此时标记价格为$1.75,止损单触发,经纪商发出卖出市价单。市价卖单会接受当前最佳买价$1.55,因此成交价比止损价低$0.25,偏离约14%;而$1.80附近从未出现成交。如果订单到达时,买价在一次报价更新中短暂跌至$1.20,成交价就会是$1.20。对于成交清淡的合约,买卖价差是止损市价单必然承受的最小滑点;通常的市价单与限价单取舍也同样适用,只是期权报价的价差往往会放大这一影响。
为什么止损限价单可能使头寸无法平仓
将市价单改为止损限价单,并设置$1.75的限价。报价下移至$1.55 / $1.95,止损单触发,随后产生的卖出订单要求成交价为$1.75或更高;该价格比买价高$0.20。没有人必须以该价格买入。如果看跌期权继续下跌,订单就会一直无法成交,头寸仍然持有,亏损继续扩大。这正好与设置止损单的目的相反。两种订单类型的比较见止损单与止损限价单;限价订单挂出后无法成交的情形见为什么期权订单无法成交。
为什么对期权而言,20%的止损距离属于正常日内波动
对股票而言看似宽松的止损距离,例如低于入场价10%或20%,对期权来说可能只是日常波动范围。下图追踪一张SPY看跌期权:截至2026年7月6日,剩余到期时间为25至35天、行权价最接近平值的合约,展示其随后两周的收盘价变化,并与ETF自身的每日变动并列比较。
| 交易日 | 日历标签 | PUT收盘价 | PUT变动百分比 | SPY变动百分比 |
|---|---|---|---|---|
| 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 |
每个数字背后的完整 SQL
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该看跌期权在Jul 6收于$8.79,在Jul 17收于$11.5。将两列百分比并排比较可以看出:ETF的日间变动只有几个百分点的一小部分,而看跌期权的变动可达整个百分点,且经常达到几十个百分点。这一差异意味着,将止损价设在看跌期权价格下方20%,可能在单日波动范围内。将样本扩大到2026年7月期间所有剩余到期时间为20至45天的近乎平值SPY看跌期权后,可以将单个合约的情况转化为整体分布。
| 变动区间 | 合约天数 | 占比 |
|---|---|---|
| under 5% | 396 | 16.7 |
| 5% to 10% | 339 | 14.3 |
| 10% to 20% | 591 | 25 |
| 20% or more | 1039 | 43.9 |
每个数字背后的完整 SQL
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%的合约日较前一日收盘价下跌或上涨至少20%,而仅有16.7%的合约日变动低于5%。止损价若设在前一日收盘价下方20%,大约有43.9的每100个合约日会触及该价格;这还没有计入收盘价序列无法反映的日内波动。
下单前应查询的经纪商限制
经纪商对期权止损单的规则各不相同,也可能发生变化。因此,以下内容应作为您查询本经纪商订单类型披露文件时的检查类别,而不应视为适用于某一家公司的固定事实:
- 是否接受期权止损市价单。有些经纪商只接受期权止损限价单。这可以避免在价差远端成交,但会带来订单无法成交的问题。
- 采用哪种触发方式(最新成交价、买价、卖价或标记价格),以及是否可以按订单选择。
- 是否只在常规交易时段评估触发条件。Cboe规则中的交易所止损单仅适用于常规交易时段;经纪商持有的止损单通常也有相同限制。这一点对具有延长交易时段的指数期权尤其重要。
- 是否允许对多腿订单设置止损;如果允许,触发条件监控哪一种价格(通常是价差的净标记价格);以及止损单可以采用哪些有效期限选项。
普通止损单之外的替代方案
- 带有借方目标的括号订单或OCO退出订单。一个订单用于在目标盈利价平仓,另一个是止损限价单,其限价设置得足够宽,以覆盖正常买卖价差;其中一个订单成交后,另一个会被取消。括号订单与OCO订单介绍了相关机制。对于期权,盈利目标腿以具体借方或贷方报价表示,而不是百分比。
- 以标的资产价格为触发条件的条件订单。该订单监控股票价格。股票每小时会产生成千上万笔成交,而看跌期权每天可能只有十几笔成交。当股票达到您设定的价格时,系统会发送期权限价单。上图说明了这种触发方式为何更清晰:ETF的价格序列更平滑,而看跌期权的价格序列波动更大。
- 对定义风险价差不设置止损单。垂直价差的最大损失在建仓时已经确定。价差止损单监控两张宽价差报价的综合标记价格,可能因报价噪声触发,并以最不利的价格组合同时平掉两条腿。按照如何滚动期权头寸中的方法调整交易,则可以维持既定的风险上限。
常见问题
期权止损单有效吗?
有效,但有一个前提。Cboe规则手册仍为期权定义了交易所层面的止损单和止损限价单。不过,大多数零售经纪商会自行持有止损单,并根据自身的触发条件执行。触发条件可能是最新成交价、买价或卖价,也可能是标记价格。您实际获得的执行方式取决于经纪商的规则,具体内容会写在您账户适用的订单类型披露文件中。
什么会触发期权止损单:买价、卖价还是最新成交价?
这取决于经纪商。常见方式包括最新成交价、买价或卖价,以及标记价格(报价中点)。Cboe自身持有的交易所止损单,会在综合最新成交价或全国最佳买价或卖价达到条件时触发。
为什么我的期权止损单成交价远低于止损价?
止损市价单触发后会立即转为市价单,而卖出市价单会以当前买价成交。如果买卖价差为$0.40,且触发依据是标记价格,那么在合约价格为$2时,成交价通常会先落在买价,约比触发价低10%,之后还可能进一步产生滑点。
可以对期权价差设置止损吗?
部分经纪商允许对多腿订单设置止损,通常以价差的净标记价格为触发条件;部分经纪商则不允许。定义风险价差本身已经有固定的最大损失,止损单可能因报价噪声触发,并以较差价格同时平掉两条腿。许多交易者会选择滚动或调整价差,而不是设置止损单。
上文每个图表都附有生成该图表的SQL。若要对其他ticker或日期运行相同的逐合约成交量统计,请在Strasmore终端中用通俗英语提出请求。