VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 5080
声望: 306

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

 

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

更新日期:2020-11-16
 
针对许多初学者在刚开始使用vn.py时,容易遇到的各种常见问题,整理了这份FAQ文档,后续也会持续保持更新。
 

软件安装和基础使用


【Q】阅读和开发vn.py相关的代码,推荐怎么选择Python版本和IDE工具?

【A】建议使用vn.py官方打包的Python发行版VN Studio作为Python环境,同时使用Visual Studio Code(安装Python和Pylance插件)作为IDE工具。

对于新手来说,尤其不推荐使用PyCharm,作为针对大型Python项目的PyCharm,使用时需要用户对运行环境进行大量细节配置,不熟悉的人很容易在各种地方出错,浪费大量时间去爬坑。

对于经验丰富的老手来说就无所谓了,选择自己最熟悉的Python版本和IDE工具就好。

 

CTP期货接口


【Q】已经连接登录了CTP接口,但是在VN Trader主界面,左上角的编辑框中输入合约代码后,为何回车无法订阅行情?

【A】请检查合约代码是否输入正确,国内4家期货交易所的合约命名规则有所区别,vn.py内部全部采用官方命名,举例来说:

  • 中金所:IF2003
  • 上期所:au2003
  • 大商所:m2003
  • 郑商所:TA003

请注意以上命名中的英文字母大小写,以及年月的数字。


【Q】连接SimNow的CTP服务器,主界面左下角日志区域没有任何输出信息,或者出现4097错误?

【A】可能有以下几个原因,请按顺序排查:

  1. SimNow提供两套环境,其中第一套仿真实盘环境只能在交易时段使用(9:00-15:00),第二套仿真测试环境只能在非交易时段使用(所有其他时间);
  2. 第一套环境中又分为三组服务器,vn.py只能连接第二和第三组服务器(支持穿透式验证的版本),不能连接第一组;
  3. 由于运维方面的原因,SimNow服务器有时会出现停机维护的情况(2019年之后尤其频繁),此时只能等待到下一个交易日再尝试。

【Q】CTP接口报错:“交易服务器授权验证失败,代码:63,信息:CTP:客户端认证失败”是怎么回事?

【A】这个报错是因为登录时,填写的穿透式认证的产品名称和授权码错误。如果是实盘账户请联系期货公司确认,如果是SimNow账户请使用下面的配置(来自SimNow官网)

  • 产品名称:simnow_client_test
  • 授权编码:0000000000000000

【Q】申请穿透式接入时,期货公司要求提供AppID,请问AppID是什么?

【A】AppID是一个由用户提供的交易程序的代码,具体怎么写可以参考这篇文章:《看完这篇,彻底搞定期货穿透式CTP API接入》


【Q】行情订阅失败,说找不到合约,请问这是怎么回事?

【A】查找合约可以点击主界面的顶部菜单栏的【帮助】->【查询合约】打开对话窗口:

  • 在对话窗口的搜索框中输入想要交易的合约代码的一部分,搜索全部相关的合约信息;
  • 或者将搜索框留空,直接点击搜索,则会显示当前已连接的交易接口所能交易的全部合约。

通过搜索出来的结果,即可判断合约代码的正确写法。

同时两种比较常见的出错原因:

  1. 代码名称写错,比如【RM101.CZCE】可能打成了【rm101.CZCE】。
  2. 找不到该合约,比如说已退市的合约或者是账户权限外的合约。像SimNow账户就不支持期权仿真环境,所以SimNow账户是找不到期权合约的。如果需要的话,可以去支持期权仿真环境的期货公司申请试用账户。

 
RQData数据服务


【Q】RQData中的连续合约数据,提供88、888、99等多种类型,做CTA策略回测应该用哪个?

【A】首先是数据的区别,以股指IF合约为例:

  • IF88:简单将IF股指期货每个主力月份的量价数据进行拼接,未做任何平滑处理,在主力合约换月时数据会有跳空的现象,因此该数据只适合日内CTA策略的回测(收盘无持仓)
  • IF888:在IF88数据的基础上,当主力合约换月时记录换月的价差金额,并对之前的历史数据全部加上或者减去该价差,进行平滑处理,因此该数据适合隔夜CTA策略的回测(收盘有持仓)
  • IF99:由所有可交易品种的数据,以累计持仓量进行加权平均后,得出的指数数据,由于其在现实中不可交易(交易所并不提供指数合约),因此不推荐使用该数据进行回测,可用于某些数据模型的研究

具体细节可以参考米筐官方的RQData文档页面


【Q】RQData报错:this license is only allowed to access through the education network,请问这个该怎么解决?

【A】这个报错说明使用的是学生账号,只能在校园网环境下使用。如果已经使用的是校园网络,但仍报同样的错,应该是ip地址不在的RQData网段池里,建议联系RQData的工作人员进行添加。


【Q】RQData报错:rqdatac.share.errors.QuotaExceeded: Quota exceeded,请问这个是什么情况?

【A】这个报错说明目前该账户同时登录的次数超过了限制。对于付费用户,RQData默认允许同时有3个连接登录,对于试用账户则只有1个了。请关闭其他连接了RQData的进程后,再次尝试即可。

 

CTA策略交易


【Q】我自己开发的策略,应该放到什么目录?

【A】CtaStrategy和CtaBacktester两个模块,在启动时都会自动扫描加载VN Trader运行时目录(主界面窗口顶部标题栏的路径)下的strategies目录中的策略文件。

默认情况下,运行时目录是当前操作系统的用户目录,假设你的用户名为abc:

  • Windows系统

    • 用户目录为c:\users\abc;
    • 策略应该放在c:\users\strategies中
  • Linux/Mac系统

    • 用户目录为/home/abc
    • 策略应该放在/home/abc/strategies中

 

历史数据和数据库


【Q】vn.py支持哪些数据库?对于用户来说应该怎么选择?

【A】目前一共支持四套数据库:SQLite、MySQL、PostgreSQL以及MongoDB。其中SQLite、MySQL和PostgreSQL属于SQL类数据库,MongoDB属于NoSQL类数据库。

从各自的特点看:

  • SQLite:采用单一本地文件来保存数据,用户无需安装任何软件即可使用,也是vn.py默认使用的数据库,推荐绝大部分刚上手的用户使用(无需做任何配置);
  • MySQL:互联网时代使用广泛的数据库,需要额外安装运行MySQL数据库服务(可以选择本机或者独立服务器部署),推荐需要同时运行多个VN Trader进程访问数据库,且有一定SQL经验的用户使用;
  • MongoDB:基于类似Json格式储存的文件型数据库,其查询语言比起SQL更加适合交易员的胃口(易上手),同时速度性能比起MySQL有一定优势,推荐需要同时运行多个VN Trader进程访问数据库,且不会SQL的用户使用
  • PostgreSQL:功能强大的开源数据库之一,比起MySQL支持更复杂的查询语法和数据格式,但同样也需要大量的时间来学习和配置,只推荐对其已有丰富使用经验的用户使用。

关于数据库的具体配置方法,请参考官网文档


【Q】手头已有从其他来源(淘宝购买、软件导出等)获取的CSV格式的K线数据,如何导入到vn.py中用于策略历史回测分析?

【A】注意:最新版本中已将之前的CsvLoader模块的功能,合并到了DataManager模块中。

操作流程如下:

  1. 在VN Station中启动VN Trader Pro时,勾选加载DataManager应用模块;
  2. 打开VN Trader主界面后,点击顶部菜单栏的【功能】->【数据管理】,打开DataManager窗口;
  3. 点击右上角的【导入数据】按钮,弹出对话框【从CSV导入数据】;
  4. 点击【选择文件】按钮,在弹出的对话框中选择要导入的CSV文件路径;
  5. 在【合约信息】栏目下,配置要把数据放到其中的目标数据库,注意周期只支持:MINUTE(1分钟线)、HOUR(1小时线)、DAILY(1日线)、WEEKLY(1周线);
  6. 在【表头信息】栏目下,根据CSV文件内的表头进行匹配,注意如果是英文大小写必须完全一致;
  7. 在【格式信息】栏目下,对日期时间戳的字符串格式进行匹配,大部分情况下注意分隔符(如年月日用“-”还是“/”)以及日期时间之间是否有空格就够了;
  8. 点击【确定】按钮执行导入操作,导入过程中界面会假死,通常耗费几秒到十几分钟的时间(视乎数据量);
  9. 完成后点击右上角的【刷新】按钮,即可查询数据库中当前该合约的
Member
avatar
加入于:
帖子: 8
声望: 0

mark

Member
avatar
加入于:
帖子: 126
声望: 14

赞~
可以加上接口的兼容性
https://www.vnpy.com/forum/topic/5131-qing-wen-wei-shi-yao-script-traderxia-deng-lu-jiao-yi-zheng-chang-vntraderxia-deng-lu-jiu-4097ni

Member
avatar
加入于:
帖子: 1
声望: 0

mark

Member
avatar
加入于:
帖子: 4
声望: 0

Mark

Member
avatar
加入于:
帖子: 6
声望: 0

mark

Member
avatar
加入于:
帖子: 34
声望: 0

description
自己写的策略在cta策略中为啥没出现呢

Member
avatar
加入于:
帖子: 337
声望: 28

请看一下定义的策略里 class 后面的类名是否和示例策略重复了
张爱民 wrote:

description
自己写的策略在cta策略中为啥没出现呢

Member
avatar
加入于:
帖子: 23
声望: 0

您好,买的课程,有提供$吗?我司准备买你们的《深入定价模型策略》。

Member
avatar
加入于:
帖子: 1
声望: 0

description

Member
avatar
加入于:
帖子: 5080
声望: 306

自行替换dll

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】