最近我在整理自己的 ETF 期权持仓时,发现一个挺有意思的问题。

我原本以为期权交易最重要的是判断方向,比如看多、看空、震荡,或者选择用什么价差结构。但真正开始写程序整理账户后,我发现很多钱和精力其实消耗在更细碎的地方:有些组合快到期了还要不要继续拿着,有些合约在不同组合里一买一卖互相抵消,有些组合如果拆得太猛,中间还可能先把保证金顶上去。

这些问题单独看都不大,但加在一起就很烦。它们不一定会让你亏很多钱,却会让账户变得越来越难看懂,也让之后的交易越来越别扭。

所以这篇文章不是想讲一个很高深的期权理论,而是记录我自己怎么把这些持仓理顺。大概包括三件事:

  1. 快到期的实值价差,赚得差不多了要不要先平掉;
  2. 不同组合里重复出现的合约,能不能先互相抵掉;
  3. 15:00 到 15:15 这段时间,怎么用来整理组合。

本文仅记录我自己的交易系统和思路,不构成任何投资建议。

一、组合看起来很多,其实可能有重复腿

平时我们说持仓,通常会说自己做了一个牛市认购价差,或者做了一个熊市认沽价差。这个说法没问题,因为从交易想法上看,确实是一组策略。

但到了交易所和券商系统里,事情会更细一点。所谓组合,最终还是由一张张具体合约拼起来的。

以牛市认购价差为例,可以简单理解为:

1
2
买入较低执行价认购期权
卖出较高执行价认购期权

这两条腿登记成组合后,系统就会按组合策略来算风险和保证金。问题是,如果账户里有很多不同时间建立的价差,相同合约就可能在不同组合里反复出现。

比如一个组合里,你卖出了 K2 认购;另一个组合里,你又买入了 K2 认购。单看组合编号,它们是两个不同策略;但把账户摊开来看,K2 这张合约其实已经一买一卖对上了。

1
2
3
4
5
组合 A:买入 K1 认购 + 卖出 K2 认购
组合 B:买入 K2 认购 + 卖出 K3 认购
^
|
K2 的义务仓与权利仓相反

如果标的、到期月份、执行价、认购/认沽类型都完全一样,那么解除组合后,相反方向的持仓就可以做同合约轧差。

这里可以先不用把“轧差”想得太复杂。它不是什么新的赚钱方式,只是把账户里已经互相抵消的部分先合并掉。就像你记账时,发现同一个人既欠你 100,你又欠他 80,那最后真正需要处理的其实只有 20。

所以我后来会把这两件事分开看:

  • 组合认定决定交易所如何识别策略以及如何计算保证金;
  • 净风险取决于所有具体合约合并后的净数量。

组合数量很多,不一定代表真实风险也同样大。有时候只是账户里有很多重复腿还没被整理。

二、赚得差不多的价差,要不要先收掉

价差策略有一个好处,就是最大收益相对明确。

比如牛市认购价差,到期时最大价值就是两个执行价之间的差:

1
最大价差 = 较高执行价 - 较低执行价

但真正判断要不要平仓时,我不会直接看最新成交价。因为最新成交价只是刚才有人在那里成交过,不代表我现在也能按这个价格成交。

更现实一点的算法是:我要卖出权利仓,就看买一价;我要买回义务仓,就看卖一价。这样算出来的结果更接近“现在马上平仓大概能拿到多少”。

1
2
3
当前可平仓价差 = 权利腿买一价 - 义务腿卖一价

价差实现率 = 当前可平仓价差 / 到期最大价差

下面是我账户在 2026 年 6 月 16 日 15:00 的一次真实估值。组合编号只保留尾号,不影响理解。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
到期日:2026-06-24

+------------------+----------+------------+----------+----------+--------+
| 组合类型 | 组合尾号 | 当前价差 | 最大价差 | 实现率 | 平仓 |
+------------------+----------+------------+----------+----------+--------+
| 认购牛市价差 | 0072256 | 0.0449 | 0.0500 | 89.80% | 否 |
| 认购牛市价差 | 0072199 | 0.0449 | 0.0500 | 89.80% | 否 |
| 认购牛市价差 | 0072240 | 0.0449 | 0.0500 | 89.80% | 否 |
| 认购牛市价差 | 0053367 | 0.0449 | 0.0500 | 89.80% | 否 |
| 认购牛市价差 | 0004800 | 0.0449 | 0.0500 | 89.80% | 否 |
| 认购牛市价差 | 0012846 | 0.0449 | 0.0500 | 89.80% | 否 |
| 认购牛市价差 | 0000622 | 0.1337 | 0.1500 | 89.13% | 否 |
| 认购牛市价差 | 0072122 | 0.0440 | 0.0500 | 88.00% | 否 |
| 认购牛市价差 | 0072099 | 0.0440 | 0.0500 | 88.00% | 否 |
| 认购牛市价差 | 0026244 | 0.0440 | 0.0500 | 88.00% | 否 |
| 认购牛市价差 | 0008419 | 0.0427 | 0.0500 | 85.40% | 否 |
| 认购牛市价差 | 0008826 | 0.0352 | 0.0500 | 70.40% | 否 |
| 认购牛市价差 | 0000864 | 0.1056 | 0.1500 | 70.40% | 否 |
| 认购牛市价差 | 0030204 | 0.0271 | 0.0500 | 54.20% | 否 |
| 认沽熊市价差 | 0012039 | 0.0221 | 0.0500 | 44.20% | 否 |
| 认沽熊市价差 | 0001244 | 0.0221 | 0.0500 | 44.20% | 否 |
| 认沽熊市价差 | 0009847 | 0.0143 | 0.0500 | 28.60% | 否 |
+------------------+----------+------------+----------+----------+--------+

动态关注线:92.0%
动态平仓线:94.4%
立即平仓线:97.0%

这些组合当时还没到我的动态平仓线。不过,有几组深度实值牛市价差已经实现了接近 90% 的最大价值。

这个时候继续拿着,并不是没有道理,毕竟理论上还有最后一段收益可以吃。但我会提醒自己,这最后 10% 并不是白送的,后面还要面对这些问题:

  • 标的在到期前重新跌回执行价附近;
  • 临近到期时盘口价差扩大;
  • 行权所需的资金或 ETF 份额安排;
  • 组合腿可用数量、行权申报或券商风控带来的操作风险。

所以,提前平仓不等于我突然看空了。它只是说明这笔交易的大部分收益已经拿到了,剩下那点钱,可能不值得再占用同样的注意力和风险预算。

这个阈值也不应该永远固定。离到期越近,剩余时间越少,我就会更严格一些;如果离到期还比较远,就没必要因为短期报价跳动频繁折腾。

三、轧差不是赚钱,而是少折腾

假设我解除几组组合后,同一个合约下面出现了这样的持仓:

1
2
3
4
5
6
7
+------------+--------+--------+----------+----------+----------+
| 合约 | 权利仓 | 义务仓 | 可轧差量 | 净权利仓 | 净义务仓 |
+------------+--------+--------+----------+----------+----------+
| 合约 A | 12 | 8 | 8 | 4 | 0 |
| 合约 B | 5 | 5 | 5 | 0 | 0 |
| 合约 C | 3 | 7 | 3 | 0 | 4 |
+------------+--------+--------+----------+----------+----------+

这时做同合约轧差,并不会凭空创造利润,也不会把过去已经付掉的手续费变回来。它真正减少的是之后的麻烦:

  • 不必再分别平掉已经互相抵消的两侧持仓;
  • 减少合约数量,使净 Delta、Gamma 和到期风险更容易观察;
  • 减少重复腿占用的操作额度;
  • 为重新构建更清晰的价差组合创造条件。

这里有个细节很重要:只有完全相同的合约才能轧差。只是执行价一样还不够,标的、到期月份、认购还是认沽都要一致。备兑仓、不可用持仓、已经被其它业务锁住的仓位,也不能随便混在一起处理。

四、15:00 之后不是继续交易,而是整理书桌

A 股 ETF 期权在 15:00 后不能继续普通买卖。但 15:00 到 15:15 这段时间还挺有用,因为交易所仍然接受规定范围内的组合策略申报。

我更愿意把这 15 分钟理解成整理书桌的时间。你不能再买新的东西回来,也不能因为收盘后的消息临时开一个新方向,但你可以把桌面上已经有的东西重新摆一摆。

这段时间可以做的是:

  • 将符合条件的单腿持仓构建为交易所认可的组合;
  • 解除已有组合,使其中的腿恢复为单腿持仓;
  • 对解除后出现的相同合约相反持仓进行轧差;
  • 将轧差后的净持仓重新组织为更清晰的组合。

这段时间不能做的是:

  • 继续买卖期权并改变实际成交仓位;
  • 根据收盘后的消息建立新的市场方向;
  • 把组合申报当作盘后交易。

所以我觉得更准确的理解是:

15:00 至 15:15 不是盘后交易时间,而是盘后持仓整理时间。

它改变的是持仓在交易所系统里的组合关系和保证金认定,不改变已经成交出来的真实敞口。

五、拆组合也要讲顺序

组合整理最容易误判的地方,是只看最终结果。

比如最终看起来保证金会下降,但在执行过程中,你得先把原来的组合解除。组合一解除,里面的义务腿可能会先变成单腿义务仓。只有后面完成轧差或者重新构建组合后,保证金才会降下来。

整个过程可能经历三个状态:

1
2
3
4
5
6
7
8
状态一:当前组合状态
交易所按组合策略计算保证金

状态二:解除组合后的瞬时状态
义务腿可能按单腿义务仓计算保证金

状态三:轧差和重建完成后的状态
相反持仓被抵消,剩余腿重新构建组合

也就是说,最后变好,不代表中间不会先变糟。如果一次性把所有组合都拆开,账户可能在轧差发生前,短暂暴露出很多单腿义务仓。

所以整理顺序很重要。我会优先看这些问题:

  1. 哪个组合解除后能立即产生最多的同合约轧差;
  2. 哪些释放出来的腿可以马上重建组合;
  3. 哪些组合解除后会形成暂时无法保护的义务仓;
  4. 当前可用保证金能否覆盖整理过程中的峰值。

更稳妥的做法通常不是“全部解除,再统一重建”,而是小步交错执行:

1
2
解除一组 -> 产生轧差 -> 立即重建可用组合
解除下一组 -> 继续轧差 -> 再次重建

这样做不是为了寻找新的行情机会,只是为了控制整理过程中短暂出现的裸露义务仓和保证金占用。

我在交易系统里把这个过程做成了一个 dry-run 计划。它先只读取券商侧已经存在的组合持仓,不把普通单腿持仓混进来;然后按到期月份、认购/认沽方向和行权价段生成整理顺序。

这个计划要回答的不是“今天行情怎么看”,而是一个更具体的问题:

如果只整理当前这些组合,账户应该先解除哪几组,解除后能不能立刻闭合成新的组合,整理过程中的保证金峰值是否可承受?

这里还有一个很容易看错的字段。账户里的“可用资金”,不一定等于我可以拿来拆组合的保证金空间。

对我使用的 QMT 期权账户而言,整理计划更关注的是释放保证金预算,也就是券商返回的原始保证金相关字段,而不是那个看起来更大的现金可用余额。

1
2
Available Cash:       132,582.44
Release Mgn Budget: 7,271.96

如果用前者作为约束,计划会显得很乐观。但真实执行时,刚解除组合后的短暂义务仓,可能先被保证金卡住。

所以我宁愿让计划保守一些:每一步都按“刚解除后”和“立即重建后”分别估算占用。只要重建后的额外占用仍然超过释放保证金预算,这一步就不进入可执行列表。

一个典型的整理单元,大概可以理解为这样:

1
2
3
Release  2 张 1.70-1.75 认购牛市价差
Release 2 张 1.75-1.80 认购牛市价差
Create 2 张 1.70-1.80 认购牛市价差

前两笔解除后,1.75 认购合约同时出现权利仓和义务仓,可以在这个整理单元内部互相抵消。剩下的净腿是:

1
2
Long   2 张 1.70 认购
Short 2 张 1.80 认购

然后就可以重建为更宽的一组 1.70-1.80 价差。

这个动作没有创造新的行情敞口。它只是把原来两段相邻价差折叠成一段更清楚的价差,把中间重复的 1.75 腿拿掉。

认沽熊市价差也可以做类似整理,只是方向反过来。认购价差通常是低行权价权利仓配高行权价义务仓;认沽价差通常是高行权价权利仓配低行权价义务仓。

无论认购还是认沽,我都不希望程序为了“看起来能多处理一点”去乱拼腿。整理计划应该只在同一到期月份、同一合约类型里面闭合,不跨月份,也不跳过中间行权价段硬凑。

这也是我后来接受“慢批次整理”的原因。

账户里如果有很多相邻价差,最诱人的想法当然是一次性把所有组合拆开,再统一轧差重建。听起来很优雅,但真实账户不太适合这么粗暴。更稳的方式是小块推进:

1
2
3
今天处理 1-2 个行权价段
每个整理单元都包含 release 和 create
下一轮再基于券商侧最新持仓重新计算

这样即使某一天保证金预算不足,也只是停在某个行权价段,而不是留下大量已经解除、却还没有重新组合的裸义务仓。

六、自动生成计划,不代表马上执行

自动化工具最容易让人误解的一点,是把“能生成计划”误认为“应该执行”。

我自己写交易系统时也经常遇到这个问题。程序可以很快生成一堆 release/create 操作,但这不代表它们都应该进入真实交易。对我来说,一个整理计划至少要把三件事讲清楚。

第一是范围。它要明确自己只处理哪个到期月份、哪个标的、哪些组合持仓。普通单腿仓位、备兑仓、不可用持仓和其它业务锁定状态,不应该被程序悄悄纳入组合整理。

第二是保证金口径。最终轧差后的风险可能很低,但真正决定能不能执行的,是中间过程里保证金会不会先爆一下。所以计划里我会同时看三个数:

1
2
3
Current Margin
After Release Gross Short Margin
After Same-Contract Netting

它们分别对应当前组合占用、全部解除后裸义务仓的压力,以及同合约轧差后的参考结果。

真正决定执行顺序的,不是最后那个最好看的数字,而是每个 release/create 小单元在中间状态会不会越过预算。

第三是闭合性。一个整理单元如果只有解除,没有重建,我通常不会让它进入自动任务;如果解除后又原样创建,也没有整理意义。

比较理想的整理单元应该是自包含的:它释放自己的组合腿,在内部形成同合约对冲,再用剩下的净腿创建新的组合。

1
2
3
4
Released Legs
Same-Contract Hedge Inside This Trade
Created Combination Legs Consumed
Residual Released Legs After Create

这几张表比“最终会省多少保证金”更重要。它们能说明计划有没有借用其它批次的腿,有没有把数量配错,有没有留下不该留下的净义务仓。

七、到期前我真正会看什么

临近到期时,我现在更关心下面这张检查表,而不是单纯猜标的还会不会上涨:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
+----------------------------------+--------------------------------------+
| 检查项 | 需要回答的问题 |
+----------------------------------+--------------------------------------+
| 价差实现率 | 最大价值已经实现了多少? |
| 剩余收益 | 剩余价差能否覆盖继续持有的风险? |
| 可成交价格 | 使用买一/卖一后还能实现多少价值? |
| 可用持仓 | 是否存在被冻结或不可平的组合腿? |
| 重复合约 | 不同组合之间能否进行同合约轧差? |
| 解除后保证金 | 中间状态会不会产生保证金峰值? |
| 整理单元 | 每个 release 是否能对应到 create? |
| 预算字段 | 使用的是现金可用还是释放保证金预算? |
| 行权资金与证券 | 是否准备了足够资金或 ETF 份额? |
| 组合申报 | 收盘后是否仍需构建或解除组合? |
+----------------------------------+--------------------------------------+

期权交易里很多损耗,并不完全来自方向判断,而是来自持仓没有及时整理。

深度实值价差该兑现时兑现,重复合约能轧差时轧差,组合保证金不要乱占,15:00 后那 15 分钟也别浪费掉。这些事情听起来不如判断行情刺激,但它们会决定策略收益最后能不能比较舒服地落袋。

数据与规则说明

  • 文中组合估值来自账户在 2026 年 6 月 16 日 15:00 的实际分析记录;报价和阈值只代表当时状态。
  • 示例轧差表用于解释机制,不代表账户在某一时点的实际腿级持仓。
  • 文中的组合整理流程来自我自己的交易系统 dry-run 计划设计,重点是解释持仓整理口径,不代表券商终端一定支持同样的自动化执行。
  • 本文讨论的是沪深交易所 A 股 ETF 期权的一般业务机制。组合类型、申报时间、保证金认定、行权和券商终端支持情况,应以交易所及开户券商的最新规则为准。
  • 本文仅记录交易与持仓管理方法,不构成投资建议。