发布于vn.py社区公众号【vnpy-community】

 

原文作者:用Python的交易员 | 发布时间:2020-02-11

 

新冠病毒肆虐,大家多多注意身体,有条件远程办公的还是远程吧,从概率角度讲复工后的一周风险也许是最大的。废话不多说,上周末发布了2020年的第一个版本v2.1.0:期权电子眼,主要更新了期权自动化交易(电子眼算法)相关的功能。

 

和之前一样,对于使用VN Studio的用户,启动VN Station后,直接点击界面右下角的【更新】按钮就能完成自动更新升级。对于没有安装的用户,请下载VNStudio-2.1.0,体验一键安装的量化交易Python发行版,下载链接:

 

https://download.vnpy.com/vnstudio-2.1.0.exe

 

OptionMaster电子眼

 

几大股指期权上线后已经平稳运行一个多月,期权自动交易方面的口风也没那么紧了,所以新版本开源了OptionMaster Pro中的全部自动交易功能。

 

期权领域的量化交易主要集中在波动率交易策略上。而期权的波动率无法从其价格上直接反应出来,需要通过定价公式来实时反推隐含波动率。

 

description

 

通过上图中的波动率曲线图表,交易员可以直观的看到波动率曲线(面)的形状,并且作出相应的判断分析,每个月份的波动率曲线采用不同的颜色显示:

 

  • 向上三角形:市场上看涨期权的买卖价隐含波动率中值
  • 向下三角形:市场上看跌期权的买卖价隐含波动率中值
  • 圆形曲线:当前系统内的定价参考波动率

 

用户可以通过顶部的勾选框来选择当前要显示波动率曲线的月份,方便根据自己的需求来详细分析单一月份的形状或者多月份的曲面形态。

 

对当前市场的隐含波动率曲线形态有所了解后,交易员需要根据自己的判断,使用下图中的波动率管理组件,来设置定价参考波动率,作为后续电子眼交易算法的定价依据:

 

description
 

定价参考波动率的设置需要比较多的期权定价原理知识,以及一定的波动率交易经验,对于单一月份波动率曲线拟合的流程如下:

 

  1. 点击【重置】按钮,将每个行权价的期权定价波动率,初始化为该行权价虚值期权(OTM)的中值波动率;
  2. 观察图表中的曲线形态,对于波动率异常的行权价,勾选【执行拟合】列的勾选框;
  3. 全部勾选好后,点击顶部的【拟合】按钮,基于Cubic Spline算法来对勾选了的行权价的波动率执行拟合计算;
  4. 拟合完成后,再次检查图表中的曲线形态,并通过【定价隐波】列的调节器进行细微调整

 

description

 

完成定价参考波动率曲线的拟合后,就可以通过上图中的期权电子眼算法(英文名Electronic Eye),来自动扫描市场上的最优交易机会(max price edge),并在Tick级的时间级别上瞬时完成交易。

 

在波动率交易过程中,无论是期权开平仓本身引入的Delta,或者是由于持仓Gamma随着市场波动带来的Delta,都必须根据交易需求及时处理:

 

  • 做多Gamma时锁定波动利润
  • 做空Gamma时对冲额外风险

 

description

 

使用上图中的Delta对冲算法,交易员可以根据自己的需求选择任意定价标的物作为对冲合约,并灵活设置对冲检查执行的频率、Delta对冲目标、对冲触发阈值,以及下单时采用的委托超价等参数,来实现Delta自动实时对冲的功能。

 

实时K线图表模块

 

在最初的设计上,vnpy.chart这个K线图表主要是为了满足CtaBacktester模块中对于CTA策略回测历史买卖点显示的需求。

 

没想到自从发布以来,社区中就不断出现实时K线图表的需求,加上前段时间的文华事件,开发一套100%完全开源的高性能图表工具,可能也变成了挺有价值的工作。

 

所以v2.1.0版本中,新增了ChartWizard模块,用于实时K线图表的显示,如下图:

 

description

 

目前只是第一个版本,仅仅实现了简单的1分钟实时K线行情显示,直接在本地合约代码的编辑框中输入vt_symbol(比如IF2002.CFFEX),点击【新建图表】的按钮就会打开对应合约的图表。

 

需要注意的是,vn.py本身并不提供任何数据服务,对于绘图要用到的历史K线数据,国内期货目前通过RQData数据服务获取(需要准备和配置RQData账号)。

 

后续会根据社区用户的反馈情况,来决定是否要进一步增加图表功能,例如:

 

  • 多周期K线图表
  • 任意时间范围
  • 技术指标
  • 画线分析
  • 等等(图上能玩的太多了~)

 

Excel RTD数据服务

 

RTD全称是RealTimeData,是微软主要为金融行业的实时数据需求设计的Excel数据对接方案,号称可以达到每秒全表60000次的刷新速率,能不能达到我们其实都不用管(其实1秒6次数字刷新普通人眼估计就要瞎了吧)...

 

对于个人投资者来说可能比较陌生,但对于机构交易员来说(不管量化还是主观),Wind/Choice等金融行情终端的Excel RTD插件,可以说是日常工作中常用的工具之一。毕竟即使是量化交易员,也没必要为了所有要跟踪的市场行情数据都开发一套前端界面(性价比太低),方便易用的Excel电子表格就是好的替代工具。

 

description

 

本次更新中添加的ExcelRtd模块,用于实现在Excel中访问vn.py程序内任意数据信息的功能,上图中的简单例子是在Excel表中获取来自CTP接口的实时行情数据刷新。ExcelRtd依赖于PyXLL模块(www.pyxll.com),该模块属于商业软件,需要购买才能使用(提供30天免费试用)。

 

恒生UFT接口

 

2.1.0版本中新增了恒生UFT接口的对接,可以用于期货(包括期货期权)和ETF期权的量化交易,终于vn.py可以对接国内几乎所有期货公司了(部分还是只有金仕达柜台的就算了)。

 

UFT接口在使用时比起CTP来说稍微麻烦一些:除了满足穿透式认证的需求外(获取AppID和AuthCode),还需要用户向期货公司申请获取接入授权文件(liscense.dat),具体请联系咨询期货公司的IT部门。

 

其他更新

 

vn.py的CI服务从CircleCI切换到了Github Actions,用了一个多月下来发现无论脚本配置方便度还是测试运行速度都有明显的提升,对于在vn.py上做二次扩展开发的用户强烈推荐使用。

 

PS:CI的全称是Continuous Integration,中文名“持续集成”,主要用于在每次更新代码后自动运行各类测试检查程序,来保证持续开发过程中整体代码的质量。许多用户反应v2.0后的代码质量有了明显的提升,其中CI的帮助居功至伟。

 

Python自从3.5版本引入Type-Hint可选类型声明后,代码的可读性以及IDE开发工具(尤其是VSCode)的智能提示检查功能都有了飞跃式的进步。vn.py在后续的开发中会全面加入Type-Hint的类型声明,目前主要完成了核心模块的修改(包括vnpy.trader/rpc/event模块)。

 

 

 

线上活动公告

 

考虑到大家的健康安全的风险,准备把2、3月份社区的线下活动全部改为线上活动的模式,计划在2月底举行的同时也是vn.py社区2020年第1次线上活动了。

 

内容:

  1. ChartWizard模块扩展开发
    a. vnpy.chart模块

    b. 静态绘图脚本

    c. 行情事件流

    d. 绘图图层开发

    e. 技术指标扩展

  2. ExcelRtd模块应用
    a. pyxll安装配置

 

时间: 2月29日下午14:00-16:00

报名费:99元

报名方式:扫描下方二维码

 

description