Go to file
2017-03-10 23:27:50 +08:00
FAQ
vn.archive
vn.ctp 增加Python3封装 2017-03-10 21:17:25 +08:00
vn.datayes
vn.demo
vn.event 修改EventEngine的启动函数,允许不启动Timer 2017-01-04 22:08:44 +08:00
vn.femas
vn.how fix bug 2017-02-16 15:12:34 +08:00
vn.huobi 增加vn.trader的链行接口 2017-02-25 02:05:06 +08:00
vn.ib 增加vn.ib英文简介 2017-01-21 17:06:07 +00:00
vn.ksgold
vn.ksotp
vn.lhang 增加King Keltner策略 2017-03-06 22:07:24 +08:00
vn.lts
vn.oanda
vn.okcoin
vn.qdp
vn.rpc
vn.sgit
vn.shzd
vn.trader 在CTP接口层添加对无效数据的过滤 2017-03-10 23:24:24 +08:00
vn.xspeed
.gitignore
LICENSE
README.md quickstart加粗 2017-01-17 22:58:39 +08:00

vn.py - 基于python的开源交易平台开发框架

项目捐赠

vn.py项目两岁啦感谢社区一直以来的热情支持没有你们就没有今天的vn.py

最近提出希望捐赠的朋友挺多决定开始接受捐赠。现阶段计划将收到的全部捐赠资金都投入到vn.py项目基金用于支持后续的项目开发和各项活动。

在此先强调一下:vn.py是开源项目可以永久免费使用并没有强制捐赠的要求

捐赠方式支付宝3216630132@qq.com*晓优)

计划长期维护一份捐赠清单,所以请在留言中注明是项目捐赠以及捐赠人的名字(当然想匿名的用户就随意了)。


2016年vn.py项目计划回顾

转眼之间已经到了2016年的四季度感谢广大用户的支持vn.py项目在这一年中成长得十分迅速。截止2016年10月13日Github上的Star已经从年初的583上升到了1672Fork也从362上升到了987。目前在Github上量化交易相关的项目里vn.py名列全球第三仅次于zipline和tushare。为了让社区的成员们能比较全面的了解项目近况这里对2016年初的项目计划做个简单的回顾。

代码方面:

  1. 完善飞创、易盛等相对小众接口的添加这块将由社区驱动作者主要负责代码检查和管理增加了vn.xspeed、vn.sgit、vn.okcoin、vn.shzd等接口易盛暂时还未有计划

  2. 整理vn.py项目中API的具体版本号保证封装接口的对应这点已经有多位用户提起过项目初期没有做详细记录所以很多API的版本号一时都较难对上已完成

  3. Linux上API的编译以及vn.trader支持已完成

  4. 基于VirtualBox的vn.py开发环境镜像解决部分用户反映项目初期不知该如何搭建开发环境的问题这个镜像会由官方长期维护下去已完成

文章方面:

  1. 作者自己作为交易员的成长经历通过知乎LIVE完成

  2. vn.trader的使用教程已完成

  3. 将ta-lib技术分析和quantlib金融工程和量化整合到vn.trader中应用的教程解决目前策略开发过程中技术指标和量化函数缺乏的问题已完成

  4. 一套关于开发基于股指交易ETF期权的CTA策略的教程未完成上证50指数已经基本走成一条直线本条工作暂时看不到意义了

社区方面:

  1. 重新建设官方网站目前使用的是托管在Github Pages上的Hexo静态博客一来功能比较有限二来有些用户反映Github时不时会被墙考虑基于Flask重建一个托管在国内的官网已完成基于Pelican的新官网

  2. 有用户提出建设互动性更强的网站作为交流平台如论坛或者知乎Q&A类似的模式这点在考虑中主要制约因素是作者参与的时间可能考虑和更多的资深用户合作是个好主意已完成维恩的派论坛


论坛

新的论坛维恩的派已经上线感谢量衍投资对vn.py项目的支持

如果你在使用vn.py的过程中有任何疑问想求助或者经验想分享欢迎到维恩的派上面发帖项目作者和其他主要贡献者也会每天阅帖保证回复的效率。


Quick Start

对于大部分用户来说无需自行编译API接口可以直接使用vn.trader进行交易和策略开发

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

  2. 安装Anaconda:下载Anaconda 4.0.0 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,中英文随意

  7. 在本页面选择Download ZIP下载项目代码并解压到C:\vnpy

  8. SimNow注册CTP仿真账号记下你的账号、密码、经纪商编号,然后下载快期查询你的交易和行情服务器地址

  9. 把C:\vnpy\vn.trader\ctpGateway\CTP_connect.json中的账号、密码、服务器等修改为上一步注册完成后你的信息注意使用专门的编程编辑器如Sublime Text等防止json编码出错

  10. 双击运行C:\vnpy\vn.trader\vtMain.py开始交易

对于想研究API封装的用户可以参考vnpy.org上面的教程一步步操作。

其他作者建议使用的软件工具:

  • WingIDE非常好用的Python集成开发环境作者就是用它写的vn.py

  • RobomongoMongoDB的图形化客户端方便监控和修改数据

  • Sublime Text针对编程的文本编辑器当然你也可以使用Vim或者Emacs

  • PyQtGraph适用于开发实时更新数据的图表如Tick图、K线图、期权波动率曲线等Matplotlib渲染开销太大用于实盘绘图可能拖慢整个程序

  • Visual Studio 2013这个就不多说了作者编译API封装用的是2013版本

注意:

按照以上方式配置后便可以使用vn.py的CTP, LTS, KSOTP等大多数交易接口但在启动vtMain.py时 你可能会遇到以下错误:

请先安装WindPy接口
global name 'w' is not defined
No module named ib.ext.Contract
No module named websocket

它们分别对应Wind, IB, OKCOIN三个交易接口如果你不使用这三个接口可以直接忽略这些错误不会影响使用。

但如果你需要,可以通过以下方式安装其对应的库:

  • WIND - 到大奖章网站注册并下载安装Wind资讯开放应用接口个人版即可使用机构版Wind终端的用户可以直接在终端里安装Python接口

  • IB - 参考https://github.com/blampe/IbPy 基本上是两步:

git clone https://github.com/blampe/IbPy.git

cd IbPy
python setup.py install

  • OKCOIN - pip install websocket-client or conda install websocket-client

How To Contribute

vn.py使用github托管其源代码贡献代码使用github的PR(Pull Request)的流程,十分的强大与便利:

  1. 创建 Issue - 对于较大的改动(如新功能,大型重构等)最好先开issue讨论一下较小的improvement(如文档改进bugfix等)直接发PR即可

  2. Fork vn.py - 点击右上角Fork按钮

  3. Clone你自己的fork: git clone https://github.com/$userid/vnpy.git

  4. dev修改并将修改push到你的fork上

  5. 创建从你的fork的dev分支到主项目的dev分支的[Pull Request] - 在此点击Compare & pull request

  6. 等待review, 需要继续改进或者被Merge!


vn.py项目结构

  1. 丰富的Python交易和数据API接口基本覆盖了国内外所有常规交易品种股票、期货、期权、外汇、外盘、比特币具体包括

    • CTPvn.ctp

    • 飞马vn.femas

    • LTSvn.lts

    • 金仕达黄金vn.ksgold

    • 金仕达期权vn.ksotp

    • 飞鼠vn.sgit

    • 飞创vn.xspeed

    • QDPvn.qdp

    • OANDAvn.oanda

    • OKCOIN比特币vn.okcoin

    • 上海直达期货vn.shzd

    • Interactive Brokersvn.ib目前在开发中

    • 通联数据vn.datayes

  2. 简洁易用的事件驱动引擎vn.event作为事件驱动型交易程序的核心

  3. 支持服务器端数据推送的RPC框架vn.rpc用于实现多进程分布式架构的交易系统

  4. 针对如何使用API和事件驱动引擎开发交易程序的示例vn.demo

  5. 开箱即用的实盘交易平台vn.trader相比之下vn.demo仅建议学习用整合了多种交易接口并针对具体策略算法和功能开发提供了简洁易用的API功能应用举例

    • 同时登录多个交易接口,在一套界面上监控多种市场的行情和多种资产账户的资金、持仓、委托、成交情况

    • 支持跨市场套利CTP期货和LTS证券、境内外套利CTP期货和IB外盘、多市场数据整合实时预测走势CTP的股指期货数据、IB的外盘A50数据、Wind的行业指数数据等策略应用

    • CTA策略引擎模块在保持易用性的同时允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制降低交易滑点、实现高频策略

  6. 官网知乎专栏内容目前主要是《Python量化交易平台开发教程系列》以及vn.py项目进展的更新

  7. 官方交流QQ群262656087管理较严格定期清除长期潜水的成员


联系作者

作者知乎名用python的交易员想要联系作者可以通过知乎私信


License

MIT