原创文章,转载请注明出处:用Python的交易员
2016年已经快要过去一半,目前vn.py项目的交易平台vn.trader已经基本定型,在发布v1.0以前不再会有新的功能模块添加,接下来的时间将会主要集中精力在修复一些小bug方面,同时针对新用户推出这个《vn.trader使用教程系列》,帮助大家更快上手使用。
和大多数商业软件的傻瓜式一路“下一步”的安装方法不同,vn.trader运行环境的安装需要用户自行操作的地方较多:Python运行时环境、各项插件、数据库等等。
这里介绍的是较为简洁方便、适合新手的Windows通用安装流程,精力旺盛的资深用户可以自行选择其他的安装方式,但是如果你最后失败了,回到这个流程一步步做下去保证可以运行起来:
准备一台Windows 7 64位系统的电脑
安装Anaconda:下载Python 2.7 32位版本,注意必须是32位
安装MongoDB:下载Windows 64-bit 2008 R2+版本
安装pymongo:在cmd中运行pip install pymongo
参考这里,将MongoDB注册为Windows服务并启动
安装Visual C++ Redistributable Packages for VS2013,中英文随意,为了未来使用方便把x86和x64的都给撞了
安装QDarkStyleSheet(非常漂亮的PyQt黑色主题):在cmd中运行pip install qdarkstyle
在vn.py项目的Github主页选择Download ZIP下载项目代码,并解压到C:\vnpy
打开C:\vnpy\vn.trader文件夹,准备进行下一步的交易接口配置
除了上述建议的环境外,目前已经有社区用户在以下环境中成功运行(通常需要重新编译API和修改部分代码):
Anaconda 64位版本
Windows 8/10
VS2015
Ubuntu/Debian
Mac(只能使用IB和Oanda接口)
未来vn.py项目组官方会加入对Ubuntu 16.04环境的支持,其他环境用户就只有自行折腾了,这里强烈建议想专心做交易的朋友不要轻易入坑。
完成运行环境的安装后,我们需要配置交易接口,每个接口的功能如下:
接口 | 名称 | 相关品种 | 功能 |
---|---|---|---|
ctpGateway | CTP | 期货、期货期权、证券期权 | 行情、交易 |
ltsGateway | LTS | 证券、证券期权 | 行情、交易 |
xspeedGateway | 飞创 | 期货、期货期权 | 行情、交易 |
femasGateway | 飞马 | 中金所期货和期货期权 | 行情、交易 |
ksotpGateway | 金仕达期权 | 期货、期货期权、证券期权 | 行情、交易 |
ksgoldGateway | 金仕达黄金 | 金交所贵金属 | 行情、交易 |
sgitGateway | 飞鼠 | 期货、金交所贵金属 | 行情、交易 |
oandaGateway | OANDA | 外汇、CFD | 行情、交易 |
ibGateway | 盈透证券 | 外盘证券、期货、期权、外汇、债券等 | 行情、交易 |
windGateway | 万得 | 证券、期货、外汇、期权、债券、指数等 | 行情 |
目前vn.trader基本实现了国内外全品种的交易,期货的接口最多(CTP、飞马、飞创等),股票的接口目前只有LTS,金交所贵金属的接口飞鼠性能较强,但很多银行提供的接口是金仕达黄金,做外盘交易推荐使用盈透证券(功能最强大),如果是刚入门交易的可以试试OANDA(10美元就能开实盘账户并且正常交易)。
这里以最常用的CTP接口举例介绍如何配置交易接口。
首先需要有一个CTP的仿真或者实盘账户,本着对自己钱包负责的态度,我建议新手从仿真账户开始,可以在SimNow官网注册,完成后记好账号和密码。
然后前往该页面查询SimNow的服务器地址和经纪商编码(BrokerID),Trade Front对应交易服务器地址,Market Front对应行情服务器地址,从标准CTP的服务器中选一个就可以。
使用代码编辑器(如Sublime Text、VS Code等,不要用WingIDE之类的IDE,可能有文本编码问题)打开vn.trader/ctpGateway文件夹下的CTP_connect.json,可以看到如下内容:
{
"brokerID": "9999",
"tdAddress": "tcp://180.168.146.187:10000",
"password": "simnow申请",
"mdAddress": "tcp://180.168.212.228:41213",
"userID": "simnow申请"
}
分别修改每个字段为之前步骤中我们记录下来的信息:
brokerID:经纪商编码
tdAddress:交易服务器地址(服务器地址:端口号),修改时注意不要少了tcp://
mdAddress:行情服务器地址,同样注意不要少了tcp://
userID:账号
password:密码
保存后就完成了接口的配置。
注意事项:
编辑json时,一定要使用代码编辑器(推荐Sublime Text),使用IDE大概率会出现文本编码问题(JSON文件无法打开);
修改服务器地址时不要少了tcp://,这是迄今为止发现用户最常犯的错误之一,会导致接口初始化时程序直接崩溃;
如果已经有了CTP的实盘账户,可以通过下载期货公司的快期交易软件,登录时点击测速和代理,查询实盘服务器的地址和端口号,而经纪商编码brokerID可以百度查询或者咨询期货公司的客户经理。