← 返回模块
1.4.1.5beta 可读 · 未来付费校验通过内容版本 2026-05-26

保证金、结算与连续合约

1.4.1 · 期货与远期 · 金融与量化投资

周二上午 9:31,一位上海私募 (private fund) 的研究员收到回测平台报警:他过去一年在 IF 上跑的趋势策略「年化收益 23%」突然在拼接连续合约的方法改了之后跌到 11%。两份代码的差别只在一行:从「panama 拼接」换成了「unadjusted 拼接」。同一份策略、同一份数据,换一种拼法收益少了一半——是哪个对、哪个错?这一节把模块剩下的所有「工程细节」讲完:保证金账户的三种数、SPAN 把组合方差打折的逻辑、实物 vs 现金交割的真实坑,以及连续合约拼接的三种主流方法各自带来的偏差。这是从「能在 IF 上下单」走到「能用 IF 数据做诚实回测」的最后一段。

一、保证金的三种数

期货账户上的钱不是一个数,是三个:

  • ​初始保证金​ (initial margin):开仓时按合约规则扣下的一笔钱。中金所 IF 当前按 12% 名义(exchange floor)加经纪商通常 3% 共 15% 估算,IF 当月 3,800 点一手约需 ¥171,000。
  • ​维持保证金​ (maintenance margin):账户必须维持的最低权益水平,通常按交易所 floor 上下浮动,IF 上约 10%。
  • ​变动保证金​ (variation margin):每日盘后按结算价之差现金清算的那笔钱(第 1 节给过公式):
VMt=(FtFt1)nm\text{VM}_t = (F_t - F_{t-1}) \cdot n \cdot m

一段具体序列:账户初始权益 ¥10,000,1 手多单 F0=4,500F_0 = 4{,}500m=¥50m = ¥50/点(单位虚拟)。每张合约初始保证金 ¥5,000、维持 ¥4,000。日 1 结算 4,470:VM = (4,470 − 4,500) × 1 × 50 = −¥1,500,权益降至 ¥8,500。日 2 结算 4,450:再亏 ¥1,000,权益 ¥7,500——比维持 ¥4,000 仍高。日 3 结算 4,480:赚 ¥1,500,权益 ¥9,000。日 4 结算 4,510:再赚 ¥1,500,权益 ¥10,500——超过初始,余裕。整个序列没触发追加保证金,但若日 1 跌到 4,400(损失 ¥5,000),权益降至 ¥5,000 < 维持 ¥4,000 的差额阈值前还没事;进一步跌到 4,380,账户低于 ¥4,000,​​触发追加​ (margin call),必须补回初始水平。

Interactive Widget

该交互组件的正式实现会随课程交互层一起接入。当前 beta 先保留正文、公式和练习内容。

二、组合保证金:SPAN 与中金所的等价方案

SPAN(Standard Portfolio Analysis of Risk)是 CME 的组合保证金引擎;中金所在股指期货上有类似的「投资组合保证金试点」。两套机制的思想都一样:与其按每手收固定保证金,不如按整个组合在一组​​情景网格​ (scenario grid) 下的最坏 P&L 收。

情景网格通常包括 ±x% 的价格冲击(通常 7 档)和 ±y% 的波动率冲击(通常 2 档),共约 16 个组合冲击。引擎在每个情景下重算组合 P&L,取最坏的那个作为保证金需求。

为什么这是好事:日历价差 (calendar spread)——多近月、空远月——两腿 delta 大致抵消,按情景网格算保证金会比两腿分别按 15% 名义收要小得多(常见可省 70%+)。SPAN 的「直觉」就是:投资组合的风险不是腿和,是腿差。压力测试 (stress test) 在更极端区间也按类似思想做。

三、交割:物理 vs 现金

现金交割按指数 SOQ 与开仓价相抵,账户现金加减——IF 属此类。物理交割到期把仓单从空头转给多头——SHFE 铜 (CU) 是典型。

物理交割的关键时点是​​第一通知日​ (first notice day):超过这一天仍持空头会被指派交付,仍持多头会被指派接货。投机账户基本不打算接货,因此在第一通知日前几个交易日就要平仓或滚月。

中金所 IF 是现金交割,没有「第一通知日」麻烦;但平今仓 (close-today) 手续费自 2015 年股灾后被拉高,影响日内调仓与滚月成本,必须计入交易成本 (transaction cost) 与实施差额 (implementation shortfall)。

四、连续合约:把季度到期拼成可回测的时间序列

回测多年策略时,每三个月就要切合约——直接用拼接价会在每个切换点出现「假跳」,破坏 P&L 与信号。三种主流拼接方法:

Interactive Widget

该交互组件的正式实现会随课程交互层一起接入。当前 beta 先保留正文、公式和练习内容。

  • ​Unadjusted(不调整)​​:直接首尾相连,切换点保留原始价差。优点:原始价就是原始价;缺点:每次切换都是一个假跳,趋势策略与持有收益率信号都会被污染。
  • ​Panama(加法回填)​​:在每个切换点把历史序列整段加上 FnewFoldF_{new} - F_{old} 的差,使切换点价格连续。优点:连续;缺点:早期数值可能成负数,且和原始价不再一致。
  • ​Ratio(乘法回填)​​:在每个切换点把历史序列整段乘以 Fnew/FoldF_{new} / F_{old}。优点:连续且数值仍为正、收益率正确;缺点:原始价水平失真。

​panama 适合 P&L 累加​​(绝对差累计正确),​​ratio 适合收益率序列​​(对数差不变),​​unadjusted 一般不推荐​​做策略回测。开场报错的研究员碰到的就是这一坑:unadjusted 把每次滚动的「价格跳」当成真实收益记账。Wind / 通联 数据 等连续合约序列必须显式标注拼接方式。

五、回测的滑点 (slippage) 与日历坑

(1) 滑点:连续合约的成交价不是 mid——应按真实执行价(含交易成本、买卖价差)。(2) 滚月时机:按持仓量切(次月持仓量超过当月时切,open-interest crossover)优于按日历切。(3) 隔夜跳空:切换日两合约价差不是滚月成本——忽略它会把曲线形状误算成 alpha。

六、模块回顾

第 1 节:期货 vs 远期、清算所、合约规格、变动保证金。第 2 节:无套利推 F0=S0e(rq)TF_0 = S_0 e^{(r-q)T}。第 3 节:曲线、contango/backwardation、滚动收益。第 4 节:从最小方差比到 beta 对冲张数。本节:保证金、SPAN、交割、连续合约。连起来即「用期货做风险管理」的完整工作流。

七、练习

Exercise

你长持 2 张 ES 合约 (m=50m = 50,单位货币/点)。每张初始保证金 ¥5,000,维持 ¥4,000。账户起始 ¥11,000。F0=4500F_0 = 4500,次日结算 F1=4470F_1 = 4470。(a) 计算 VM 后的权益;(b) 是否触发追加保证金;(c) 若是,需补回多少?

提示
计算次序:先按 VM=(F1F0)nm\text{VM} = (F_1 - F_0) \cdot n \cdot m 算变动保证金;再用「起始权益 + VM」得权益;最后比较权益与「张数 × 维持保证金」判断是否需追加,若需则补回「张数 × 初始保证金」水平。
提示
VM = (4,470 − 4,500) × 2 × 50 = −¥3,000;权益 = 11,000 − 3,000 = ¥8,000。维持要求 = 2 × 4,000 = ¥8,000。权益 = 维持,刚好不触发追加;若再亏 1 元就触发,需补回 2 × 5,000 − 8,000 = ¥2,000。

八、模块小结与下一步

本模块结束了。本节把保证金账户的三种数、SPAN 组合保证金的情景网格、物理 vs 现金交割的实操坑、以及连续合约 (continuous contract) 拼接的三种方法 (panama / ratio / unadjusted) 都讲清楚了,并把回测里最常见的几类坑(滑点、滚月时机、隔夜跳空)摆出来。下一个自然衔接的模块是 1.4.2 期权基础——把同样的「无套利—对冲」框架扩展到非线性 payoff 的世界,并第一次接触 Black-Scholes。