期权回测应把到期视为合约事件,而不是按最后显示的报价在最后一刻交易。合约可能以特别指数结算、在超过某个阈值时自动行权、交割股票,或者在标的市场收盘前停止交易。这些细节决定了持仓会变成什么,以及资金如何流动。
我会先查看交易所的到期规则,再梳理合约从最后可交易时刻到结算计算、以及后续交割的全过程。在此之前,屏幕上的报价有助于为未平仓头寸估值,但它并不决定到期收益。
期权会在停止交易时到期吗?
通常,交易截止和到期是两个不同的事件。期权可能已经停止交易,但标的仍在波动。例如,欧式现金结算指数期权可能采用根据指定开盘竞价计算的官方结算值。期权最后一笔交易可能早了数小时,且当时的指数水平也可能不同。
这种时间差会给持仓跨过截止时刻的人带来风险。若标的之后穿越行权价,期权本身虽已无法交易,其结算价值仍可能发生变化。若回测一律在标的常规交易时段收盘时平仓,就可能遗漏这部分风险敞口。
| 合约规则 | 需要建模的内容 | 常见但不可靠的简化处理 |
|---|---|---|
| 最后交易时间 | 期权订单仍可成交的时间 | 假设期权会一直交易到标的收盘 |
| 结算参考值 | 用于计算收益的指数、竞价结果或定盘价 | 用期权最后报价或相近时点的现货收盘价替代 |
| 行权方式 | 自动行权、阈值,以及是否存在反向指示窗口 | 对所有价内期权一概行权 |
| 交割 | 现金支付,或因行权而产生的股票/期货头寸 | 删除到期期权,却不记录替代它的头寸或现金流 |
现金结算期权的到期价值如何计算?
使用合约规定的官方结算参考值和乘数。看涨期权每份合约的总收益为 max(settlement value − strike, 0) × multiplier。看跌期权的收益为 max(strike − settlement value, 0) × multiplier。之后再按合约约定处理币种和现金流。
假设一份现金结算指数看涨期权的行权价为 5,000,结算值为 5,012.4,乘数为每个指数点 $100。其每份合约的总收益为 $1,240。如果回测改用 5,009 的最后成交值,记录的收益就只有 $900,未计费用前相差 $340。结算值的微小偏差,也可能超过策略通常单笔交易的利润。
将官方结算值作为单独的数据字段保存。它可能在期权最后一笔可交易报价发布后才公布,也可能采用不同的计算时间窗口。如果历史数据中只有指数收盘值,请标明这是一种近似,并测试结果对合理结算偏差的敏感程度。
行权后交割股票会带来哪些变化?
行权可能产生股票或期货头寸。价内看涨期权可能转为按行权价买入的多头股票;价内看跌期权可能转为按行权价卖出的空头股票。回测随后需要延续这些头寸,并计入市场风险敞口、融资成本以及平仓费用。
在临近派息日,或者策略无法持有交割资产时,这种后续处理尤为重要。部分美式期权可以提前行权,也可能在到期前被指派。因此,如果模型假设每份期权都持有到最后一天,就可能在重要事件发生时持有错误的头寸。
期权只略微价内时,我该行权吗?
遵循合约的自动行权阈值和截止规则。交易场所可能会对超过规定金额的期权自动行权,同时允许在限定窗口内提交指示来覆盖默认处理。如果策略无法提交此类指示,就不应在模型中悄悄假设它可以。
临近阈值时,标的价格可能在最后一笔交易与行权决策之间发生变化。记录决定是否行权所依据的价格或结算参考值、交易场所的阈值,以及阈值两侧分别会发生什么。如果来源资料不足以还原当时的选择,就明确写出假设,并分别测试两种结果。这是整洁的单一权益曲线可能掩盖复杂操作规则的一个场景。
考虑到期处理的回测应保存哪些数据?
按生效日期为合约条款保留版本记录。至少应保存最后交易时间戳、到期时间戳、结算方式、结算参考值及其发布时间、乘数、行权方式、自动行权阈值和交割规则。每笔到期现金流或交割产生的头寸,都应关联到对应的合约和结算记录。
然后手动检查几个到期案例:一个明显价内、一个价外、还有一个接近行权阈值。将模型中的现金流与交易场所的合约规格和结算记录核对。如果这三个案例都处理正确,你就更有依据相信其余到期历史的结果。
← 全部文章


