目录
写在前面
我刚接触量化投资,对量化投资很感兴趣,在闲暇时间进行量化投资的学习,只能进行少量资金进行量化实践。现阶段的计划是阅读vn.py的源码,学习vn.py架构机制,在学习的过程中,会以分享的形式记录,以加深对vn.py的理解,有不对的地方欢迎大家批评指正。
欢迎志同道合的朋友加我QQ(1163962054)交流。
分享的github仓库:https://github.com/PanAndy/quant_share
《vn.py全实战进阶课程学习笔记》这一系列的博客分享主要是对vnpy官方课程《vn.py全实战进阶课程》学习过程的整理,我将尽量按照课程讲解的思路进行梳理,也会带着介绍一些其中的源码实现。同时,也会参考《vnpy项目文档》(请叫我文档搬运工哈哈哈)。最重要的是,我计划跟着课程里的操作进行实验,我争取将实验过程都复现出现,相关截图用我自己的。
这篇博客记录我配置vnpy回测和实盘环境过程中的相关内容。
MySQL数据库配置
刚接触vnpy的时候,用的是vnpy默认的sqlite轻量级数据库,那时候库A股全市场股票日线数据,在UI界面加载数据的时候比较卡,不知道是不是数据库的问题,当然也有可能是数量量确实很大。所以,这一次重新装vnpy的时候,就配置了一下mysql数据库。
尴尬啊。。。这篇文章内容还没做完,有前辈和我说mysql特别慢,推荐使用PostgreSQL,配置方法大差不差,我就不写了,先配去了。。。刷刷刷一顿,很快能配置好。
主要参考为vnpy官方的《vn.py社区精选6 - 做交易,你需要选好数据库》,这篇文章对vnpy支持的数据库的安装介绍的比较详细。这里我就介绍我的安装过程,可以分为三步:安装mysql、创建数据库、vnpy数据库配置。总体而言,我的整个配置过程还是挺流畅的,没有遇到什么报错。
安装mysq
从MySQL官网(MySQL :: Download MySQL Installer)下载windows版本的安装包,然后一路无脑安装。注意,安装的过程中,要记住root账户的密码,其他的都设置为默认值就行。
创建数据库
MySQL安装完毕之后,自动打开MySQL的图形管理工具MySQL WorkBench,会默认让连接数据库,输入root和密码,建立数据库连接。
由于vnpy不会主动为关系型数据库创建数据库,所以需要自己创建数据库。
在打开的数据库管理界面中,点击下图中菜单栏红色方框的按钮,来创建新的数据库。数据库名称输入vnpy,然后无脑点Apply,完成数据库的创建。
vnpy数据库配置
数据库创建完成以后,启动VN Trader,点击菜单栏的【配置】后,设置数据库相关字段,如下图所示。保存完成配置后,需要重启VN Trader来启用新的数据库配置。重启后,在打开VN Trader的过程中若无报错,则说明MySQL数据库配置成功。
此时可以刷新MySQL Workbench,可以看到vnpy数据库的表结构已经创建完成。
同样,打开C:\Users\xxx\.vntrader\vt_setting.json文件,可以看到vntrader的配置信息已经更新。
rqdata数据服务配置
几个月前申请了rqdata教育版本的使用权限,无奈没有办法连接到校园网,这一次申请了一个15天的试用账号。先通过这个账号来跑通vnpy的rqdata数据获取和回测吧,回头应该是要购买rqdata的数据服务的。
这一部分的参考文章就是vnpy官方出的《vn.py快速入门7 - 历史数据回测优化》里关于rqdata连接的介绍。同样,这里记录我的配置过程,建议直接看官方文档。
rqdata数据服务配置主要为两步:申请rqdata试用权限、vnpy参数配置。
申请rqdata试用权限
首先,是ricequant与vnpy合作的申请方式米筐量化平台,这个方法在vnpy官方论坛(RQDATA $申请事宜 - 主题 - VeighNa量化社区)上查到的。通过这种方式申请,可以获得15天的免费试用权限,现在我用的就是这种方式。
其次,ricequant提供了教育专区的申请(米筐量化平台)。填写学生信息以后,联系ricequant服务人员,提醒审核申请,然后会收到授权邮件。需要注意的是,这种方式申请的授权邮件只能在校园网(xxx.edu)内使用。因为我没在学校,所以申请下来以后,就连不上。
最后,在ricequant主页(米筐量化平台)里点申请rqdata试用。但是这里进去的申请表单需要填金融机构的信息、名片等等,不太适合个人使用。
vnpy参数配置
rqdata申请成功以后,会收到邮件,申请成功后会自动弹出开始下载[make.bat]文件,该文件中包含了申请的试用账号和密码。
使用vscode打开make.bat文件,可以看到name和password。
然后在vnstation的配置表单中填写配置信息,重启vnstation,配置完成。开启量化回测之旅吧。
simnow仿真环境配置
第一次配置simnow仿真环境,主要参考的是vnpy官方发布的《vn.py快速入门2 - 国内期货CTP》。同样,这里主要是记录我的配置过程,希望别出什么意外吧哈哈哈。
按照官方教程,主要包括以下八个步骤:准备账号、接口登录、查看合约、订阅行情、交易下单、委托成交、资金持仓、实盘交易。
准备账号
上期技术官方运营了一套期货仿真交易环境SimNow,提供和实盘环境一致的行情以及交易撮合规则,现在已经是做各种CTP测试交易的首选了。
打开SimNow官网simnow.com.cn,点击右上角“注册账号”,填写一些基础信息完成注册。但有两个坑需要注意。
1. 手机号使用移动或联通的号码,其他运营商可能收不到验证码。
2. 注册时间,请选择白天的期货交易时段,即上午的9:00-11:30,下午的13:00-15:00,其他时段注册系统可能各种抽风:图片验证码死活不对、注册按钮点不了,网页刷不出来...。我就说刚刚19:30怎么网页都打不开,手动捂脸。。。现在还是假期,我就先copy一下vnpy官方的截图了。
注册完成后,回到SimNow首页点击右上角“投资者登录”,输入手机号和密码登录进行。注意investorId,是SimNow环境的CTP用户名,而不是手机号。同时CTP密码就是登录网站用的密码。
接下来需要先修改一次密码才能使用API进行交易。
接口登录
启动VN Trader Pro,加载CTP接口,不要加载CTP测试接口。进入主界面后,点击菜单栏的【系统】->【连接CTP】,配置连接信息,如下图所示。注意用户名为:SimNow的investorId,密码为SimNow的登陆密码。
其中交易和行情服务器,一共有三组选择,前两组只能在交易时段登陆(周一到周五,日盘和夜盘时段),提供和实盘环境一致的行情和撮合。
查看合约
点击菜单栏【帮助】->【查询合约】,或者左侧功能导航栏的倒数第二个放大镜按钮,打开合约查询对话框。
订阅行情
在VN Trader界面左上角的交易组件中,选择交易所、接口后,在代码框中输入合约代码后回车,可订阅行情。当收到最新行情Tick推送时,会显示在下方的深度报价中,Tick推送的最高更新频率是每秒2笔,如果没有变化则可能1笔推送都没有。
注意国内期货普遍只提供1档买卖价,部分期货公司的上期所和能源交易所品种可以获取到5档买卖价。
交易下单
知道最新行情的价格在哪里后,就可以进行买卖下单。
委托成交
委托请求提交后,则会返回相应的委托回报信息,显示在委托组件中,显示当前这笔委托请求的最新状态。
资金持仓
委托成交后,CTP账户的资金情况将发生变化,可用资金将会减少,同时整体余额将基于“逐日盯市”的规则变动。
VN Trader中底部中间的资金监控组件的数据,默认以每6秒一次的频率查询刷新,所以某一时间点你看到的数据可能并非最新情况。
持仓信息同样也采用6秒刷新的频率 ,注意对于国内的期货市场,多头和空头的持仓情况分开计算。双向持仓均会存在各自的保证金占用。
由于上期所(包括能源交易中心)今昨仓分离的规则,平仓时需要分别发出对应的委托指令。如,想要平掉rb1910的8手多头持仓,则需要分别发出平昨7手的指令,加上平今1手的指令。而其他三家交易所不受此影响,直接选择平仓8手即可。
实盘交易
当你已经对SimNow的仿真测试环境足够熟悉后,可能已经做好了使用CTP柜台进行实盘交易的准备。
对于CPT实盘交易:
- 用户名和密码,开户后可以直接拿到。
- 经纪商编号和交易行情服务器地址,可以联系客户经理获取
- 产品名称和授权编码,完成穿透式认证获取