今天学习价差交易模块
也是刚接触这个模块,涉及概念比较多
价差和CTA交易区别
CTA主要交易单个品种,特点是低胜率,高盈亏比
价差针对关联性比较高的品种,实现方式是期现套利、跨期套利、跨市套利、跨品种套利,价差交易的标的物是价差,价差的统计特征是均值回归,即围绕某个数值上下波动,出现黑天鹅可能小,盈利主要靠尖峰部分。
根据品种的相关程度不同,价差交易适用范围也不同:
相关程度100%,也就是说交易的是同一样商品,不同市场。无风险套利,拼的是低延时,属于高频交易领域。需要投入大量精力在托管机房、海底光缆、网卡设计等方面。
相关程度高,比如近期和远期合约,可以做日内交易。可以简单设置固定阈值,另一种是当价差不遵守均值回归,或者大周期波动大,小周期围绕均值上下波动,可以使用布林通达实现套利。
相关程度较高,比如产业链相关期货品种,可以做基本面套利,可以实地调研,或者通过无人机监控库存等,偏向基本面信息的挖掘和处理。
下面代码中的实现,代码在 /vnpy/app/spread_trading
价差交易主要由6部分组成
1、base:定义主动腿/被动腿合约和价差数据结构
2、template:价差算法和交易策略
3、strategies:官方提供的价差交易策略,如basic_spread_strategy设置阈值即可交易
4、algo:主动对价成交算法:为了规避交易所设置挂撤单次数的上限
5、定义了父类价差引擎,并且继承了父类的价差数据、价差算法和价差策略引擎
6、ui:基于PyQt5的GUI图形应用
基本操作
【功能】->【价差交易】
价差交易界面可分为2部分
1、交易部分:定义好策略运行,自动交易,也可以手动设置仓位
2、监控部分:查看实时价差合约行情信息,价差策略和价差算法执行情况
创建价差合约
1、寻找可组成价差的合约
2、构建价差合约
3、监控价差合约
交易方式分为手动和自动
具体步骤省略了,暂时用不到,有兴趣可以对照文档看下价差交易
以上是价差交易,不过量化的速度比不过专业的,估计有差价也很快被磨平了,后面有机会再回看
下面学习期权波动率交易
首先先得了解期权以及其定价,需要一些金融知识,之前没了解过需要恶补下,mark。
期权相关代码在/vnpy/app/option_master中
OptionMaster是vn.py框架内针对【期权波动率交易】专门设计的上层应用模块。
初始化配置
【期权产品】下拉框中会显示当前已连接的交易接口上可选的期权产品组合。底层接口必须支持期权合约的交易,这里才会有对应期权产品的显示。
点击【配置】设置期权定价中用到的无风险利率,以及每个期权链定价所用的标的物合约。
期权定价
针对国内的期权类型,内置了三大定价模型
Black-76模型:针对欧式期货期权(股指期权)
Black-Scholes模型:针对欧式股票期权(ETF期权)
Binomial-Tree模型:针对美式期货期权(商品期权)
从计算方向来分,又分为
1.从定价波动率来计算期权价格
calculate_price相关函数
2.从期权价格来返推隐含波动率
calculate_impv函数,
以上都包括了:输入数值的边界检查功能,避免计算出某些异常数值。
数据模型
期权的量化和CTA策略区别在于,期权会同时交易大量合约,合约之间的价格还会互相影响。
OptionMaster中专门构建了多层嵌套式的立体数据结构,当以上数据结构中的任意一个数据发生变化时,会同时触发与之相关的所有计算,保证整体数据结构的一致性。
T型报价
T型报价是期权交易中最常用的行情显示方式,中间白色的一列为行权价,左侧为看涨期权,右侧为看跌期权。
通过计算得到更为直观的现金希腊值。具体计算可以参考教程。
希腊值风险
持仓希腊值 = 现金希腊值 x 合约持仓
快速交易
【代码】编辑框中输入合约代码后回车,即可显示该合约的行情盘口数据。或者在T型报价组件上,寻找到好的交易机会后,双击单元格即可完成合约代码的自动填充和行情显示。
点击【委托】按钮即可立即发出交易委托,点击【全撤】按钮则可一次性将当前处于活动状态的委托(未成交、部分成交)全部撤单。
期权电子眼
大概学习了下价差交易和期权相关内容,专业性还是很强,后面用到再仔细研究。
另外最近文章写的潦草,都没整理格式,搞定vnpy之后要重新整下,mark
现在主要是知乎,后续还会上公众号之类的