diff --git a/LICENSE b/LICENSE index 0ecf8f18..067c09c9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2015 用Python的交易员 +Copyright (c) 2015 Xiaoyou Chen Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 89b65ebf..126051a7 100644 --- a/README.md +++ b/README.md @@ -7,95 +7,100 @@ ### 简介 -vn.py是基于Python的开源量化交易程序开发框架,起源于国内私募的自主量化交易系统。2015年初项目启动时只是单纯的交易API接口的Python封装。随着业内关注度的上升和社区不断的贡献,目前已经成长为一套全功能的交易程序开发框架,用户群体也日渐多样化,包括私募基金、券商自营和资管、期货资管和子公司、高校研究机构和专业个人投资者等。 - -2018年中启动代号为vn.crypto的数字货币量化交易系统开发计划,目前已完成第一阶段的开发,提供针对数字货币交易所原生的REST/WebSocket API的高性能的Python接口封装设计、以及适合7x24小时长时间交易需求的算法交易AlgoTrading模块、面向币圈交易的前端应用示例CryptoTrader等,后续会进一步完善打造功能全面的数字货币量化交易平台。 +vn.py是基于Python的开源量化交易系统开发框架,起源于国内私募基金的自主交易系统。2015年1月项目正式发布,在开源社区4年持续不断的贡献下,已经从早期的交易API接口封装,一步步成长为一套全功能量化交易平台。随着业内关注度的上升,用户群体也日渐多样化,包括:私募基金、证券自营和资管、期货资管和子公司、高校研究机构、专业个人投资者等等。 --- ### 项目结构 -1. 丰富的Python交易API接口(vnpy.api),基本覆盖了国内外所有常规交易品种(股票、期货、期权、外汇、外盘、数字货币),具体包括: +1. 全功能量化交易平台(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易应用。 - - 传统金融 + * 覆盖国内外所有交易品种(股票、期货、期权、外汇、外盘、CFD、数字货币)的交易接口: - - CTP(ctp) + * 国内市场 - - 飞马(femas) + * CTP(ctpGateway) - - 中泰证券XTP(xtp) + * 飞马(femasGateway) - - 中信证券期权(cshshlp) + * 中泰证券XTP(xtpGateway) - - 金仕达黄金(ksgold) + * 中信证券期权(cshshlpGateway) - - 金仕达期权(ksotp) + * 金仕达黄金(ksgoldGateway) - - 飞鼠(sgit) + * 金仕达期权(ksotpGateway) - - 飞创(xspeed) + * 飞鼠(sgitGateway) - - 飞创证券(sec) + * 飞创(xspeedGateway) - - QDP(qdp) + * 飞创证券(secGateway) - - 上海直达期货(shzd) + * QDP(qdpGateway) - - Interactive Brokers(ib) + * Wind行情(windGateway) - - 福汇(fxcm) + * 海外市场 + + * 富途证券(futuGateway) + + * 上海直达期货(shzdGateway) + + * Interactive Brokers(ibGateway) + + * 福汇(fxcmGateway) - - 数字货币 + * 数字货币 - - OKEX(okex) + * OKEX(okexGateway) - - 火币(huobi) + * OKEX合约(okexfGateway) - - 币安(binance) + * 火币(huobiGateway) - - BitMEX (bitmex) + * 币安(binanceGateway) - - Bitfinex (bitfinex) + * BitMEX (bitmexGateway) - - Coinbase Pro (coinbase) + * Bitfinex (bitfinexGateway) - - FCoin (fcoin) + * Coinbase Pro (coinbaseGateway) - - BigOne (bigone) + * FCoin (fcoinGateway) - - LBank(lbank) + * BigOne (bigoneGateway) - - CCXT (ccxt) + * LBank(lbankGateway) + * CCXT (ccxtGateway) -2. 简洁易用的事件驱动引擎(vnpy.event),作为事件驱动型交易程序的核心 + * 经过开源社区大量用户实盘检验,做到开箱即用的各类量化策略交易应用(包括逻辑层和界面层): + + * CtaStrategy:CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略) -3. 支持服务器端数据推送的RPC框架(vnpy.rpc),用于实现多进程分布式架构的交易系统 + * SpreadTrading:价差交易模块,根据用户的配置自动实现价差组合的深度行情以及持仓变化计算,同时内置的交易算法SniperAlgo可以满足大部分到价成交策略的需求,用户也可以基于AlgoTemplate开发更复杂的价差算法 -4. 开箱即用的量化交易平台(vnpy.trader),整合了多种交易接口,并针对具体策略算法和功能开发提供了简洁易用的API,用于快速构建交易员所需的量化交易程序,应用举例: + * OptionMaster:期权交易模块,强大的期权投资组合管理功能,结合基于Cython开发的高效期权定价模型,支持毫秒级别的整体希腊值持仓风险计算,用户可以基于期权交易引擎OmEngine快速开发各类复杂期权交易应用 - * 同时登录多个交易接口,在一套界面上监控多种市场的行情和多种资产账户的资金、持仓、委托、成交情况 + * AlgoTrading:算法交易模块,提供多种常用的智能交易算法:TWAP、Sniper、BestLimit、Iceberg、Arbitrage等等,支持数据库配置保存、CSV文件加载启动以及RPC跨进程算法交易服务 - * 支持跨市场套利(CTP期货和XTP证券)、境内外套利(CTP期货和IB外盘)、多市场数据整合实时预测走势(CTP的股指期货数据、IB的外盘A50数据、Wind的行业指数数据)等策略应用 + * TradeCopy:复制交易模块,用户可以通过发布者Provider进程来对外提供交易策略信号(手动、策略均可),订阅者Subscriber进程根据收到的信号自动执行同步交易,简洁快速得实现一拖多账户交易功能 - * CtaStrategy,CTA策略引擎模块,在保持易用性的同时,允许用户针对CTA类策略运行过程中委托的报撤行为进行细粒度控制(降低交易滑点、实现高频策略) + * RiskManager:事前风控模块,负责在交易系统将任何交易请求发出到柜台前的一系列标准检查操作,支持用户自定义风控规则的扩展 - * SpreadTrading,价差交易模块,根据用户的配置自动实现价差组合的深度行情以及持仓变化计算,同时内置的交易算法SniperAlgo可以满足大部分到价成交策略的需求,用户也可以基于AlgoTemplate开发更复杂的价差算法 + * DataRecorder:实盘行情记录,支持Tick和K线数据的落地,用于策略开发回测以及实盘运行初始化 - * OptionMaster,期权交易模块,强大的期权投资组合管理功能,结合基于Cython开发的高效期权定价模型,支持毫秒级别的整体希腊值持仓风险计算,用户可以基于期权交易引擎OmEngine快速开发各类复杂期权交易应用 + * RpcService:RPC跨进程调用服务,基于MainEngineProxy组件,用户可以如同开发单一进程应用搬开发多进程架构的复杂交易应用 - * AlgoTrading,算法交易模块,提供多种常用的智能交易算法:TWAP、Sniper、BestLimit、Iceberg、Arbitrage等等,支持数据库配置保存、CSV文件加载启动以及RPC跨进程算法交易服务 + * RtdService:EXCEL RTD服务组件,通过pyxll模块提供EXCEL表格系统对VN Trader系统内所有数据的访问 - * TradeCopy,复制交易模块,用户可以通过发布者Provider进程来对外提供交易策略信号(手动、策略均可),订阅者Subscriber进程根据收到的信号自动执行同步交易,简洁快速得实现一拖多账户交易功能 +2. Python交易API接口封装(vnpy.api),提供上述交易接口的底层对接实现 - * RiskManager,前端风控模块,负责在交易系统将任何交易请求发出到柜台前的一系列标准检查操作,支持用户自定义风控规则的扩展 +3. 简洁易用的事件驱动引擎(vnpy.event),作为事件驱动型交易程序的核心 - * DataRecorder,实盘行情记录,支持Tick和K线数据的落地,用于策略开发回测以及实盘运行初始化 - - * RpcService,RPC跨进程调用服务,基于MainEngineProxy组件,用户可以如同开发单一进程应用搬开发多进程架构的复杂交易应用 - - * RtdService,EXCEL RTD服务组件,通过pyxll模块提供EXCEL表格系统对VN Trader系统内所有数据的访问 +4. 支持服务器端数据推送的RPC框架(vnpy.rpc),用于实现多进程分布式架构的交易系统 5. 数据相关的API接口(vnpy.data),用于构建和更新历史行情数据库,目前包括: @@ -103,7 +108,7 @@ vn.py是基于Python的开源量化交易程序开发框架,起源于国内私 6. 关于vn.py项目的应用演示(examples),对于新手而言可以从这里开始学习vn.py项目的使用方式 -8. vn.py项目的Docker镜像(docker): +7. vn.py项目的Docker镜像(docker): * web docker,在Docker中启动基于Web交易的交易服务器WebTrader,在浏览器中实现CTA策略的运维操作 @@ -111,7 +116,7 @@ vn.py是基于Python的开源量化交易程序开发框架,起源于国内私 9. [社区论坛](http://www.vnpy.com)和[知乎专栏](http://zhuanlan.zhihu.com/vn-py),内容包括vn.py项目的开发教程和Python在量化交易领域的应用研究等内容 -10. 官方交流QQ群262656087,管理较严格(定期清除长期潜水的成员) +10. 官方交流QQ群262656087,管理严格(定期清除长期潜水的成员),入群费将捐赠给vn.py社区基金 --- ### 环境准备 @@ -227,11 +232,7 @@ if __name__ == '__main__': * [WingIDE](http://wingware.com/):非常好用的Python集成开发环境(作者就是用它写的vn.py) -* [Robomongo](https://robomongo.org/):MongoDB的图形化客户端,方便监控和修改数据 - -* [Sublime Text](http://www.sublimetext.com/):针对编程的文本编辑器,当然你也可以使用Vim或者Emacs - -* [PyQtGraph](http://www.pyqtgraph.org/):适用于开发实时更新数据的图表,如Tick图、K线图、期权波动率曲线等(Matplotlib渲染开销太大,用于实盘绘图可能拖慢整个程序) +* [Visual Studio Code](https://code.visualstudio.com/):针对编程的文本编辑器,方便阅读项目中的Python、C++、Markdown文件 * [Visual Studio 2013](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx):这个就不多说了(作者编译API封装用的是2013版本) @@ -259,14 +260,13 @@ vn.py使用github托管其源代码,如果希望贡献代码请使用github的 --- ### 项目捐赠 -过去的半年中陆续收到了许多用户的捐赠,在此深表感谢!所有的捐赠资金都投入到了vn.py社区基金中,用于支持vn.py项目的运作。最近主要的一个支出是相关文档编写,目前来看文档完成的速度和质量都显著超出预期。 +过去4年中收到过许多社区用户的捐赠,在此深表感谢!所有的捐赠资金都投入到了vn.py社区基金中,用于支持vn.py项目的运作。 先强调一下:**vn.py是开源项目,可以永久免费使用,并没有强制捐赠的要求!!!** 捐赠方式:支付宝3216630132@qq.com(*晓优) - -计划长期维护一份捐赠清单,所以请在留言中注明是项目捐赠以及捐赠人的名字(当然想匿名的用户就随意了)。 +长期维护捐赠清单,请在留言中注明是项目捐赠以及捐赠人的名字。 --- diff --git a/vnpy/trader/gateway/huobiGateway/huobiGateway.py b/vnpy/trader/gateway/huobiGateway/huobiGateway.py index 2c7a991d..a742e040 100644 --- a/vnpy/trader/gateway/huobiGateway/huobiGateway.py +++ b/vnpy/trader/gateway/huobiGateway/huobiGateway.py @@ -14,6 +14,7 @@ import re import urllib import zlib from copy import copy +from datetime import datetime from vnpy.api.rest import Request, RestClient from vnpy.api.websocket import WebsocketClient @@ -21,9 +22,8 @@ from vnpy.trader.vtGateway import * from vnpy.trader.vtFunction import getTempPath, getJsonPath REST_HOST = 'https://api.huobipro.com' -#REST_HOST = 'https://api.huobi.pro/v1' -WEBSOCKET_MARKET_HOST = 'wss://api.huobi.pro/ws' # Global站行情 -WEBSOCKET_TRADE_HOST = 'wss://api.huobi.pro/ws/v1' # 资产和订单 +WEBSOCKET_MARKET_HOST = 'wss://api.huobi.pro/ws' # 行情 +WEBSOCKET_TRADE_HOST = 'wss://api.huobi.pro/ws/v1' # 资金和委托 # 委托状态类型映射 diff --git a/vnpy/trader/uiMainWindow.py b/vnpy/trader/uiMainWindow.py index 41cc89c0..3c686368 100644 --- a/vnpy/trader/uiMainWindow.py +++ b/vnpy/trader/uiMainWindow.py @@ -197,6 +197,7 @@ class MainWindow(QtWidgets.QMainWindow): #---------------------------------------------------------------------- def openAppByName(self, appName): + """""" detail = [i for i in self.appDetailList if i['appName'] == appName][0] return self.openAppByDetail(detail)