diff --git a/README.md b/README.md index 183e72a1..0e3d56fc 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,78 @@ --- + ### 简介 -vn.py是一套基于Python的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统。2015年初项目启动时只是单纯的交易API接口的Python封装。随着业内关注度的上升和社区不断的贡献,目前已经一步步成长为一套全面的交易程序开发框架,用户群体也日渐多样化,包括私募基金、券商自营和资管、期货资管和子公司、高校研究机构和专业个人投资者等。 +vn.py是基于Python的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统。2015年初项目启动时只是单纯的交易API接口的Python封装。随着业内关注度的上升和社区不断的贡献,目前已经成长为一套全功能的交易程序开发框架,用户群体也日渐多样化,包括私募基金、券商自营和资管、期货资管和子公司、高校研究机构和专业个人投资者等。 + +--- + +### 项目结构 + +1. 丰富的Python交易和数据API接口(vnpy.api),基本覆盖了国内外所有常规交易品种(股票、期货、期权、外汇、外盘、比特币),具体包括: + + - CTP(ctp) + + - 飞马(femas) + + - 中泰证券XTP(xtp) + + - 中信证券期权(cshshlp) + + - 金仕达黄金(ksgold) + + - 金仕达期权(ksotp) + + - 飞鼠(sgit) + + - 飞创(xspeed) + + - QDP(qdp) + + - 上海直达期货(shzd) + + - Interactive Brokers(ib) + + - OANDA(oanda) + + - OKCOIN(okcoin) + + - 火币(huobi) + + - 链行(lhang) + + - 通联数据(datayes) + +2. 简洁易用的事件驱动引擎(vnpy.event),作为事件驱动型交易程序的核心 + +3. 支持服务器端数据推送的RPC框架(vnpy.rpc),用于实现多进程分布式架构的交易系统 + +4. 开箱即用的实盘交易平台框架(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易程序,应用举例: + + * 同时登录多个交易接口,在一套界面上监控多种市场的行情和多种资产账户的资金、持仓、委托、成交情况 + + * 支持跨市场套利(CTP期货和LTS证券)、境内外套利(CTP期货和IB外盘)、多市场数据整合实时预测走势(CTP的股指期货数据、IB的外盘A50数据、Wind的行业指数数据)等策略应用 + + * CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略) + + * 实盘行情记录,支持Tick和K线数据的落地,用于策略开发回测以及实盘运行初始化 + +5. 数据相关的API接口(vnpy.data),用于构建和更新历史行情数据库,目前包括: + + * 上海中期历史行情服务(shcifco) + + * 通联数据API下载服务(datayes) + + * 天勤行情数据接口(tq) + +6. 关于vn.py项目的应用演示(examples),对于新手而言可以从这里开始学习vn.py项目的使用方式 + +8. vn.py项目的Docker镜像(docker),目前尚未完成 + +9. [官网](http://vnpy.org)和[知乎专栏](http://zhuanlan.zhihu.com/vn-py),内容包括vn.py项目的开发教程和Python在量化交易领域的应用研究等内容 + +10. 官方交流QQ群262656087,管理较严格(定期清除长期潜水的成员) --- ### 环境准备 @@ -55,9 +124,9 @@ sudo /home/vnpy/anaconda2/bin/conda install -c quantopian ta-lib=0.4.9 1. 在[SimNow](http://simnow.com.cn/)注册CTP仿真账号,记下你的**账号、密码、经纪商编号**,然后下载快期查询你的**交易和行情服务器地址** -2. 找到你的Anaconda安装目录,打开Anaconda2\Lib\site-packages\vnpy-1.6.2b0-py2.7.egg\vnpy\trader\gateway\ctpGateway\CTP_connect.json,修改账号、密码、服务器等为上一步注册完成后你的信息(注意使用专门的编程编辑器,如Sublime Text等,防止json编码出错) +2. 找到vn.py应用示例目录examples,打开examples\VnTrader\CTP_connect.json,修改账号、密码、服务器等为上一步注册完成后你的信息(注意使用专门的编程编辑器,如Sublime Text等,防止json编码出错) -3. 在任意目录将以下内容保存为run.py,并双击运行(若无法双击,则在当前目录按住Shift点鼠标右键,打开cmd输入python run.py运行): +3. 找到VnTrader的启动入口run.py,并双击运行(若无法双击,则在当前目录按住Shift点鼠标右键,打开cmd输入python run.py运行),run.py内容如下: ``` # encoding: UTF-8 @@ -78,12 +147,14 @@ from vnpy.trader.uiQt import createQApp from vnpy.trader.uiMainWindow import MainWindow # 加载底层接口 -from vnpy.trader.gateway import (ctpGateway, oandaGateway, ibGateway, +from vnpy.trader.gateway import (ctpGateway, oandaGateway, ibGateway, huobiGateway, okcoinGateway) if system == 'Windows': - from vnpy.trader.gateway import (femasGateway, xspeedGateway, - sgitGateway, shzdGateway) + from vnpy.trader.gateway import femasGateway, xspeedGateway + +if system == 'Linux': + from vnpy.trader.gateway import xtpGateway # 加载上层应用 from vnpy.trader.app import (riskManager, ctaStrategy, spreadTrading) @@ -94,44 +165,46 @@ def main(): """主程序入口""" # 创建Qt应用对象 qApp = createQApp() - + # 创建事件引擎 ee = EventEngine() - + # 创建主引擎 me = MainEngine(ee) - + # 添加交易接口 me.addGateway(ctpGateway) me.addGateway(oandaGateway) me.addGateway(ibGateway) me.addGateway(huobiGateway) me.addGateway(okcoinGateway) - + if system == 'Windows': me.addGateway(femasGateway) me.addGateway(xspeedGateway) - me.addGateway(sgitGateway) - me.addGateway(shzdGateway) - + + if system == 'Linux': + me.addGateway(xtpGateway) + # 添加上层应用 me.addApp(riskManager) me.addApp(ctaStrategy) me.addApp(spreadTrading) - + # 创建主窗口 mw = MainWindow(me, ee) mw.showMaximized() - + # 在主线程中启动Qt事件循环 sys.exit(qApp.exec_()) if __name__ == '__main__': main() + ``` -以上run.py脚本位于examples\VnTrader目录下,更多使用方法方法请参考examples下的其他目录。 +更多使用方法方法请参考examples下的其他目录。 --- @@ -154,75 +227,6 @@ if __name__ == '__main__': * [Visual Studio 2013](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx):这个就不多说了(作者编译API封装用的是2013版本) ---- - -### 项目结构 - -1. 丰富的Python交易和数据API接口(vnpy.api),基本覆盖了国内外所有常规交易品种(股票、期货、期权、外汇、外盘、比特币),具体包括: - - - CTP(ctp) - - - 飞马(femas) - - - LTS(lts) - - - 中信证券期权(cshshlp) - - - 金仕达黄金(ksgold) - - - 金仕达期权(ksotp) - - - 飞鼠(sgit) - - - 飞创(xspeed) - - - QDP(qdp) - - - 上海直达期货(shzd) - - - Interactive Brokers(ib) - - - OANDA(oanda) - - - OKCOIN(okcoin) - - - 火币(huobi) - - - 链行(lhang) - - - 通联数据(datayes) - -2. 简洁易用的事件驱动引擎(vnpy.event),作为事件驱动型交易程序的核心 - -3. 支持服务器端数据推送的RPC框架(vnpy.rpc),用于实现多进程分布式架构的交易系统 - -4. 开箱即用的实盘交易平台框架(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易程序,应用举例: - - * 同时登录多个交易接口,在一套界面上监控多种市场的行情和多种资产账户的资金、持仓、委托、成交情况 - - * 支持跨市场套利(CTP期货和LTS证券)、境内外套利(CTP期货和IB外盘)、多市场数据整合实时预测走势(CTP的股指期货数据、IB的外盘A50数据、Wind的行业指数数据)等策略应用 - - * CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略) - - * 实盘行情记录,支持Tick和K线数据的落地,用于策略开发回测以及实盘运行初始化 - -5. 数据相关的API接口(vnpy.data),用于构建和更新历史行情数据库,目前包括: - - * 上海中期历史行情服务(shcifco) - - * 通联数据API下载服务(datayes) - -5. 关于vn.py项目的应用演示(examples),对于新手而言可以从这里开始学习vn.py项目的使用方式 - -5. 关于项目在实盘交易中的一些使用指南(tutorial) - -6. vn.py项目的Docker镜像(docker),目前尚未完成 - -7. [官网](http://vnpy.org)和[知乎专栏](http://zhuanlan.zhihu.com/vn-py),内容包括vn.py项目的开发教程和Python在量化交易领域的应用研究等内容 - -7. 官方交流QQ群262656087,管理较严格(定期清除长期潜水的成员) - - --- ### 贡献代码 @@ -256,8 +260,13 @@ vn.py使用github托管其源代码,如果希望贡献代码请使用github的 --- -### 联系作者 -作者知乎名:用python的交易员,想要联系作者可以通过知乎私信 +### 其他内容 + +* [获取帮助](https://github.com/vnpy/vnpy/blob/dev/docs/SUPPORT.md) +* [社区行为准侧](https://github.com/vnpy/vnpy/blob/dev/docs/CODE_OF_CONDUCT.md) +* [Issue模板](https://github.com/vnpy/vnpy/blob/dev/docs/ISSUE_TEMPLATE.md) +* [PR模板](https://github.com/vnpy/vnpy/blob/dev/docs/PULL_REQUEST_TEMPLATE.md) + --- ### License diff --git a/docs/SUPPORT.md b/docs/SUPPORT.md index 6a5591fb..a8ee457c 100644 --- a/docs/SUPPORT.md +++ b/docs/SUPPORT.md @@ -1,18 +1,8 @@ # 获取帮助 -* 操作系统: 如Windows 7或者Ubuntu 16.04 -* Anaconda版本: 如Anaconda 4.0.0 Python 2.7 32位 -* vn.py版本: 如v1.7发行版或者dev branch 20170920(下载日期) +在开发和使用vn.py项目的过程中遇到问题时,获取帮助的渠道包括: -## Issue类型 -三选一:Bug/Enhancement/Question - -## 预期程序行为 - - -## 实际程序行为 - - -## 重现步骤 - -针对Bug类型Issue,请提供具体重现步骤以及报错截图 +* Github Issues:[Issues页面](https://github.com/vnpy/vnpy/issues) +* 官方QQ群: 262656087 +* 项目论坛:[维恩的派](http://www.vnpie.com)) +* 项目邮箱: vn.py@foxmail.com