发布于vn.py社区公众号【vnpy-community】
《30天解锁Python量化开发》课程的原定大纲内容(50集)已经在国庆期间全部更新结束,本月底还会补充3-5集的量化应用实践案例分享。课程通过概念讲解和实践操作结合的方式,加上vn.py框架内部代码细节的梳理学习,来帮助你快速掌握Python量化开发能力,详情请戳。
原文作者:用Python的交易员 | 发布时间:2020-10-27
周一发布了vn.py的2.1.7版本,本次更新的内容主要是增加了MarketRadar市场信号雷达模块。
和之前一样,对于使用VN Studio的用户,启动VN Station后,直接点击界面右下角的【更新】按钮就能完成自动更新升级,对于没有安装的用户,请下载VNStudio-2.1.7,体验一键安装的量化交易Python发行版,下载链接:
https://download.vnpy.com/vnstudio-2.1.7.exe
市场信号雷达模块(MarketRadar)
该模块的主要功能,是允许用户基于自定义Python数学公式,实时计算衍生行情数据。
一看之下可能会觉得和SpreadTrading模块中的价差组合行情计算功能重复了,但实际上两者在功能定位上完全不同:
MarketRadar模块
- 定位分析,主要用于扫描和寻找市场信号机会
- 支持灵活的Python数学公式:加减乘除、内置函数(max/min等)
- 基于公式内各个合约的最新成交价,计算自定义公式的最新数值
SpreadTrading模块
- 定位交易,主要用于执行多条腿的价差组合买卖
- 只能通过价差腿的系数正负,来实现加减的公式计算
- 基于各条腿的1档盘口,计算价差组合的盘口价格
在VN Station启动对话框中,加载MarketRadar模块,启动VN Trader后先连接登录交易接口,再打开【市场雷达】组件可以看到类似下图的界面:
在窗口左下角的编辑区中,可以快速创建要扫描的雷达规则(RadarRule):
其中各字段的对应含义如下:
名称
- 雷达规则的名称,注意不能重复
公式
- 规则的计算公式,支持任意合法的Python数学公式
- 注意其中的变量,只能是A、B、C、D、E(不需要都用)
A、B、C、D、E
- 计算公式中要用到的变量对应的合约本地代码(vt_symbol)
- 收到其中任何一个合约的TICK行情推送时,会实时触发规则计算
- 不用的变量留空即可
小数
- 公式的最终计算结果保留多少位小数
点击【添加】按钮即可完成新规则的添加,MarketRadar会自动订阅相关合约行情并开始自动扫描计算。
除了跨期价差这种减法求差的规则外,MarketRadar也能支持金银比这种比例类的计算规则:
对于需要调整的规则,也可以同样在左下角输入相应信息(名称请填写要修改的规则名称),点击【修改】按钮即可完成修改。对于不再需要的规则,可以点击监控表中最右侧的【删除】按钮来进行移除。
需要添加较多的雷达规则时,可以通过CSV文件来一次性批量导入,点击窗口右下角的【导入CSV】按钮,在弹出的对话框中找到要导入的CSV文件后打开即可快速完成导入(右下角日志组件中有对应信息输出):
CSV文件的格式如下图所示,和编辑区的各字段完全一致:
结合Excel的表格快速编辑功能,批量添加规则还是挺方便的:
目前2.1.7版本的MarketRadar只支持雷达规则计算结果的数字显示,后续我们会进一步加入图表显示(参考文华的组合)、条件提醒(警报和发微信)、策略信号订阅等功能。
委托来源标识
这个功能要感谢社区论坛上hxxjava同学的贡献,论坛原帖:
今年初就已经在OrderRequest下单请求类(位于vnpy.trader.object)中加入了一个reference字段用于标识委托的来源,但当时字段之前主要为了让服务端的资管系统(O32等)能够进行识别记录,并没有考虑在VN Trader客户端中的相关应用。
在这次的2.1.7版本中,我们在OrderData委托回报类上也加入了reference字段,通过OrderRequest.create_order_data方法来实现自动绑定,同时也增加了所有交易应用模块中的下单自动填写,现在可以很方便的在主界面的【委托监控】组件中看到委托的来源信息:
各应用模块填写的reference内容如下:
- 手动交易:ManualTrading
- CTA策略:CtaStrategy_策略名
- 价差交易:SpreadTrading_价差名
- 期权交易:OptionMaster_ElectronicEye/DeltaHedging
- 算法交易:AlgoTrading_算法编号
- 脚本策略:ScriptTrader
- 组合策略:PortfolioStrategy_策略名
有了reference这个来源信息后,下个版本(2.1.8)我们将会增强下PortfolioManager模块,实现VN Trader本地化的策略盈亏统计功能(分策略、分合约)。
其他更新
接口方面
- 升级重构了华鑫证券的奇点极速柜台接口,并根据交易品种的区别,拆分为了针对股票的ToraStockGateway和针对期权的ToraOptionGateway。
历史数据
- RqdataClient增加对TICK数据下载功能支持,购买了RQData的TICK数据服务的用户,可以通过DataRecorder模块来直接下载米筐TICK数据入库;
- 直达期货接口DaGateway,增加外盘期货历史数据下载功能,对直达的实盘客户来说以后获取历史数据再也不是问题了(支持历史回测和实盘初始化);
- 修复了加载PaperAccount模块后,从接口查询历史数据可能出错的问题(之前影响的是IB接口)。
同样,有什么想问的问题或者分享的内容,欢迎在文章下方留言。本期我们将会随机抽取一位留言者赠送《量化交易零基础入门系列 - 30天解锁Python量化开发》课程的5折优惠券一张。