Options Trading Strategies
0. BS_WhalleyWilmott.py - Whalley-Wilmott 期权对冲策略
策略概述
这是一个基于 Black-Scholes 模型的场外期权对冲策略,采用 Whalley-Wilmott 阈值方法进行动态对冲。该策略通过计算期权的 Delta 值并根据阈值条件进行股票仓位调整,以对冲期权风险。
核心交易逻辑
1. 初始化设置
- 标的证券: 默认为 '002724.XSHE'
- 执行价格倍数: K=1 (平价期权)
- 合约期限: T=30天
- 无风险利率: rf=0.09 (9%)
- 波动率: 基于过去365天的历史数据计算
- 名义本金: 账户现金的95.24% (1/1.05)
2. 对冲触发机制
策略采用 Whalley-Wilmott 阈值方法,只有当 Delta 变化超过特定阈值时才进行对冲交易:
阈值计算公式:
wwt = (3/2 * a / risk_tolerance)^(1/3)
其中: a = exp(-rf*τ/365) * trading_cost * S * gamma^2
参数设置:
- 风险容忍度 (risk_tolerance): 5
- 交易成本 (trading_cost): 0.00055 (0.055%)
3. 交易时间安排
第一天 (建仓日):
- 计算初始 Delta 值
- 建立对应的股票仓位:
仓位 = (名义本金/期初价格) * Delta
- 仓位调整为100股的整数倍
中间交易日:
- 跳过开盘第一分钟 (9:30) 避免价格异常
- 实时监控当前 Delta 与上次 Delta 的差异
- 当差异超过 Whalley-Wilmott 阈值时,调整股票仓位
- 处理分红拆股事件,相应调整期初价格
到期日:
4. 关键计算函数
Delta 计算:
d1 = (ln(S/(S0*K)) + (rf + σ²/2)*(τ/365)) / (σ*√(τ/365))
delta = N(d1) # 标准正态分布累积函数
Gamma 计算:
gamma = φ(d1) / (S * σ * √(τ/365)) # φ为标准正态分布密度函数
波动率计算:
- 使用过去365天的日收盘价
- 计算对数收益率的标准差
- 年化处理 (乘以√250)
5. 风险管理特点
- 动态对冲: 不是连续对冲,而是基于阈值的离散对冲,降低交易成本
- 成本优化: Whalley-Wilmott 方法在对冲效果和交易成本之间找到最优平衡
- 事件处理: 自动处理分红拆股等公司行为对期权参数的影响
- 仓位管理: 仓位调整为100股整数倍,符合实际交易要求
6. 适用场景
- 场外期权做市商的风险对冲
- 结构化产品的 Delta 中性策略
- 期权组合的动态风险管理
7. 注意事项
- 策略假设期权为欧式期权,到期前不会被提前行权
- 波动率使用历史波动率,可能与隐含波动率存在差异
- 交易成本设置需要根据实际券商费率调整
- 适合流动性较好的标的证券
参考资料
加百利分享
1. 聚宽平台期权数据获取与绘图
核心功能:
- 数据获取: 从聚宽平台获取50ETF期权的历史交易数据
- 数据分析: 分别统计认购期权(Call)和认沽期权(Put)的成交量和成交金额
- 可视化展示: 绘制认购/认沽期权的成交量和成交金额对比图表
- 应用场景: 期权市场情绪分析、Put/Call比率研究、市场活跃度监控
参考资料:
2. 获取期权数据,列出符合要求的合约
核心功能:
- 合约筛选: 根据到期日、行权价、期权类型等条件筛选期权合约
- 数据查询: 使用聚宽期权数据库查询符合条件的期权合约信息
- 信息展示: 列出合约代码、交易代码、行权价、到期日等关键信息
- 应用场景: 期权策略构建前的合约选择、期权链分析
参考资料:
3. 绘制期权损益分析图
核心功能:
- 损益计算: 计算不同期权策略在不同标的价格下的损益情况
- 图表绘制: 绘制期权策略的损益曲线图(Payoff Diagram)
- 盈亏分析: 标识盈亏平衡点、最大盈利/亏损点
- 应用场景: 期权策略风险收益分析、策略比较、投资决策支持
参考资料:
4. 股指ETF期权T型报价
核心功能:
- T型报价: 以T型表格形式展示50ETF期权的买卖报价
- 实时数据: 获取期权的最新买一价、卖一价、成交价等信息
- 分类展示: 按行权价分类,同时显示认购和认沽期权报价
- 应用场景: 期权交易决策、价差分析、流动性评估
参考资料:
5. 商品期权T型报价代码
核心功能:
- 商品期权报价: 获取商品期权(如豆粕、白糖等)的T型报价表
- 多品种支持: 支持不同商品期权品种的报价查询
- 价格展示: 显示期权的理论价值、实际报价、隐含波动率等
- 应用场景: 商品期权交易、套利机会识别、波动率分析
参考资料:
6. 50ETF-期权-备兑认购策略
核心交易逻辑:
- 持仓构建: 持有50ETF现货 + 卖出虚值认购期权
- 合约选择: 优先选择略虚值的认购期权(行权价>现价)
- 调仓规则: 当行权价低于现价95%时平仓原期权,重新开仓虚值期权
- 到期处理: 到期前1天移仓换月至次月合约
- 收益来源: 赚取期权权利金 + 标的资产增值(有上限)
参考资料:
7. 50ETF-备兑认购策略-改进版
核心交易逻辑:
- 动态调整: 在传统备兑策略基础上增加动态调仓机制
- 风险控制: 设置止损条件,当亏损达到一定比例时主动平仓
- 收益优化: 根据市场波动率调整期权选择标准
- 时间管理: 优化到期日管理,避免临近到期的时间价值损失
- 适应性强: 能够适应不同市场环境下的波动特征
参考资料:
8. 豆粕-备兑认购策略
核心交易逻辑:
- 商品应用: 将备兑认购策略应用于豆粕期货市场
- 持仓结构: 持有豆粕期货多头 + 卖出豆粕认购期权
- 合约管理: 跟踪豆粕主力合约变化,及时调整持仓
- 季节性考虑: 结合豆粕的季节性供需特点调整策略参数
- 风险特点: 商品期货波动率通常高于股指,需要更严格的风险控制
参考资料:
9. 商品主力合约-备兑认购策略
核心交易逻辑:
- 多品种适用: 适用于各种商品期货的备兑认购策略框架
- 主力合约跟踪: 自动识别和切换到成交量最大的主力合约
- 动态对冲: 根据商品期货的高波动特性调整对冲频率
- 保证金管理: 考虑期货保证金制度,优化资金使用效率
- 品种轮动: 可在不同商品间轮动,寻找最佳投资机会
参考资料:
10. 商品主力合约-备兑认沽策略
核心交易逻辑:
- 反向策略: 持有现金 + 卖出虚值认沽期权,等待标的下跌时以折价买入
- 现金管理: 预留足够现金以备行权时购买标的资产
- 跌幅获利: 在标的价格下跌过程中赚取期权权利金
- 底部建仓: 通过行权在相对低位建立多头仓位
- 适用环境: 适合在预期标的将在区间震荡或温和下跌时使用
参考资料:
11. 领口认购策略-商品主力合约
核心交易逻辑:
- 三腿组合: 持有标的多头 + 卖出虚值认购期权 + 买入虚值认沽期权
- 风险限制: 通过买入认沽期权为下跌风险设置保护下限
- 收益优化: 卖出认购期权降低保护成本,形成有限收益区间
- 成本控制: 认沽期权保护费用部分由认购期权权利金抵消
- 适用场景: 温和认购市场,既要保护下跌风险又要控制保护成本
参考资料:
12. 领口认购策略-50ETF
核心交易逻辑:
- ETF应用: 将领口策略应用于50ETF,利用其高流动性优势
- 精确定价: 利用50ETF期权的活跃交易获得更精确的期权定价
- 灵活调整: 可根据市场情况灵活调整上下限保护区间
- 成本效益: 在50ETF相对稳定的波动环境下优化成本收益比
- 风险管理: 为50ETF投资组合提供有效的风险管理工具
参考资料:
13. 卖出跨式策略-50ETF
核心交易逻辑:
- 双向卖出: 同时卖出相同行权价的认购和认沽期权
- 波动率交易: 赚取时间价值衰减,适合低波动率环境
- 区间获利: 当标的价格在一定区间内震荡时获得最大收益
- 风险特征: 潜在亏损无限,需要严格的风险控制
- 最佳环境: 预期标的将在当前价格附近窄幅震荡
参考资料:
14. 卖出跨式策略-商品主力合约
核心交易逻辑:
- 商品适配: 将跨式策略应用于波动性更高的商品期货市场
- 波动率管理: 需要更谨慎地评估商品期货的波动率水平
- 保证金考虑: 商品期货的保证金制度影响策略的资金效率
- 季节性因素: 考虑商品的季节性供需变化对波动率的影响
- 风险加大: 商品期货的高波动性使得风险控制更加重要
参考资料:
15. 买入日历价差策略-商品期货
核心交易逻辑:
- 时间价差: 卖出近月期权 + 买入远月期权,利用时间价值衰减差异
- 波动率套利: 利用不同到期日期权的隐含波动率差异获利
- 有限风险: 最大亏损限于支付的净权利金
- 最佳时机: 适合在预期标的价格将在短期内保持相对稳定时使用
- 到期管理: 需要在近月期权到期前主动管理仓位
参考资料:
16. 买入日历价差策略-50ETF
核心交易逻辑:
- ETF优势: 利用50ETF期权链的完整性和流动性优势
- 精细操作: 可以更精确地选择最优的时间价差组合
- 成本控制: 在相对稳定的ETF环境下控制策略成本
- 收益稳定: 适合追求稳定收益的投资者
- 风险可控: 最大风险明确,适合风险偏好较低的投资者
参考资料:
书生分享
1. 卖沽ETF,卖购备兑策略
1. 深度实值买购和卖购组合的牛差策略(升级版)
文件名: deep_itm_bull_spread_strategy.py
策略概述
该策略是一个专注于牛差组合的期权交易系统:
- 牛差组合策略:深度实值买购期权 + 平值卖购期权
系统通过严格的期权筛选条件,寻找最优的牛差组合机会。
核心交易逻辑
1. 策略机制
- 专注牛差策略:只执行牛差组合策略,寻找最优的深度实值买购期权
- 严格筛选:通过严格的期权筛选条件确保策略质量
2. 开仓选择标准
卖购期权选择:
- 筛选虚值期权(行权价 > ETF价格)
- 选择最接近ETF价格的虚值期权(行权价最小的虚值期权)
- 当月期权权利金要求:下月阈值×0.6(沪深300ETF≥0.018,上证50ETF≥0.03,创业板ETF≥0.018)
- 下月期权权利金要求:沪深300ETF≥0.03,上证50ETF≥0.05,创业板ETF≥0.03
- 下月期权指到期日在下个自然月的所有期权
- 最少距离到期日15天(交易日)
- 如果当月无虚值期权,则尝试下月期权
深度实值买购期权选择:
- 行权价必须低于当前ETF价格(实值期权)
- 时间价值必须小于0.015
- 选择行权价最接近ETF价格的期权
- 必须与卖购期权到期月份一致
3. 开仓机制
牛差策略开仓条件:
- 存在符合条件的深度实值买购期权
- 存在符合条件的平值卖购期权
- 两个期权必须到期日一致
4. 盈利计算
牛差组合策略:
- 单张最大盈利 = (卖购行权价 - 买购行权价 - 买购权利金 + 卖购权利金) × 10000
- 最小盈利 = 卖购权利金 × 10000
5. 平仓条件
时间平仓:
盈利平仓:
权利金平仓:
- ETF价格<卖购行权价时,卖购权利金剩余<0.005
6. 加仓机制
加仓条件:
- ETF价格下跌至加仓触发价位
- 加仓窗口阈值:沪深300ETF: 0.2,上证50ETF: 0.1,创业板ETF: 0.15
- 最大加仓次数:2次
7. 资金管理
动态合约数量计算:
- 根据分配资金和保证金要求动态计算合约数量
- 牛差组合保证金 = 行权价差 × 合约单位 + 30元优惠
多标的资金分配:
- 支持多个ETF标的同时运行
- 默认资金分配:上证50ETF 50%,沪深300ETF 30%,创业板ETF 20%
- 总资金使用上限:80%
8. 数据记录与监控
交易记录:
- 完整的开仓/平仓交易记录
- 牛差策略标识
- 盈亏分析和归因
持仓监控:
- 每日持仓状况记录
- 浮动盈亏实时计算
- 牛差策略持仓统计
账户汇总:
- 多标的账户资金汇总
- 已实现/未实现盈亏分离
- 收益率和风险指标计算
配置参数
{
'contract_size': 30, # 默认合约数量(动态调整)
'min_premium': {'510300': 0.03, '510050': 0.05, '159915': 0.03}, # 下月期权权利金阈值
'min_days_to_expiry': 15, # 最少开仓距离到期日
'call_time_value_threshold': 0.015, # 深度实值期权时间价值阈值
'put_close_premium_threshold': 0.005, # 卖购平仓权利金阈值
'max_days_before_expiry': 7, # 到期平仓最大天数
'min_days_before_expiry': 2, # 到期平仓最小天数
'add_position_threshold': {'510300': 0.2, '510050': 0.1, '159915': 0.15},
'max_add_positions': 2, # 最大加仓次数
'max_profit_close_threshold': 0.83, # 83%最大盈利平仓
# 注意:当月期权权利金阈值 = 下月阈值 × 0.6
}
适用场景
- 牛市震荡行情:牛差策略获取有限上涨收益
- 资金规模化管理:多标的分散投资
- 风险控制要求:严格的开仓条件和止损机制
系统架构
- DeepITMBullSpreadStrategy:单标的策略核心类
- MultiUnderlyingBullSpreadManager:多标的管理器
- StrategyConfig:策略配置管理
- StrategyType:策略类型枚举(BULL_SPREAD)
功能特点
- 专注牛差策略:专门针对牛差策略进行优化
- 严格筛选标准:确保只有高质量的期权组合才会开仓
- 精确盈亏计算:准确计算牛差策略的盈亏情况
- 完整数据追踪:详细记录所有交易过程
- 风险控制:多层次的风险控制机制
- 资金管理:动态调整合约数量,优化资金使用效率