📊 中国股指期权量化交易系统设计白皮书
标的:沪深300(IO)· 上证50(HO)· 中证1000(MO)· 中证500(未上市沿用IF+ETF期权替代)
一、系统整体架构
1.1 系统层次结构
┌─────────────────────────────────────────────────────┐ │ 第1层:信号生成层 │ │ ├─ 趋势信号(均线/通道/动量) │ │ ├─ 波动率信号(IV/HV偏度/期限结构) │ │ ├─ 资金流信号(北向/主力/基差) │ │ └─ 宏观信号(政策/事件/日历效应) │ ├─────────────────────────────────────────────────────┤ │ 第2层:策略决策层 │ │ ├─ 方向性策略:单腿(买Call/Put) │ │ ├─ 价差策略:垂直/水平/对角 │ │ ├─ 波动率策略:跨式/宽跨式/蝶式/鹰式 │ │ └─ 组合策略:备兑/保护性看跌/双卖 │ ├─────────────────────────────────────────────────────┤ │ 第3层:风控执行层 │ │ ├─ 仓位管理(凯利公式/固定比例/波动率适配) │ │ ├─ 止损机制(ATR动态/固定点/希腊字母监控) │ │ ├─ 移仓管理(Gamma/Theta/TIME Decay) │ │ └─ 压力测试(极端行情/黑天鹅模拟) │ ├─────────────────────────────────────────────────────┤ │ 第4层:数据与执行层 │ │ ├─ 行情数据(Tick/分钟/日线 + IV曲面) │ │ ├─ 交易执行(CTP接口/量化平台/QMT/PTrade) │ │ └─ 回测引擎(事件驱动/向量化/蒙特卡洛) │ └─────────────────────────────────────────────────────┘
1.2 四大核心交易方向
| 方向 | 核心策略 | 适用环境 | 风险特征 |
|---|---|---|---|
| 🟢 做多 | 买入Call / 牛市价差 / 备兑开仓 | 趋势上涨、低波转高波 | 有限亏损(权利金) |
| 🔴 做空 | 买入Put / 熊市价差 / 保护性看跌 | 趋势下跌、高波持续 | 有限亏损(权利金) |
| 🟠 做多波动率 | 买入跨式/宽跨式 | 大涨大跌、突破行情、事件驱动 | 双倍时间衰减 |
| 🔵 做空波动率 | 卖出跨式/宽跨式/蝶式 | 震荡行情、IV高位回归 | 理论上无限风险⚠️ |
二、三大标的特性分析
2.1 标的波动率特征对比
| 指标 | 上证50 (HO) | 沪深300 (IO) | 中证1000 (MO) |
|---|---|---|---|
| 风格 | 大盘蓝筹(金融+消费) | 中大盘核心资产 | 小盘成长(科技+医药) |
| 20日HV中位数 | ~20% | ~20% | ~26% |
| 20日HV 90分位 | ~33% | ~33% | ~48% |
| 20日HV 10分位 | ~12% | ~12% | ~18% |
| IV范围 | 13%~35% | 13%~35% | 20%~48% |
| IV-HV溢价 | 约2%~3% | 约3%~5% | 约4%~6% |
| 合约乘数 | 100元/点 | 100元/点(IO)/ 10000份(ETF) | 100元/点 |
| 期限结构 | 正常正挂(contango) | 正挂为主 | 更扁平的正挂 |
| 适合策略 | 双卖、备兑、保护性看跌 | 双卖、价差、Gamma Scalping | 波动率买入、趋势跟踪 |
- 上证50/沪深300:波动率低且稳定 → 做空波动率(双卖)是主要盈利来源
- 中证1000:波动率高且波动大 → 做多波动率+趋势方向是重点
- 50和300的IV中位数约20%,1000的IV中位数约26%,差值约6%相对稳定
2.2 合约规格速查
| 品种 | 代码 | 乘数 | 最小变动 | 行权价间距 | 合约月份 |
|---|---|---|---|---|---|
| 上证50ETF期权 | HO(510050) | 10000份 | 0.0001元 | 0.05元 | 当月/下月/下季/隔季 |
| 沪深300ETF期权 | IO(510300/159919) | 10000份 | 0.0001元 | 0.05/0.1元 | 当月/下月/下季/隔季 |
| 沪深300股指期权 | IO | 100元/点 | 0.2点 | 50/100点 | 当月/下2月/3/6/9/12月 |
| 上证50股指期权 | HO | 100元/点 | 0.2点 | 50/100点 | 当月/下2月/3/6/9/12月 |
| 中证1000股指期权 | MO | 100元/点 | 0.2点 | 25/50/100点 | 当月/下2月/3/6/9/12月 |
三、信号指标体系(详细设计)
3.1 趋势动量信号
| 信号名称 | 计算方法 | 参数 | 信号含义 |
|---|---|---|---|
| MA趋势 | 收盘价在MA上方/下方 | MA20/MA60/MA120 | 多周期共振确认方向 |
| MACD | DIF-DEA-MACD柱 | 12/26/9 | 金叉买入/死叉卖出/底顶背离 |
| RSI(6日) | 相对强弱指标 | 周期6/14 | RSI<30超卖买入/>70超买卖出 |
| 动量因子 | close[t] - close[t-N] | N=5/10/20 | 正动量偏多/负动量偏空 |
| 布林带 | MA±k·σ | 20/2 | 碰上下轨回归/突破确认趋势 |
| K线形态 | 吞没/十字星/三只乌鸦等 | — | 短周期反转确认 |
3.2 波动率信号(期权专用核心信号)
| 信号名称 | 计算方式 | 交易规则 |
|---|---|---|
| IV百分位 | 当前IV在历史IV中的分位数 | >80%→卖波动率;<20%→买波动率 |
| IV-HV价差 | IV - 20日HV | 价差>8%→IV高估卖;价差<0%→IV低估买 |
| 波动率偏度 | 虚值Put IV - 虚值Call IV | 偏度扩大→市场恐慌加剧→考虑买Put保护 |
| 波动率期限结构 | 近月IV - 远月IV | 正挂→卖近月买远月;倒挂→买近月卖远月 |
| 波动率锥 | 不同周期HV的分位数分布 | 短期HV突破长期HV上轨→趋势爆发 |
| Gamma风险 | 平值附近Gamma集中度 | Gamma峰值提示临近行权价的大幅波动风险 |
3.3 资金流信号
| 信号名称 | 说明 | 做多条件 | 做空条件 |
|---|---|---|---|
| 北向资金 | 沪/深股通净买入 | 连续3日净流入>50亿 | 连续3日净流出>50亿 |
| 主力资金 | 大单净流入/流出 | 大单净流入>总成交10% | 大单净流出>总成交10% |
| 期指基差 | 期货-现货价差 | 升水扩大→情绪乐观 | 贴水加深→恐慌情绪 |
| 期权PCR | Put/Call成交量比 | PCR<0.6→过度乐观 | PCR>1.0→过度悲观 |
3.4 信号衰减函数
复合信号得分 = Σ(每个信号得分 × 信号权重 × 信号置信度)
每个信号得分在[-1, +1]区间,权重根据近期回测效果动态调整。
关键规则:
- 趋势信号权重 + 波动率信号权重 + 资金流信号权重 = 1.0
- 在趋势明确时:趋势权重占60%,波动率20%,资金流20%
- 在震荡市中:波动率权重提升至50%,趋势20%,资金流30%
- 复合得分 > 0.3 → 强烈做多;0.1~0.3 → 温和做多
- 复合得分 < -0.3 → 强烈做空;-0.1~-0.3 → 温和做空
- 复合得分在[-0.1, 0.1] → 采用波动率策略(不做方向)
四、十大核心期权策略(详细设计)
策略1:趋势跟踪 + 买入实值Call/Put
适用条件:信号复合得分 > 0.3(做多)或 < -0.3(做空)
合约选择:实值一档(Delta≈0.7~0.8),近月合约(15~30天到期)
入场规则:信号确认后次日开盘入场
止损规则:
- ATR止损:止损价 = 入场价 - 2.0 × ATR(14)(做多),入场价 + 2.0 × ATR(14)(做空)
- 固定点止损:股指期权:50点;ETF期权:0.2元
- 时间止损:持仓超过10个交易日未盈利超ATR的50%则平仓
- 希腊字母止损:Theta衰减超过权利金的5%/日,或Gamma变为负值
移仓规则:到期前7天平仓,移仓至下个月
策略2:牛市/熊市垂直价差
适用条件:信号温和偏向(0.1~0.3或-0.1~-0.3)
构建方式:
- 牛市Call价差:买低行权价Call + 卖高行权价Call(同一到期月)
- 熊市Put价差:买高行权价Put + 卖低行权价Put(同一到期月)
行权价选择:买入腿选平值或轻度实值,卖出腿选虚值一档或两档
最大盈利:宽度 - 净权利金支出
最大亏损:净权利金支出
收益率要求:最大亏损/最大盈利 < 1:2 才入场
止损:价格反向突破买入腿行权价 + 0.5×ATR
策略3:买入跨式/宽跨式(做多波动率)
适用条件:IV处于历史低分位(<20%)+ 预期有大行情(财报/政策/事件)
构建方式:
- 跨式:买入平值Call + 买入平值Put(同一到期月)
- 宽跨式:买入虚值一档Call + 买入虚值一档Put(成本更低)
合约选择:到期日15~30天(Theta衰减可控)
盈亏平衡点:行权价 ± (Call权利金 + Put权利金)
止损:
- IV下降至入场IV的80% → 平仓
- 总权利金亏损超60% → 平仓
- Theta衰减超过权利金的3%/日 → 减仓
中证1000特别适用:MO的波动率高、爆发力强,买入宽跨式胜率高于50/300
策略4:卖出跨式/宽跨式(做空波动率·双卖)
⭐ 这是最关键、最常用的策略!
适用条件:IV处于历史高分位(>60%)+ 市场处于震荡/区间整理
标的偏好:上证50/沪深300 > 中证1000(50/300波动更稳定)
构建方式:
- 卖出虚值两档Call + 卖出虚值两档Put(同一到期月)
- Delta中性:Call和Put的名义Delta尽量平衡
合约选择:到期日7~14天(靠近到期Theta衰减最快,风险最低)
保证金计算(股指期权):
认购义务仓保证金 = (前结算价 + max(12%×前收盘价-虚值, 7%×前收盘价)) × 合约乘数 认沽义务仓保证金 = min(前结算价 + max(12%×前收盘价-虚值, 7%×前收盘价), 行权价) × 合约乘数
止损规则(多层防护):
- 价格止损:标的突破卖出Call/Put的行权价 → 立即平仓该侧
- 波动率止损:IV上升超过入场IV的30% → 双平
- Delta止损:组合Delta绝对值 > 3 → 需要调整
- Gamma止损:Gamma太大说明接近平值 → 移仓到更虚值或更远月
- 最大亏损限制:单笔最大亏损不超过初始保证金的30%
移仓规则:到期前2天平仓,移仓至下一周/下月
利润目标:收取权利金的50%~70%后平仓
50/300/1000推荐参数:
- 上证50:卖出虚值4%~6%的Call/Put(约200~300点),权利金约50~80元/手
- 沪深300:卖出虚值3%~5%的Call/Put(约120~200点),权利金约80~150元/手
- 中证1000:卖出虚值5%~7%的Call/Put(约300~500点),权利金约100~200元/手
策略5:备兑开仓(Covered Call)
适用条件:持有ETF现货,预期小幅上涨或震荡
构建方式:持有ETF现货 + 卖出虚值Call
行权价选择:虚值一档或两档(Delta≈0.2~0.3)
每月额外收益:约1%~3%/月(权利金收入)
风险:大幅上涨会限制收益上限,大幅下跌会有现货亏损
策略6:保护性看跌(Protective Put)
适用条件:持有ETF现货,担心短期回调
构建方式:持有ETF现货 + 买入虚值Put
行权价选择:虚值一档(对标的价格5%~8%的保护)
成本:相当于给持仓买保险,权利金约1%~3%/月
策略7:蝶式价差(Butterfly)
适用条件:极度看平后市,预期窄幅震荡
构建方式:买低行权价 + 卖2×中行权价 + 买高行权价(同一到期月)
行权价间距:通常2~3个档位
优势:风险和成本极低,适合IV高位时做空波动率
策略8:鹰式价差(Condor)
适用条件:与蝶式类似,但盈利区间更宽
构建方式:买低+卖中低+卖中高+买高(4个不同行权价)
优势:比蝶式有更宽的盈利区间,容错率更高
适合:波动率回归行情(IV从高位回落)
策略9:日历价差(Calendar Spread)
适用条件:近远月IV存在明显价差(期限结构交易)
构建方式:卖近月Call/Put + 买远月Call/Put(同一行权价)
盈利来源:近月Theta衰减快于远月
适用品种:50/300/1000皆可
策略10:Gamma Scalping(伽马剥头皮)
适用条件:波动率被低估,预期将有大幅波动但方向不确定
构建方式:买入平值Call或Put,动态做Delta对冲
操作:
- 买入平值期权后,用标的期货/ETF进行Delta中性对冲
- 标的上涨 → Call盈利增加 → 卖出一部分标的降Delta
- 标的下跌 → Call亏损 → 买入标的补Delta
- 每次对冲都能锁定一小部分Gamma收益
适合:中证1000(高波动率,Gamma收益更大)
风险:对冲频率越高手续费越高;震荡市Theta会吃掉利润
五、止损机制设计(详细)
5.1 ATR动态止损 vs 固定止损 详细对比
| 对比维度 | 固定百分比止损 | ATR动态止损 | 推荐 |
|---|---|---|---|
| 原理 | 固定比例(如跌3%止损) | 入场价 ± N×ATR | ATR ✅ |
| 波动适应性 | 不适用,高波动容易误触发 | 自适应,波动大放宽,波动小收紧 | ATR ✅ |
| 误判率 | 高(尤其高波动标的) | 低 | ATR ✅ |
| 实现复杂度 | 简单 | 中等 | — |
| 跨品种适用 | 需要为每个品种调参数 | 自动适配 | ATR ✅ |
| 回撤控制 | 差 | 好(减少14.7%最大回撤) | ATR ✅ |
5.2 各标的推荐ATR参数
| 标的 | ATR周期 | 做多止损倍数 | 做空止损倍数 | ATR均值(点) | 止损幅度(点) |
|---|---|---|---|---|---|
| 上证50 | 14 | 2.0 | 2.0 | ~35 | ~70 |
| 沪深300 | 14 | 2.0 | 2.0 | ~40 | ~80 |
| 中证1000 | 14 | 2.5 | 2.5 | ~65 | ~160 |
5.3 多层次止损体系
第一层:价格止损(ATR动态)
止损价 = max(入场价 - N×ATR, 持仓最高价 - N×ATR) ← 移动止损(Trailing Stop)
第二层:希腊字母止损
- Gamma风险:组合Gamma > 账户净值的0.5% → 减仓
- Theta风险:每日Theta亏损 > 账户净值的0.2% → 减仓
- Vega风险:IV每上升1%,组合亏损 > 账户净值的0.3% → 平仓
第三层:时间止损
- 开仓后5日内盈利未达目标的50% → 减仓50%
- 开仓后10日内未触及目标 → 平仓
- 到期前3日必须平仓(最后一个交易日风险极大)
第四层:账户风控(硬性)
- 单策略最大亏损 ≤ 总资金的5%
- 总敞口(所有策略的保证金总和)≤ 总资金的60%
- 连续亏损3笔 → 暂停交易24小时(风控冷静期)
- 周最大回撤超过10% → 全仓清空复盘
六、仓位管理
6.1 凯利公式仓位
凯利比例 f* = (bp - q) / b
其中:
- b = 盈亏比(平均盈利/平均亏损)
- p = 胜率
- q = 1 - p(败率)
推荐仓位调整:
- 实际仓位 = 凯利比例 × 安全系数(0.25~0.5)
- 策略预期胜率60%+盈亏比2:1 → 凯利=40% → 实际用10%~20%
- 策略预期胜率50%+盈亏比3:1 → 凯利=33% → 实际用8%~16%
6.2 波动率适配仓位
头寸规模 = (账户风险额度) / (ATR × 合约乘数)
举例:
- 账户100万,单笔风险1%(1万元)
- 中证1000 ATR=65点,合约乘数=100
- 头寸数量 = 10000 / (65 × 100) = 1.5 → 取1手
IV修正因子:
- 当IV处于历史90%分位以上 → 仓位减半
- 当IV处于历史10%分位以下 → 仓位可适当增加1.5倍
七、各标的最佳策略矩阵
| 市场环境 | 上证50 (HO) | 沪深300 (IO) | 中证1000 (MO) |
|---|---|---|---|
| 单边上涨 | 买入虚值一档Call 牛市Call价差 | 买入虚值一档Call Gamma Scalping | 买入平值Call 趋势跟踪 |
| 单边下跌 | 买入虚值一档Put 熊市Put价差 | 买入虚值一档Put 保护Put | 买入平值Put 趋势跟踪 |
| 震荡(IV低) | 卖出宽跨式⭐ (最稳健) | 卖出宽跨式⭐ 蝶式价差 | 买入跨式 (等待突破) |
| 震荡(IV高) | 卖出宽跨式⭐ 鹰式价差 | 卖出宽跨式⭐ 日历价差 | 蝶式/鹰式 (赚IV回归) |
| 大事件前 | 买入宽跨式 | 买入宽跨式 Gamma Scalping | 买入宽跨式⭐ (IV弹性最大) |
1️⃣ 上证50/沪深300双卖(做空波动率) — 最稳定、胜率最高、回撤最小
2️⃣ 中证1000买入宽跨式(做多波动率) — 爆发力强、适合事件驱动
3️⃣ 上证50备兑开仓 — 持有ETF时的增强收益
4️⃣ 沪深300 Gamma Scalping — 高IV预期时的动态交易
八、系统回测框架设计
8.1 回测评估指标
| 指标 | 定义 | 目标值 |
|---|---|---|
| 年化收益率 | 年化复合增长率 | 15%~30% |
| 最大回撤 | 历史净值最高点到最低点的最大跌幅 | ≤15% |
| 夏普比率 | (收益率-无风险利率)/波动率 | ≥1.5 |
| 卡玛比率 | 年化收益率/最大回撤 | ≥2.0 |
| 胜率 | 盈利交易/总交易 | ≥55% |
| 盈亏比 | 平均盈利/平均亏损 | ≥2:1 |
| 日胜率(双卖) | 双卖策略每日盈利比例 | ≥85% |
8.2 回测约束条件
- 交易成本:股指期权 5元/张,ETF期权 3元/张(含交易所+券商)
- 滑点:按期权买卖价差(Bid-Ask Spread)的50%计算
- 保证金:按中金所/上交所实际保证金标准计算
- 流动性约束:不交易日均成交量<100手的合约
- 交易限额:遵守中金所日内开仓限制
- 数据跨度:至少包含一轮完整牛熊周期(2015年至今)
九、Python策略框架(示例代码)
# =================================================== # 期权交易系统 - 核心策略框架 # =================================================== import numpy as np import pandas as pd from datetime import datetime, timedelta # ---------- 1. 信号计算 ---------- def calc_trend_signals(df): """计算趋势动量信号""" df['MA20'] = df['close'].rolling(20).mean() df['MA60'] = df['close'].rolling(60).mean() df['ATR14'] = calc_atr(df, 14) df['RSI14'] = calc_rsi(df['close'], 14) df['MACD'] = calc_macd(df['close']) # 趋势得分 [-1, +1] df['trend_score'] = 0.0 df.loc[df['close'] > df['MA20'], 'trend_score'] += 0.3 df.loc[df['close'] > df['MA60'], 'trend_score'] += 0.3 df.loc[df['RSI14'] > 60, 'trend_score'] += 0.2 df.loc[df['RSI14'] < 40, 'trend_score'] -= 0.2 df.loc[df['MACD'] > 0, 'trend_score'] += 0.2 df.loc[df['MACD'] < 0, 'trend_score'] -= 0.2 return df # ---------- 2. ATR计算 ---------- def calc_atr(df, period=14): high, low, close = df['high'], df['low'], df['close'] tr = pd.concat([ high - low, (high - close.shift()).abs(), (low - close.shift()).abs() ], axis=1).max(axis=1) return tr.rolling(period).mean() # ---------- 3. 双卖策略 ---------- def short_strangle_signal(df, iv_data): """ 卖出宽跨式策略信号 条件:IV处于历史60%分位以上 + 标的处于震荡 """ iv_percentile = iv_data['iv_percentile'] trend_strength = df['trend_score'].abs() if iv_percentile > 0.6 and trend_strength < 0.3: return 'ENTER_SHORT_STRANGLE' elif iv_percentile < 0.3: return 'EXIT_SHORT_STRANGLE' else: return 'HOLD' # ---------- 4. ATR动态止损 ---------- def calc_stop_loss(entry_price, atr, multiplier=2.0, position='long'): """ATR动态止损价""" if position == 'long': return entry_price - multiplier * atr else: return entry_price + multiplier * atr # ---------- 5. 仓位管理 ---------- def calc_position(account_value, risk_pct, atr, multiplier=100): """基于ATR的头寸规模""" risk_amount = account_value * risk_pct position_size = risk_amount / (atr * multiplier) return max(1, int(position_size))
十、系统风险提示与运营建议
🔴 必读风险提示
- 双卖策略风险:看似稳定但极端行情(如2015年股灾、2020年疫情暴跌)下可能出现巨大亏损。必须严格止损且永远不要裸卖极限虚值。
- 流动性风险:远月合约和深度虚值合约流动性差,建议只交易近月和平值附近合约。
- 行权风险:临近到期日,实值期权务必提前平仓或行权,避免被行权造成额外风险。
- 保证金风险:极端行情下保证金会大幅提高,需预留足够资金应对追加保证金。
- 策略周期:所有策略参数需要定期(每季度)重新校准和回测。
✅ 运营建议
- 起步建议:先用10万小资金实盘验证策略3个月,确认有效再加大资金
- 数据源:Wind/Choice/通联数据(IV曲面数据)、Tushare/AkShare(免费替代)
- 执行平台:QMT(国金/中信)、PTrade(华泰)、CTP直连(专业版)
- 回测工具:Python backtrader/vnpy/zipline(开源自建)
- 监控频率:日频检查(双卖盘中需要盯),15分钟检查一次持仓希腊字母
- 复盘频率:每日收盘复盘、每月深度复盘、每季度策略参数优化
📈 祝交易顺利!
本文档由智能量化系统自动生成
⚠️ 投资有风险,入市需谨慎 ⚠️
登录后才能评论哦 ~ 立即登录