2016年已经快要过去一半,目前vn.py项目的交易平台vn.trader已经基本定型,在发布v1.0以前不再会有新的功能模块添加,接下来的时间将会主要集中精力在修复一些小bug方面,同时针对新用户推出这个《vn.trader使用教程系列》,帮助大家更快上手使用。
安装运行环境
和大多数商业软件的傻瓜式一路“下一步”的安装方法不同,vn.trader运行环境的安装需要用户自行操作的地方较多:Python运行时环境、各项插件、数据库等等。
这里介绍的是较为简洁方便、适合新手的Windows通用安装流程,精力旺盛的资深用户可以自行选择其他的安装方式,但是如果你最后失败了,回到这个流程一步步做下去保证可以运行起来:
- 准备一台Windows 7 64位系统的电脑
- 安装[Anaconda](http://www.continuum.io/downloads):下载Python 2.7 32位版本,注意必须是32位
- 安装[MongoDB](Downloads | MongoDB):下载Windows 64-bit 2008 R2+版本
- 安装pymongo:在cmd中运行pip install pymongo
- 参考[这里](http://jingyan.baidu.com/article/6b97984dbeef881ca2b0bf3e.html),将MongoDB注册为Windows服务并启动
- 安装[Visual C++ Redistributable Packages for VS2013](Visual C++ Redistributable Packages for Visual Studio 2013),中英文随意,为了未来使用方便把x86和x64的都给撞
- 安装QDarkStyleSheet(非常漂亮的PyQt黑色主题):在cmd中运行pip install qdarkstyle
- 在[vn.py项目的Github主页](GitHub – vnpy/vnpy: 基于python的开源交易平台开发框架)选择Download ZIP下载项目代码,并解压到C:\vnpy
- 打开C:\vnpy\vn.trader文件夹,准备进行下一步的交易接口配置
除了上述建议的环境外,目前已经有社区用户成功在以下环境中成功运行:
- Anaconda 64位版本
- Windows 8/10
- VS2015
- Ubuntu/Debian
未来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仿真交易【官方网站】)官网注册,完成后记好账号和密码。
然后前往[该页面](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可以百度查询或者咨询期货公司的客户经理