期权止损单由什么价格触发
期权止损单可能由最新成交价、买价、卖价或标记价触发。了解经纪商采用哪种价格,才能判断它何时触发以及最终成交价为何可能偏离预期。
什么会触发期权止损单?在大多数零售账户中,交易所根本看不到这类止损单。经纪商会将其保存在自己的系统中。只有当合约的最新成交价、买价、卖价或标记价达到止损价时,经纪商才会将其转换为有效订单。经纪商监控哪一种价格,决定了止损单是否会按您预期的价格触发,甚至是否会触发。止损单触发后的成交结果,则取决于买卖价差。
期权止损单实际上存放在哪里?
期权交易所仍然定义了止损单类型。Cboe Exchange规则手册截至2026年8月14日的版本,在第5.6(c)条中同时列出了“Stop(Stop-Loss)”订单和“Stop-Limit”订单,并明确规定了交易所自身的触发条件:
“‘Stop(Stop-Loss)’订单是指一项买入(卖出)订单。当某一期权合约的综合最新成交价(若复杂订单交易价格在NBBO之外,则不包括该价格),或NBB(NBO)等于或高于(低于)用户指定的止损价时,该订单将转为市价单。用户不得将Stop订单指定为全时段、RTH或Curb订单。”(Cboe Exchange, Inc.规则,第5.6(c)条,更新于2026年8月14日)
其中有两点适用于所有经纪商。交易所的触发条件是最新成交价或全国最佳买价或卖价(NBB/NBO)。因此,卖出止损单可能在买价触及止损价、但市场没有任何成交时触发。其次,该订单不能指定为全时段或场外交易时段订单。在交易所层面,止损单只适用于常规交易时段。
零售订单几乎从未直接适用这项规则。大多数零售经纪商会将止损单保存在自己的服务器上。只有在其自身的触发条件满足后,经纪商才会向交易所或批发做市商发送市价单或限价单。订单界面显示“stop”,但触发逻辑属于经纪商,并记录在其订单类型披露文件中,而不是交易所规则手册中。
什么价格会触发期权止损单:最新成交价、买价、卖价还是标记价?
几乎所有经纪商都采用以下三种惯例之一。假设您持有一张看跌期权,在该期权报价为1.90美元买价/2.10美元卖价时,以1.80美元设置卖出止损单。
- 最新成交价。 只有在成交价达到或低于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%的止损价,在每100个合约日中大约有43.9个被触及。这个统计还没有计入日内波动,而收盘价序列无法反映日内波动。
下单前应查询的经纪商限制
经纪商对期权止损单的规则各不相同,也可能发生变化。因此,以下内容应作为您查询本经纪商订单类型披露文件时的检查项目,而不应视为适用于任何特定公司的事实:
- 经纪商是否接受期权止损市价单。有些经纪商只接受期权止损限价单。这会避免在买卖价差远端成交,但会引入订单无法成交的问题。
- 适用哪种触发惯例(最新成交价、买价、卖价或标记价),以及是否可以逐笔订单选择。
- 触发条件是否只在常规交易时段内评估。Cboe规则中的交易所止损单仅适用于常规交易时段。经纪商持有的止损单通常也有相同限制,这一点对有延长交易时段的指数期权尤其重要。
- 是否允许对多腿订单设置止损单。如果允许,触发条件监控哪一种价格(通常是价差的净标记价),以及止损单可以采用哪些有效期限选项。
普通止损单之外的替代方案
- 带有借方目标的括号订单或OCO退出订单。 一个订单在盈利目标价平仓,另一个订单设置止损限价,且限价足够宽,以覆盖正常买卖价差。任一订单成交后,另一个订单就会被取消。括号订单和OCO订单介绍了相关机制。对期权而言,盈利腿的价格应设为具体的借方或贷方金额,而不是百分比。
- 以标的价格为触发条件的或有订单。 该订单监控股票价格。股票每小时可以产生数千笔成交,而看跌期权每天可能只有十几笔成交。当股票价格达到您设定的水平时,系统再对期权发送限价单。上图说明了这种触发方式为何更清晰:ETF的价格序列较为平滑,而期权的价格序列波动更大。
- 对风险已限定的价差策略不设置止损单。 垂直价差的最大亏损在建仓时已经确定。价差止损单监控两组宽幅报价的综合标记价,可能因报价噪声触发,并以最不利的价格组合同时平仓两条腿。改为调整交易,例如如何滚动期权仓位,可以维持既定的风险上限。
常见问题
期权止损单有效吗?
有效,但有一个前提。Cboe规则手册仍然定义了期权的交易所级止损单和止损限价单。但大多数零售经纪商会自行持有止损单,并依据自身采用的触发条件执行:最新成交价、买价或卖价,或者标记价。您实际获得的执行方式取决于经纪商的惯例,具体内容会写在您账户适用的订单类型披露文件中。
什么会触发期权止损单:买价、卖价还是最新成交价?
这取决于经纪商。常见触发条件包括最新成交价、买价或卖价,以及标记价,即报价的中点。Cboe交易所持有的止损单,则会在综合最新成交价或全国最佳买价或卖价达到条件时触发。
为什么我的期权止损单成交价远低于止损价?
止损市价单一旦触发,就会转为市价单。卖出市价单会按当时的买价成交。如果买卖价差为0.40美元,触发依据是标记价,那么成交价通常会落在买价附近。对于价格为2美元的合约,在进一步滑点发生之前,成交价可能已经比触发价低约10%。
可以为期权价差设置止损单吗?
有些经纪商允许对多腿订单设置止损单,通常以价差的净标记价为触发依据;有些经纪商则不允许。风险已限定的价差策略本身已经有确定的最大亏损,而止损单可能因报价噪声触发,并以不利价格同时平仓两条腿。许多交易者会选择滚动或调整价差,而不是设置止损单。
上文每个图表都附有生成数据的SQL。若要在其他ticker或日期上运行相同的逐合约成交量统计,请在Strasmore终端中用自然语言提出请求。