2026年十一月4日 · 期权

你的第一个期权回测藏着一个日历问题

你的第一个期权回测藏着一个日历问题

你已经用每日信号跑通了第一个期权策略:当标的收盘价高于其50日均线时买入看涨期权,然后在五个交易时段后退出。你的回测采用了看似合理的价格、费用和仓位规模。问题在于,它把“五个交易时段”当成一段时间,仿佛这五天里每份期权合约都是同一种工具。

在调整信号之前,先为每份合约建立一套日历。期权的到期日、最后交易时间、结算方式和行权规则,决定了何时能观察到它的价格,以及何时还能调整头寸。这些细节可能让一个普通的持有期变成另一笔交易。

你的期权遵循哪一套时钟?

标的可能在期权市场休市时继续交易,而期权也可能在标示的到期日之前就停止交易。对于美国股票期权,常规交易时段通常在美东时间下午4:00结束,但有些产品的收盘时间不同。周五到期的周度期权,也不意味着你可以在周五收盘后提交订单并获得周五的成交。

把你建模的具体产品和交易场所所涉及的时间记下来。将交易时段日历、时区、提前收盘安排和最后交易截止时间与合约数据一并保存。通用的工作日日历会漏掉假日和缩短的交易时段。如果你的数据只用日期标记合约,却没有提供最后交易时间戳,那么你还无法确定回测何时能够退出。

合约细节回测需要什么可能出现的问题
到期产品实际采用的到期惯例持有合约超过最后交易时间
结算实物交割或现金结算到期时凭空生成股票或现金流
行权方式行权可能发生的时间忽略空头期权的提前指派
交易时段可下单的最后时间和交易日历在休市时段或缩短的交易时段内成交

为什么结算方式会改变你的头寸?

假设你的看涨期权在到期时处于实值状态。采用实物交割时,行权可能形成股票头寸:一份标准的美国股票看涨期权通常对应100股,但合约调整可能改变这一数量。如果回测只在到期时删除期权,就漏掉了随后产生的股票敞口和现金变动。如果你原本打算在到期前平仓,模拟订单就必须在合约最后交易时间之前执行。

现金结算的指数期权则有另一种问题。其最终结算值可能根据特殊的开盘或收盘流程计算,而不是依据你在期权历史数据中看到的普通报价。如果策略持仓跨过了这次计算,用标的最近一根K线的收盘价作为结算价,得到的结果可能没有任何账户实际拿到。

如果你做空的是美式期权,提前指派可能会让你在到期前就持有股票。你可能无法仅凭每日期权K线准确推断是否发生了指派。明确写出你的假设,并确保回测和模拟策略采用一致的假设。假设不会提前指派并非中性默认设置,而是一种特定的简化处理。

你的五个交易时段后退出规则应该如何执行?

按期权的交易日历计算交易时段,不要按通用日期计算。每到一个决策时点,确认你持有的具体合约,检查它是否仍可交易,并明确规定:如果计划的退出时间晚于最后交易时间,该怎么办。你可以在前一个交易时段展期,在最后一个可用报价时平仓,或者让合约结算并对结算后形成的资产建模。每一种选择都代表不同的策略。

例如,周一进场后持有五个交易时段,可能跨过周五的到期日。如果持仓是本周到期的期权,按原规则,你可能无法在第五个交易时段退出。把退出提前到周四会改变持有期。展期到下一到期日会更换合约,并增加价差、费用和新的波动率敞口。应将这一选择记录在策略逻辑中,不要任由数据加载器悄悄选取下一个挂牌代码。

至少要维护一份合约台账,记录标的、到期日、行权价、期权类型、乘数、结算类型、行权方式、交易时段日历和最后交易时间戳。也要保存合约调整信息;公司行动可能改变交割内容,却保留一个看起来熟悉的代码。

信任结果之前应该检查什么?

挑选一笔持仓至到期的交易,从进场一直追踪到最终处置。确认每个报价都属于那份合约、退出发生在允许交易的时段内,并且最终现金或标的头寸符合该产品的结算规则。然后检查一个含假日的交易周和一个提前收盘日。日历假设往往会在这些时候暴露问题。

完成这些工作后,你的信号仍可能是不错的研究成果。但现在,这个结果描述的是一笔系统实际上能够持有、平仓或结算的交易。在比较不同期权到期日,或将策略送入模拟交易之前,你需要达到这个标准。

期权回测到期结算数据工程模拟交易
← 全部文章