vn.trader使用教程系列1-安装和配置

本文介绍如何在Windows环境下安装vn.trader交易平台,并详细解释如何配置交易接口,包括期货、股票等多种市场接入方式。

原创文章,转载请注明出处:用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环境的支持,其他环境用户就只有自行折腾了,这里强烈建议想专心做交易的朋友不要轻易入坑。

交易接口配置(账号、密码、服务器地址)

完成运行环境的安装后,我们需要配置交易接口,每个接口的功能如下:


接口名称相关品种功能
ctpGatewayCTP期货、期货期权、证券期权行情、交易
ltsGatewayLTS证券、证券期权行情、交易
xspeedGateway飞创期货、期货期权行情、交易
femasGateway飞马中金所期货和期货期权行情、交易
ksotpGateway金仕达期权期货、期货期权、证券期权行情、交易
ksgoldGateway金仕达黄金金交所贵金属行情、交易
sgitGateway飞鼠期货、金交所贵金属行情、交易
oandaGatewayOANDA外汇、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可以百度查询或者咨询期货公司的客户经理。

vn.py】CTP首次登陆修改密码 之 接口调用法 c++量化 阅读约 7 分钟 编辑 背景 最近一直在玩vn.py,上一篇文章vn.py开发环境搭建(windows)介绍了如何搭建二次开发环境,解决了一些搭建环境过程中遇到的坑。那么接下来这篇文章将解决运行期间的第一个问题。 开始vn.py 1.环境部署完成之后,启动examples/vn_trader/run.py,弹出启动页面。具体搭建过程参考vn.py开发环境搭建(windows)。 image.png 2。连接CTP,点击系统->连接CTP,弹出连接界面。 image.png 3.介绍一下个字段 用户名:在simnow注册的用户名6位数字 密码:登录simnow使用的密码 经纪商代码:9999 交易服务器地址:180.168.146.187:10101 行情服务器地址:180.168.146.187:10111 产品名称:simnow_client_test 授权码:0000000000000000 16个0 4.获取你的用户名密码 登录http://www.simnow.com.cn/,从右上角的注册账号开始操作,这里就不讲了,大家自己鼓捣吧。 问题来了 所有准备工作做好后,点击连接,这时左下角会显示日志。 image.png 如果你是第一次登陆,那么会提示CTP首次登陆需要修改密码,这也就是我们今天要解决的问题 试图解决 刚看到这个问题觉得没什么,修改一下密码就可以了,但是。。。。。 首先没有再vn.py上找到可以修改密码的地方,后来想了想,也正常人家只是策略平台,也不仅仅是给CTP用, 所以去注册的地方simnow官网找找吧,但是。。。。 很遗憾仍然没有找到,这里不得不吐槽一下simnow了。是不是应该给个改密码的地方? 据说可以使用市场上的交易应用修改密码,大家可以去试试。或者大家有更好的方法也可以回复留言。 开始撸它 好吧,那么我们用程序员的方式来解决这个问题吧。 1.vnpy/api/ctp目录下可以看到完整ctp开发的api,包括库头文件。哈哈,是不是会让你产生非分之想? 2.我们在ThostFtdcTraderApi.h中发现了我们想要的东西 ///用户口令更新请求 virtual int ReqUserPasswordUpdate(CThostFtdcUserPasswordUpdateField *pUserPasswordUpdate, int nRequestID) = 0; 3.找到ctp api文档在simnow官网上可以找到,我这里用的事《综合交易平台TraderAPI接口说明.pdf》 4.开始撸代码吧,我显示在linux开始撸,后来发现我的操作系统编译器本太低,当然升级本应该可以解决,但升级gcc,glibc还是相当耗时的。所以后来移植到了windows,但工程还是linux风格,使用cmake构建,好在现在vs对cmake支持的不错。 5.继续撸,先贴一段吧 #include "ctp_trade_handler.h" #include "INIReader.h" #include int main(int argc, char* argv[]) { string a; INIReader reader("../conf/ctp.ini"); if (reader.ParseError() != 0) { std::cout << "Can't load 'test.ini'\n"; return 1; } std::cout << reader.GetInteger("user","BrokerID",9999) << endl; ctp_trade_handle ctp; ctp.CreateFtdcTraderApi(); ctp.RegisterFront("tcp://180.168.146.187:10100"); ctp.init(); //CThostFtdcReqAuthenticateField reqAuthenticate = { 0 }; //strcpy(reqAuthenticate.AppID, "simnow_client_test"); //strcpy(reqAuthenticate.UserID, "158477"); //strcpy(reqAuthenticate.AuthCode, "0000000000000000"); //strcpy(reqAuthenticate.BrokerID, "9999"); //ctp.ReqAuthenticate(&reqAuthenticate, 1); CThostFtdcReqUserLoginField reqUserLogin = { 0 }; strcpy(reqUserLogin.BrokerID,"9999"); strcpy(reqUserLogin.UserID,"158477"); strcpy(reqUserLogin.Password,"qwe123"); ctp.ReqUserLogin(&reqUserLogin, 1); std::cout <> a; CThostFtdcUserPasswordUpdateField reqUserPasswordUpdate = { 0 }; strcpy(reqUserPasswordUpdate.BrokerID, "9999"); strcpy(reqUserPasswordUpdate.UserID, "158477"); strcpy(reqUserPasswordUpdate.OldPassword, "qwe123"); strcpy(reqUserPasswordUpdate.NewPassword, a.c_str()); ctp.ReqUserPasswordUpdate(&reqUserPasswordUpdate, 3); std::cin >> a; ctp.exit(); return 0; } 代码很简单,这里就不多说了。目前只是为了解决我修改密码的需求,后续还会不断完善。 如有需要可以自己取来撸,代码托管地址:https://github.com/FrankXMX/c... 欢迎watchstar 5.使用上就是填写好你的相关信息,编译运行,输入新密码。得到屏幕输出。 6.回到vn.py,使用新密码重新连接ctp。 大功告成!!!
<think>好的,我现在要帮助用户了解如何安装使用vn.py。首先,我需要回顾一下用户提供的引用内容,特别是引用[2],里面提到了一些关于vn.py开发环境搭建的信息。用户可能遇到了安装依赖库的问题,比如ta-lib,以及本更新冲突的问题。用户希望得到安装教程使用方法入门指南。 首先,安装部分。根据引用[2],vn.py曾经推荐克隆GitHub仓库到本地并使用Pycharm开发,但后来他们推出了集成开发环境Python发行,简化了安装过程。所以现在应该推荐使用Anacondavn.py官方提供的环境配置。需要分步骤说明安装Anaconda、创建虚拟环境、安装vn.py依赖,可能还需要处理ta-lib的问题,比如使用conda-forge安装。 然后,使用方法部分。需要介绍如何启动VN Station,配置项目,运行策略。可能还需要提到Jupyter Notebook的使用,因为很多量化教程会用Notebook做回测数据分析。引用[1]提到了回测模块runBacktesting.py,可能需要说明如何导入策略,进行回测。 入门指南部分,应该引导用户查阅官方文档,学习基础概念,比如策略开发、连接交易接口、风险控制等。还要提到社区支持,比如GitHub Issues论坛,这对新手很重要。 另外,用户可能遇到的问题,比如环境配置错误,依赖冲突,需要给出解决建议,如使用特定本的OS,或者参考引用[3]提到的CentOS或Ubuntu本,避免使用较新的系统可能带来的兼容性问题。 最后,生成相关问题,考虑用户可能后续会遇到的疑问,比如优化安装问题,策略开发,回测方法,常见错误处理等。 需要确保所有步骤清晰,避免使用复杂术语,适合新手跟随操作。同时,注意引用来源,比如引用[2]提到使用IDE发行更简单,所以安装步骤应基于此,而不是旧的克隆方法。</think>### 如何安装使用vn.py #### 一、安装教程(基于官方推荐方式) 1. **安装Anaconda** - 下载适用于Python 3.7本的Anaconda(vn.py对Python 3.7兼容性最佳)[^2]。 - 创建虚拟环境: ```bash conda create -n vnpy python=3.7 conda activate vnpy ``` 2. **安装vn.py依赖** - 使用`conda`安装核心库(如TA-Lib): ```bash conda install -c conda-forge ta-lib ``` - 通过`pip`安装vn.py完整: ```bash pip install vnpy_full ``` 3. **验证安装** - 启动VN Station(官方管理工具): ```bash vnstation ``` - 若提示缺少模块,需手动安装缺失依赖(如`vnpy_ctp`等接口模块)。 --- #### 二、快速使用指南 1. **配置项目** -VN Station中创建新项目,选择需要的模块(如`vnpy_ctp`用于期货交易接口)。 - 配置数据库(推荐MongoDB存储历史数据)。 2. **运行策略示例** - 使用Jupyter Notebook加载双均线策略模板: ```python from vnpy.app.cta_strategy.backtesting import BacktestingEngine engine = BacktestingEngine() engine.set_parameters(...) engine.run_backtesting() ``` 3. **连接交易接口** - 编辑`connect_ctp.json`配置文件,填入期货公司提供的账号、服务器地址等参数。 - 通过VN Trader界面启动CTP连接[^1]。 --- #### 三、注意事项 1. **系统兼容性** - 推荐使用CentOS 7.x或Ubuntu Xenial系统,避免最新系统可能存在的驱动兼容问题[^3]。 2. **本更新** - 使用`pip install --upgrade vnpy_full`保持本同步,减少本地与仓库的代码冲突。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值