Date

原创文章,转载请注明出处:用Python的交易员

2016年已经快要过去一半,目前vn.py项目的交易平台vn.trader已经基本定型,在发布v1.0以前不再会有新的功能模块添加,接下来的时间将会主要集中精力在修复一些小bug方面,同时针对新用户推出这个《vn.trader使用教程系列》,帮助大家更快上手使用。

安装运行环境

和大多数商业软件的傻瓜式一路“下一步”的安装方法不同,vn.trader运行环境的安装需要用户自行操作的地方较多:Python运行时环境、各项插件、数据库等等。

这里介绍的是较为简洁方便、适合新手的Windows通用安装流程,精力旺盛的资深用户可以自行选择其他的安装方式,但是如果你最后失败了,回到这个流程一步步做下去保证可以运行起来:

  1. 准备一台Windows 7 64位系统的电脑

  2. 安装Anaconda:下载Python 2.7 32位版本,注意必须是32位

  3. 安装MongoDB:下载Windows 64-bit 2008 R2+版本

  4. 安装pymongo:在cmd中运行pip install pymongo

  5. 参考这里,将MongoDB注册为Windows服务并启动

  6. 安装Visual C++ Redistributable Packages for VS2013,中英文随意,为了未来使用方便把x86和x64的都给撞了

  7. 安装QDarkStyleSheet(非常漂亮的PyQt黑色主题):在cmd中运行pip install qdarkstyle

  8. vn.py项目的Github主页选择Download ZIP下载项目代码,并解压到C:\vnpy

  9. 打开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:密码

保存后就完成了接口的配置。

注意事项:

  1. 编辑json时,一定要使用代码编辑器(推荐Sublime Text),使用IDE大概率会出现文本编码问题(JSON文件无法打开);

  2. 修改服务器地址时不要少了tcp://,这是迄今为止发现用户最常犯的错误之一,会导致接口初始化时程序直接崩溃;

  3. 如果已经有了CTP的实盘账户,可以通过下载期货公司的快期交易软件,登录时点击测速和代理,查询实盘服务器的地址和端口号,而经纪商编码brokerID可以百度查询或者咨询期货公司的客户经理。