From 09b74d5d4fa187c7df9b0605101c33c3ae2e1bf6 Mon Sep 17 00:00:00 2001 From: "vn.py" Date: Sun, 12 Aug 2018 23:13:32 +0800 Subject: [PATCH] =?UTF-8?q?[Add]v1.9.0=E5=8F=91=E5=B8=83=E5=89=8D=E7=9A=84?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 75 +++++++++++++++++------ examples/README.md | 6 +- init.bat | 2 +- requirements.txt | 2 +- vnpy/__init__.py | 2 +- vnpy/api/README.md | 23 ------- vnpy/trader/app/spreadTrading/stEngine.py | 8 +-- 7 files changed, 64 insertions(+), 54 deletions(-) delete mode 100644 vnpy/api/README.md diff --git a/README.md b/README.md index 0aff9bce..a671e6fa 100644 --- a/README.md +++ b/README.md @@ -13,51 +13,85 @@ vn.py是基于Python的开源量化交易程序开发框架,起源于国内私 ### 项目结构 -1. 丰富的Python交易API接口(vnpy.api),基本覆盖了国内外所有常规交易品种(股票、期货、期权、外汇、外盘、比特币),具体包括: +1. 丰富的Python交易API接口(vnpy.api),基本覆盖了国内外所有常规交易品种(股票、期货、期权、外汇、外盘、数字货币),具体包括: - - CTP(ctp) + - 传统金融 - - 飞马(femas) + - CTP(ctp) - - 中泰证券XTP(xtp) + - 飞马(femas) - - 中信证券期权(cshshlp) + - 中泰证券XTP(xtp) - - 金仕达黄金(ksgold) + - 中信证券期权(cshshlp) - - 金仕达期权(ksotp) + - 金仕达黄金(ksgold) - - 飞鼠(sgit) + - 金仕达期权(ksotp) - - 飞创(xspeed) + - 飞鼠(sgit) - - QDP(qdp) + - 飞创(xspeed) - - 上海直达期货(shzd) + - 飞创证券(sec) - - Interactive Brokers(ib) + - QDP(qdp) - - 福汇(fxcm) + - 上海直达期货(shzd) - - OKCOIN(okcoin) + - Interactive Brokers(ib) - - 火币(huobi) + - 福汇(fxcm) + + + - 数字货币 + + - OKEX(okex) + + - 火币(huobi) + + - 币安(binance) + + - BitMEX (bitmex) + + - Bitfinex (bitfinex) + + - Coinbase Pro (coinbase) + + - FCoin (fcoin) + + - BigOne (bigone) + + - LBank(lbank) + + - CCXT (ccxt) - - LBank(lbank) 2. 简洁易用的事件驱动引擎(vnpy.event),作为事件驱动型交易程序的核心 3. 支持服务器端数据推送的RPC框架(vnpy.rpc),用于实现多进程分布式架构的交易系统 -4. 开箱即用的实盘交易平台框架(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易程序,应用举例: +4. 开箱即用的量化交易平台(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易程序,应用举例: * 同时登录多个交易接口,在一套界面上监控多种市场的行情和多种资产账户的资金、持仓、委托、成交情况 * 支持跨市场套利(CTP期货和XTP证券)、境内外套利(CTP期货和IB外盘)、多市场数据整合实时预测走势(CTP的股指期货数据、IB的外盘A50数据、Wind的行业指数数据)等策略应用 - * CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略) + * CtaStrategy,CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略) - * 实盘行情记录,支持Tick和K线数据的落地,用于策略开发回测以及实盘运行初始化 + * SpreadTrading,价差交易模块,根据用户的配置自动实现价差组合的深度行情以及持仓变化计算,同时内置的交易算法SniperAlgo可以满足大部分到价成交策略的需求,用户也可以基于AlgoTemplate开发更复杂的价差算法 + + * OptionMaster,期权交易模块,强大的期权投资组合管理功能,结合基于Cython开发的高效期权定价模型,支持毫秒级别的整体希腊值持仓风险计算,用户可以基于期权交易引擎OmEngine快速开发各类复杂期权交易应用 + + * AlgoTrading,算法交易模块,提供多种常用的智能交易算法:TWAP、Sniper、BestLimit、Iceberg、Arbitrage等等,支持数据库配置保存、CSV文件加载启动以及RPC跨进程算法交易服务 + + * RiskManager,前端风控模块,负责在交易系统将任何交易请求发出到柜台前的一系列标准检查操作,支持用户自定义风控规则的扩展 + + * DataRecorder,实盘行情记录,支持Tick和K线数据的落地,用于策略开发回测以及实盘运行初始化 + + * RpcService,RPC跨进程调用服务,基于MainEngineProxy组件,用户可以如同开发单一进程应用搬开发多进程架构的复杂交易应用 + + * RtdService,EXCEL RTD服务组件,通过pyxll模块提供EXCEL表格系统对VnTrader系统内所有数据的访问和功能调用(未完成) 5. 数据相关的API接口(vnpy.data),用于构建和更新历史行情数据库,目前包括: @@ -84,7 +118,7 @@ vn.py是基于Python的开源量化交易程序开发框架,起源于国内私 1. 支持的操作系统:Windows 7/8/10/Server 2008 2. 安装[MongoDB](https://www.mongodb.org/downloads#production),并[将MongoDB配置为系统服务](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-edition) -3. 安装[Anaconda](http://www.continuum.io/downloads),**注意必须是Python 2.7 32位版本** +3. 安装[Anaconda 5.2.0](http://www.continuum.io/downloads),**注意必须是Python 2.7 32位版本** 4. 安装[Visual C++ Redistributable Packages for VS2013 x86版本](https://support.microsoft.com/en-us/help/3138367/update-for-visual-c-2013-and-visual-c-redistributable-package) **Ubuntu** @@ -227,6 +261,7 @@ vn.py使用github托管其源代码,如果希望贡献代码请使用github的 捐赠方式:支付宝3216630132@qq.com(*晓优) + 计划长期维护一份捐赠清单,所以请在留言中注明是项目捐赠以及捐赠人的名字(当然想匿名的用户就随意了)。 diff --git a/examples/README.md b/examples/README.md index 17b7e8bd..f42ddc5a 100644 --- a/examples/README.md +++ b/examples/README.md @@ -2,6 +2,8 @@ 本文件夹中的内容主要是关于如何在交易业务中使用vn.py的示例 +* CryptoTrader:vn.crypto数字货币交易平台 + * VnTrader:最常用的vn.py图形交易系统 * OptionMaster: 期权量化交易系统 @@ -24,4 +26,6 @@ * TushareDataService:TuShare历史行情服务(A股) -* FutuDataService:富途证券历史行情服务(美股、港股) \ No newline at end of file +* FutuDataService:富途证券历史行情服务(美股、港股) + +* CoinapiDataService:CoinAPI.io历史行情服务(数字货币) \ No newline at end of file diff --git a/init.bat b/init.bat index f244dd63..162a0bc3 100644 --- a/init.bat +++ b/init.bat @@ -2,7 +2,7 @@ @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" ::װAnaconda -choco install anaconda2 --version 4.0.0 --x86 -y --ignorechecksum --params="'/AddToPath=1'" +choco install anaconda2 --version 5.2.0 --x86 -y --ignorechecksum --params="'/AddToPath=1'" setx PATH "%PATH%;C:\Program Files\Anaconda2\;C:\Program Files\Anaconda2\Scripts\" ::װVC Redist diff --git a/requirements.txt b/requirements.txt index d2bb6b07..2155d7da 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,4 +11,4 @@ flask-restful flask-cors gevent-websocket pyjwt -webbrowser \ No newline at end of file +ccxt diff --git a/vnpy/__init__.py b/vnpy/__init__.py index 5477e7f3..708620bf 100644 --- a/vnpy/__init__.py +++ b/vnpy/__init__.py @@ -1,4 +1,4 @@ # encoding: UTF-8 -__version__ = '1.8.1' +__version__ = '1.9.0' __author__ = 'Xiaoyou Chen' \ No newline at end of file diff --git a/vnpy/api/README.md b/vnpy/api/README.md deleted file mode 100644 index 442d81f7..00000000 --- a/vnpy/api/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# vn.api - API接口的Python封装 - -### 内盘 -* vn.ctp:CTP接口 -* vn.lts:华宝LTS接口 -* vn.femas:飞马接口 -* vn.xspeed:飞创接口 -* vn.qdp:量投QDP接口 -* vn.sgit:飞鼠接口 -* vn.ksotp:金仕达期权接口 -* vn.ksgold:金仕达黄金接口 - -### 外盘 -* vn.ib:Interactive Brokers接口 -* vn.shzd:直达期货接口 - -### 比特币 -* vn.okcoin:币行接口 -* vn.huobi:火币接口 -* vn.lhang:链行接口 - -### 数据下载 -* vn.datayes:通联数据接口 \ No newline at end of file diff --git a/vnpy/trader/app/spreadTrading/stEngine.py b/vnpy/trader/app/spreadTrading/stEngine.py index 051168c3..43339eab 100644 --- a/vnpy/trader/app/spreadTrading/stEngine.py +++ b/vnpy/trader/app/spreadTrading/stEngine.py @@ -196,13 +196,7 @@ class StDataEngine(object): spread.calculatePos() # 推送价差持仓更新 - event1 = Event(EVENT_SPREADTRADING_POS+spread.name) - event1.dict_['data'] = spread - self.eventEngine.put(event1) - - event2 = Event(EVENT_SPREADTRADING_POS) - event2.dict_['data'] = spread - self.eventEngine.put(event2) + self.putSpreadPosEvent(spread) #---------------------------------------------------------------------- def processPosEvent(self, event):