期权3-5-7规则:风险上限与数据检验
了解期权3-5-7规则的风险敞口定义、民间来源与适用边界,并查看它在真实数据下能否有效控制单笔、单一标的及整体账户风险。
“3-5-7规则”是一种仓位管理惯例,常见于期权论坛和券商博客:单笔交易的风险最多不超过账户资金的3%,单一标的的风险最多不超过5%,所有未平仓头寸合计的风险最多不超过账户资金的7%。该规则只决定仓位大小,不决定交易选择。它没有规定应交易什么,也无法凭空创造原本不存在的优势。
“3-5-7规则”的含义
这三个数字针对的是风险敞口,而不是投入资金。
- 每笔交易3%。 单个仓位的最大亏损须低于账户净值的3%。假设账户规模为100,000美元,该上限为3,000美元。
- 每个标的5%。 同一只股票上的所有仓位合并计算。针对同一标的的看涨期权多头、看涨期权价差和看跌期权卖出仓位,共用一个5%的风险额度。
- 合计7%。 所有未平仓仓位的最大亏损合计,在任何时点都须低于账户净值的7%。
第一道限制控制单个错误判断的风险。第二道限制控制同一个错误判断以三种方式表达时的风险。第三道限制控制多个仓位同时波动时整个交易时段的风险。
期权使第一个数字特别容易计算。对于看涨期权或看跌期权多头,已支付的权利金就是最大亏损,因此3%的上限就是对风险权利金的限制。假设账户规模为100,000美元,某合约报价为4.50美元:一张合约对应100股,成本为450美元;买入六张合约的风险敞口为2,700美元,低于3,000美元的上限。对于风险已定义的价差策略,最大亏损等于行权价差减去收到的权利金。对于裸卖看涨期权等风险未定义的仓位,则根本不存在算术意义上的最大亏损;通常所说的这条规则也没有涵盖这种情况。计算所需的两个数据——报价中的权利金和可用的行权价——都可以从期权链中读取,而逐列读取期权链将说明每一列具体代表什么。若以保证金要求或主观止损代替真正的最大亏损,便会悄然破坏这条规则所依赖的计算逻辑。
规则的由来
搜索结果通常将3-5-7规则描述为已经确立的惯例。但它其实只是民间经验。没有论文、数据集或公开推导能够支持这三个数字,而且早期流传的版本讲的是股票交易,而不是期权交易。对这些具体数值的重视程度,应当等同于对一种惯例的重视,而不是对一项研究结论的重视。
这条规则所属的理论体系,则有更充分的文献支持。固定比例仓位管理要求每个头寸承担固定比例的账户权益风险,这一方法贯穿二十世纪的交易文献。它的正式理论先驱是凯利准则(John Kelly,1956年)。该准则根据估算的交易优势和盈亏赔率推导最优仓位比例。由于高估交易优势可能导致仓位过大并造成毁灭性损失,实际市场应用通常只采用公式结果的一半或四分之一。3-5-7规则跳过了优势估算,直接选定一个较小的数字。这一替代方案的全部设计理念是:无需掌握任何信息即可保持稳健,但对任何目标而言都不是最优方案。
5%单一标的上限是相对于什么衡量的
单一标的上限只有结合个股的波动幅度来看才有意义。下表选取七只家喻户晓的股票代码,统计截至2026年6月30日的过去12个月,并按正常交易时段的收盘价计算收盘至收盘的涨跌幅。
| ticker | 交易日数 | 绝对涨跌幅中位数 (%) | 绝对涨跌幅 P95 (%) | 涨跌幅超过 3% 的天数占比 | 单日最大跌幅 (%) |
|---|---|---|---|---|---|
| SPY | 250 | 0.46 | 1.62 | 0 | -2.69 |
| KO | 250 | 0.65 | 2.11 | 1.2 | -2.56 |
| JNJ | 250 | 0.63 | 2.21 | 1.6 | -2.42 |
| AAPL | 250 | 0.68 | 3.23 | 7.2 | -6.15 |
| MSFT | 250 | 0.76 | 3.37 | 8.4 | -10.02 |
| NVDA | 250 | 1.37 | 4.35 | 16.4 | -6.22 |
| TSLA | 250 | 1.83 | 5.45 | 30.4 | -8.39 |
每个数字背后的完整 SQL
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'JNJ', 'AAPL', 'MSFT', 'NVDA', 'TSLA')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-07-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
moves AS (
SELECT ticker, d,
100 * (px / any(px) OVER (PARTITION BY ticker ORDER BY d
ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) - 1) AS move_pct
FROM daily
)
SELECT ticker,
count() AS sessions,
round(quantileDeterministic(0.5)(abs(move_pct), cityHash64(ticker, d)), 2) AS median_abs_move_pct,
round(quantileDeterministic(0.95)(abs(move_pct), cityHash64(ticker, d)), 2) AS p95_abs_move_pct,
round(100 * countIf(abs(move_pct) >= 3) / count(), 1) AS pct_days_beyond_3,
round(min(move_pct), 2) AS worst_day_pct
FROM moves
WHERE isFinite(move_pct)
GROUP BY ticker
ORDER BY p95_abs_move_pct一年期区间差异很大。表中最稳定的标的SPY,单日绝对涨跌幅中位数为0.46%,在250个交易日中,有0%的交易日涨跌幅达到3%或以上。交易最活跃的标的TSLA,单日涨跌幅中位数为1.83%,有30.4%的交易日越过3%关口,单日最差交易日的涨跌幅达到-8.39%。其95%分位数单日涨跌幅为5.45%,超过表格顶部1.62%数值的三倍。
同一个固定百分比上限,对不同标的的约束作用完全不同。对于典型单日波动为0.46%的标的,5%的标的额度限制较为宽松。对于单日中位数波动为1.83%、异常波动时幅度更大的标的,同样的5%额度很快就会用尽。按标的自身波动率调整上限的仓位 sizing 规则,正是为了解决这一差异;流动性与波动性期权将说明这种差异如何体现于期权合约本身。
亏损往往成簇出现
7%的总限额是这项规则中最关键的部分,其针对的是市场的一项真实特征:糟糕的交易日并不会均匀分布。下一个面板使用同一时间窗口内的相同七个名称,统计其中最差的连续五个交易日表现,以及窗口内从滚动高点算起的最大跌幅。
| ticker | 最差 5 个交易日涨跌幅 (%) | 最大回撤 (%) | 低于最高价 10% 的天数占比 |
|---|---|---|---|
| MSFT | -14.41 | -34.99 | 59 |
| TSLA | -10.27 | -29.92 | 49 |
| NVDA | -10.67 | -20.28 | 34.3 |
| AAPL | -8 | -13.87 | 11.6 |
| JNJ | -5.83 | -10.91 | 2.4 |
| SPY | -3.81 | -9.13 | 0 |
| KO | -5.52 | -8.49 | 0 |
每个数字背后的完整 SQL
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'JNJ', 'AAPL', 'MSFT', 'NVDA', 'TSLA')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2025-07-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
win AS (
SELECT ticker, d, px,
any(px) OVER (PARTITION BY ticker ORDER BY d
ROWS BETWEEN 5 PRECEDING AND 5 PRECEDING) AS px_5_ago,
max(px) OVER (PARTITION BY ticker ORDER BY d
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_high
FROM daily
)
SELECT ticker,
round(min(100 * (px / px_5_ago - 1)), 2) AS worst_5_session_pct,
round(min(100 * (px / running_high - 1)), 2) AS deepest_drawdown_pct,
round(100 * countIf(px / running_high - 1 <= -0.1) / count(), 1) AS pct_days_10pct_below_high
FROM win
WHERE isFinite(px_5_ago)
GROUP BY ticker
ORDER BY deepest_drawdown_pct窗口内最大跌幅属于MSFT,跌幅为-34.99%;在窗口的59%个交易日中,该名称的价格都低于其滚动高点10%以上。其连续五个交易日的最差表现为-14.41%。另一端,KO较其滚动高点最多下跌-8.49%,并有0%个交易日处于这一跌幅水平。这里的所有读数都以2025年7月1日作为滚动高点起点,因此反映的是窗口内数据,而非历史最高点数据。
将这一点与每笔交易3%的上限对照来看。一名交易者若持有三个仓位,且每个仓位都达到3%的上限,则其风险敞口合计为9%,已经超过7%的总限额;而且,这三个仓位很容易只是以三个名称呈现的同一项敞口。总限额和单一标的限额是这项规则发挥约束作用的关键部分,这也是集中度风险所讨论的主题。
指数在更长时间尺度上也呈现出类似情况。以下是标普500跟踪产品连续十一年的单日涨跌幅:
| 年份 | 交易日数 | 下跌超过 1% 的天数 | 下跌超过 3% 的天数 | 单日最大跌幅 (%) |
|---|---|---|---|---|
| 2016 | 252 | 22 | 1 | -3.61 |
| 2017 | 251 | 4 | 0 | -1.77 |
| 2018 | 251 | 32 | 5 | -4.12 |
| 2019 | 252 | 15 | 0 | -2.98 |
| 2020 | 253 | 45 | 16 | -11.63 |
| 2021 | 252 | 21 | 0 | -2.45 |
| 2022 | 251 | 65 | 8 | -4.34 |
| 2023 | 250 | 28 | 0 | -1.99 |
| 2024 | 252 | 19 | 0 | -2.97 |
| 2025 | 250 | 30 | 3 | -5.98 |
| 2026 | 123 | 15 | 0 | -2.59 |
每个数字背后的完整 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
toFloat64(argMax(close, window_start)) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2015-12-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
moves AS (
SELECT d,
100 * (px / any(px) OVER (ORDER BY d ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) - 1) AS move_pct
FROM daily
)
SELECT toYear(d) AS year,
count() AS sessions,
countIf(move_pct <= -1) AS days_down_1pct,
countIf(move_pct <= -3) AS days_down_3pct,
round(min(move_pct), 2) AS worst_day_pct
FROM moves
WHERE isFinite(move_pct) AND toYear(d) >= 2016
GROUP BY year
ORDER BY year收盘跌幅达到或超过3%的交易日集中在少数年份,而不是按固定节奏出现。2020出现了其中的16个交易日,最差单日表现为-11.63%;而2017出现了0个交易日。收盘跌幅达到或超过1%的交易日数量,从最平静年份的4个波动至最繁忙年份的65个。最后一行统计截至2026年6月30日的123个交易日,因此只覆盖部分年度。固定的7%总限额按设计适用于平静年份,而其真正的考验出现在剧烈波动年份。即使标的资产从未出现达到这一幅度的单日跌幅,长期期权也可能在一夜之间损失全部权利金,这正是隔夜跳空所描述的机制。
该规则涵盖的内容,以及未涵盖的内容
固定比例规则针对的是最快耗尽账户的失误模式:单笔仓位大到足以造成实质影响。任何一个较小的固定比例都胜过没有固定比例;而容易记住的比例会在压力下得到执行,因为仓位规模通常正是在这种情况下决定的。
该规则未涵盖的大部分细节。它不会根据波动率调整仓位,因此,稳定股票的3%仓位与每日波动为1.83%的股票的3%仓位,会被视为同等规模的下注。它忽略了不同ticker之间的相关性,因此,即使七个仓位都未超过上限,整个投资组合仍可能实质上只是同一笔交易。它没有涉及时间价值衰减:即使价格没有不利变动,平静交易日也会侵蚀多头期权的价值(期权theta介绍了其运作机制)。它也忽略了交易成本;佣金和买卖价差会持续拖累收益,而固定比例上限无法反映这些成本(交易期权的成本列出了具体数据)。此外,该规则还假设最大损失可以确定,但对于卖出无限风险头寸而言,这一假设并不成立。
常见问题
期权交易中的3-5-7规则是什么?
这是一种头寸规模管理惯例:单笔交易的风险敞口不超过账户权益的3%,单一标的的风险敞口不超过5%,所有未平仓头寸合计的风险敞口同时不超过7%。这些数字指最大亏损,而不是投入的资金规模。
3-5-7规则是官方规则或经过验证的规则吗?
不是。它以交易界的经验法则形式流传,但这些具体数字没有公开推导过程,也没有相应研究支持。它所属的更广泛方法是固定比例头寸管理,这一方法已有充分记录;凯利准则则是其正式版本。
3-5-7规则如何应用于买入看涨期权或看跌期权?
买入期权支付的权利金就是最大亏损,因此3%的限制决定了单笔交易可支付的权利金上限。以一个10万美元账户为例,权利金上限为3,000美元;若合约报价为4.50美元,则相当于六张合约。
为什么还要单独设置单一标的5%的限制?
同一只股票上的多个头寸,在该股票大幅波动时会形成同一个风险敞口。在截至2026年6月30日的十二个月内,TSLA有30.4%的交易日涨跌幅达到或超过3%;该标的上的不同合约在这些交易日也会同步波动。
这一规则适用于备兑看涨期权及其他收益型头寸吗?
备兑看涨期权的最大亏损通常是股票头寸价值减去已收取的权利金,往往远高于账户的3%。因此,该上限通常应用于股票头寸,而不是期权部分。备兑看涨期权介绍了收益与亏损的计算方法。
以上每个数字均来自对真实市场数据执行的存储查询。如果您希望在Strasmore终端上使用另一组标的重新运行查询,每个面板都可一键查看其SQL。