2026世界杯_2004年世界杯 - 1606811.com

首页 > 开幕式世界杯 > vn.py新手入门FAQ 2020

vn.py新手入门FAQ 2020

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

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

更新日期:2020-12-11

针对许多初学者在刚开始使用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】可能有以下几个原因,请按顺序排查:

SimNow提供两套环境,其中第一套仿真**实盘环境只能在交易时段使用(9:00-15:00),第二套仿真测试环境**只能在非交易时段使用(所有其他时间);

第一套环境中又分为三组服务器,vn.py只能连接第二和第三组服务器(支持穿透式验证的版本),不能连接第一组;

由于运维方面的原因,SimNow服务器有时会出现停机维护的情况(2019年之后尤其频繁),此时只能等待到下一个交易日再尝试。

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

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

产品名称:simnow_client_test

授权编码:0000000000000000

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

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

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

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

在对话窗口的搜索框中输入想要交易的合约代码的一部分,搜索全部相关的合约信息;

或者将搜索框留空,直接点击搜索,则会显示当前已连接的交易接口所能交易的全部合约。

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

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

代码名称写错,比如【RM101.CZCE】可能打成了【rm101.CZCE】。

找不到该合约,比如说已退市的合约或者是账户权限外的合约。像SimNow账户就不支持期权仿真环境,所以SimNow账户是找不到期权合约的。如果需要的话,可以去支持期权仿真环境的期货公司申请试用账户。

【Q】CTP/CTPTEST接口在登陆时报错:“交易服务器登录失败,代码:3,信息:CTP:不合法的登录”,是怎么回事?

【A】这个报错是典型的账号密码错误,可以检查一下是否输入错误:

对于SimNow环境,账号是填写InvestorID(纯数字),而不是网站注册时填写的账号(手机号);

如果确定没有输入错误的话,那么请检查是否服务器的地址配置产生错误了(比如测试和生产环境搞混)。

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】启动CTA策略模块时,弹出报错json.decoder.JSONDecodeError: Expecting value: line xx column xx (char xxx),应该该怎么解决呢?

【A】首先请删除C:\users\administrator.vntrader文件夹里对应的json文件:

cta_strategy_setting.json

cta_strategy_data.json

注意,这里的administrator应该是你的Windows操作系统用户名。删除后重启VN Trader即可。

如果后续再次出现该错误,请检查策略代码中,是否有把str、bool、int、float类型以外的变量名称写到了parameters列表中,这四种类型以外的变量由于无法通过json序列化会导致保存策略状态出错(损坏json文件)。

历史数据和数据库

【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模块中。

操作流程如下:

在VN Station中启动VN Trader Pro时,勾选加载DataManager应用模块;

打开VN Trader主界面后,点击顶部菜单栏的【功能】->【数据管理】,打开DataManager窗口;

点击右上角的【导入数据】按钮,弹出对话框【从CSV导入数据】;

点击【选择文件】按钮,在弹出的对话框中选择要导入的CSV文件路径;

在【合约信息】栏目下,配置要把数据放到其中的目标数据库,注意周期只支持:MINUTE(1分钟线)、HOUR(1小时线)、DAILY(1日线)、WEEKLY(1周线);

在【表头信息】栏目下,根据CSV文件内的表头进行匹配,注意如果是英文大小写必须完全一致;

在【格式信息】栏目下,对日期时间戳的字符串格式进行匹配,大部分情况下注意分隔符(如年月日用“-”还是“/”)以及日期时间之间是否有空格就够了;

点击【确定】按钮执行导入操作,导入过程中界面会假死,通常耗费几秒到十几分钟的时间(视乎数据量);

完成后点击右上角的【刷新】按钮,即可查询数据库中当前该合约的数据范围情况。

其他应用模块

【Q】启动VN Trader时,报错zmq.error.ZMQError: Permission denied,请问如何解决?

【A】出现这个报错是因为ZeroMQ使用的端口冲突了。在VN Station中配置VN Trader的加载模块时请注意,ExcelRtd、RpcService都需要用到ZeroMQ,因此同时加载就可能导致冲突情况。建议在使用的时候,只加载自己需要用到的模块即可。




米粒木匠之吾爱之心 第1集 我叫米粒
fasola是什么品牌?fasola太阳伞怎么样?