目录

写在前面

MySQL数据库配置

安装mysq

创建数据库

vnpy数据库配置

rqdata数据服务配置

申请rqdata试用权限

vnpy参数配置

simnow仿真环境配置

准备账号

接口登录

查看合约

订阅行情

交易下单

委托成交

资金持仓

实盘交易


写在前面

我刚接触量化投资,对量化投资很感兴趣,在闲暇时间进行量化投资的学习,只能进行少量资金进行量化实践。现阶段的计划是阅读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实盘交易:

  • 用户名和密码,开户后可以直接拿到。
  • 经纪商编号和交易行情服务器地址,可以联系客户经理获取
  • 产品名称和授权编码,完成穿透式认证获取

vn.py全实战进阶课程学习笔记(零)相关推荐

  1. Android推送进阶课程学习笔记

    今天在慕课网学习了Android进阶课程推送的server端处理回执的消息 . 这集课程主要介绍了,当server往client推送消息的时候,client须要发送一个回执回来确认收到了推送消息才算一 ...

  2. python进阶(课程学习笔记)

    简述Python中的实例方法,类方法,静态方法 1. 实例方法: 与具体的实例相关,会传入一个必须的参数self.self代表被实例化的对象本身.实例方法中能够访问在构造函数__init__()中方初 ...

  3. 《kafka 核心技术与实战》课程学习笔记(六)

    生产者消息分区机制原理剖析 为什么分区? Kafka 有主题(Topic)的概念,它是承载真实数据的逻辑容器,而在主题之下还分为若干个分区,也就是说 Kafka 的消息组织方式实际上是三级结构:主题 ...

  4. 《kafka 核心技术与实战》课程学习笔记(五)

    kafka 集群参数配置 严格来说这些配置并不单单指 Kafka 服务器端的配置,其中既有 Broker 端参数,也有主题级别的参数.JVM 端参数和操作系统级别的参数. Broker 端参数也被称为 ...

  5. 台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine

    红色石头的个人网站:redstonewill.com 关于台湾大学林轩田老师的<机器学习基石>课程,我们已经总结了16节课的笔记.这里附上基石第一节课的博客地址: 台湾大学林轩田机器学习基 ...

  6. 《机器学习实战》kNN学习笔记

    <机器学习实战>kNN学习笔记 文章目录 <机器学习实战>kNN学习笔记 概述 优缺点 k-近邻算法的一般流程 简单案例kNN.py 在约会网站上使用k-近邻算法 归一化特征值 ...

  7. Python课程学习笔记 上

    笔记目录 学前准备 Python解释器安装包 下载 安装 Pycharm 下载 常用的快捷键 Python程序执行机制 语法基础 注释和中文乱码 变量 数据类型 运算符 数值运算符 复合运算符 比较运 ...

  8. cs224w(图机器学习)2021冬季课程学习笔记18 Colab 4:异质图

    诸神缄默不语-个人CSDN博文目录 cs224w(图机器学习)2021冬季课程学习笔记集合 文章目录 Question 1. DeepSNAP异质图简介 1.1 Question 1.1:分配Node ...

  9. 武汉大学-黄如花-信息检索课程学习笔记二

    武汉大学-黄如花-信息检索课程学习笔记二 一.信息检索基本方法 1.布尔逻辑检索 2.临近检索 3.短语检索(精确检索) 4.截词检索 5.字段限制检索 6.区分大小写的检索 二.多种检索方法的综合运 ...

最新文章

  1. 3台廉价服务器支撑200万TPS的消息中间件
  2. hi3559a100解码
  3. linux命令的导入,[导入]Linux基本命令
  4. UIBezierPath 绘制正五边形
  5. 和菜鸟一起学linux内核源码之基础准备篇
  6. PS教程第十三课:是时候开始战斗了
  7. php一定要用phpstudy,用phpstudy有什么好处
  8. 初级web前端必会知识点:HTML部分,看看你都会吗?
  9. WCF中使用自定义behavior提示错误的解决方法
  10. Qt4_坐标系统变换
  11. 7-11 mmh学长的万能日历 (20分)
  12. linux桌面记事本,推荐6款简单实用的手机记事本APP,总有一款适合你的‖APP展览馆...
  13. 奇迹服务器如何修改爆率,奇迹萌新教程系列-奇迹装备是否掉落配置调整
  14. 渗透工具NessusToReport:一个nessus自动报告生成工具,可以用来自动生成nessus扫描器的中文报告--NessusToReport
  15. Mysql数据库MMM实现高可用架构
  16. 文言文编程火了,可我完全学不懂
  17. 全面了解LoRaWAN终端ABP入网方式
  18. HMM的概述(五个基本元素、两个假设、三个解决的问题)
  19. PC机与交换机通信的原理描述
  20. 万能码又又有新功能了(安全扫码专业委员会)

热门文章

  1. 行走的历程(幸福指数)
  2. 2020全国商标注册量TOP 10的代理机构都拥有自己的互联网平台
  3. Postgres -- 如何理解 select into 如何将查询结果自动生成到一张新表当中
  4. SQLAlchemy 多条件筛选
  5. 微信去水印小程序 简单方便快捷 短视频工作者必备
  6. Leecode147.地下城游戏(python)
  7. LeNet 网络详解
  8. 某马php就业班资源,某论坛搞的最新2019年3月开课的*马PHP76期(基础班+就业班)...
  9. 如何用python画帆船_python 游戏(船只寻宝)
  10. 什么是乐观锁、悲观锁