# EliteQuant_Python **Repository Path**: fengba/EliteQuant_Python ## Basic Information - **Project Name**: EliteQuant_Python - **Description**: Python量化投资交易平台。基于Python3的多线程并发式高频交易平台, 提供一致的回测和实时交易解决方案。它遵循现代设计模式,例如事件驱动,服务器/客户端架构和松散耦合的强大稳定的分布式系统。它遵循与其他EliteQuant产品线相同的结构和绩效评估值,这使得与使用其他语言的交易者分享变得更加容易。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 236 - **Created**: 2022-09-20 - **Last Updated**: 2022-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EliteQuant_Python Python量化投资交易平台 * [平台介绍](#平台介绍) * [项目纲要](#项目纲要) * [参与开发](#参与开发) * [项目安装](#项目安装) * [开发环境](#开发环境) * [项目结构](#项目结构) * [开发计划](#开发计划) --- ## 平台介绍 EliteQuant 是一个开源并永久免费的统一量化交易平台,由量化投资者所写并为量化投资者服务。它同时在[github](https://github.com/EliteQuant) 和 [码云](https://gitee.com/EliteQuant)上开源。 统一这个词有两层意思 - 首先是统一的回测和实盘交易。只需将数据源在回测和实盘间切换即可,最大限度保持策略稳定性和真实性 - 其次,多语言编写的平台在交易结构和绩效评估上是一致的。所以在与其他交易员就策略,想法和绩效方面进行复制和交流就变得非常容易和方便。 EliteQuant 相关项目包括 - [量化投资交易资源汇总](https://gitee.com/EliteQuant/EliteQuant) - [C++](https://gitee.com/EliteQuant/EliteQuant_Cpp) - [Python](https://gitee.com/EliteQuant/EliteQuant_Python) - [Matlab](https://gitee.com/EliteQuant/EliteQuant_Matlab) - [R](https://gitee.com/EliteQuant/EliteQuant_R) - [C#](https://gitee.com/EliteQuant/EliteQuant_CSharp) - [Excel](https://gitee.com/EliteQuant/EliteQuant_Excel) - [Java](https://gitee.com/EliteQuant/EliteQuant_Java) - [Scala](https://gitee.com/EliteQuant/EliteQuant_Scala) - [Kotlin](https://gitee.com/EliteQuant/EliteQuant_Kotlin) - [Go](https://gitee.com/EliteQuant/EliteQuant_Go) - [Julia](https://gitee.com/EliteQuant/EliteQuant_Julia) ## 项目纲要 EliteQuant_Python 是基于Python3的多线程并发式高频交易平台, 提供一致的回测和实时交易解决方案。它遵循现代设计模式,例如事件驱动,服务器/客户端架构和松散耦合的强大稳定的分布式系统。它遵循与其他EliteQuant产品线相同的结构和绩效评估值,这使得与使用其他语言的交易者分享变得更容易。 ## 参与开发 我们欢迎任何形式的贡献,包括发现问题,发送代码块,或创建拉请求。通过共享代码架构,这还会帮助使用其他语言的交易者。 ## 项目安装 不需要安装,直接下载代码并使用。 ### 回测 在Python方面,需要一些Python包。以下是基于Windows 10系统上**全新安装**Anaconda Python 3.6之后的步骤。 1. 将解压缩文件夹添加到PYTHONPATH环境变量, 例如d\workspace\EliteQuant_Python ![PYTHONPATH](/resource/pythonpath.PNG?raw=true "PYTHONPATH") 2. 在命令提示符cmd下执行以下命令 ```python pip install quandl # quandl 数据源 pip install pandas-datareader # 网络数据源,如雅虎,谷歌 pip install tushare # 挖地兔数据源 pip install pyfolio # 绩效评估 pip install qdarkstyle # 黑色皮肤 ``` 3. 配置 source 目录下的 config_backtest.yaml * datasource: 历史数据来源 * hist_dir: 为本地历史数据目录 * output_dir: 回测结果输出目录 其中回测现有数据来源接口为 * Quandl * Tushare * 本地CSV 4. 还是在命令提示符下,执行回测 ```python cd source python backtest_engine.py ``` ### 实盘 实盘还需要一个第三方python包 -- nanomsg. 1. 在命令窗口下执行 ```python cd resource easy_install nanomsg-1.0-py3.6-win-amd64.egg ``` 2. 去上一步生成的C:\Anaconda3\Lib\site-packages\nanomsg-1.0-py3.6-win-amd64.egg\nanomsg-1.0-py3.6-win-amd64.egg\目录, 剪贴移动所有东西到上一层,并把多余的这层nanomsg-1.0-py3.6-win-amd64.egg删除掉。 3. 把 resource\nanomsg.dll 文件拷贝到 C:\Anaconda3\Lib\site-packages\nanomsg-1.0-py3.6-win-amd64.egg\ 4. 配置 source 目录下的 config.yaml * 如果要使用盈透证券,请打开盈透证券交易平台(TWS),进入菜单File / Global Configuration / API / Settings,勾选“Enable ActiveX and Socket Client”,取消选中“Read-Only API” * 在配置文件中,将帐户ID更改为您自己的; 盈透证券账户ID通常可以在TWS窗口的右上方找到。 * 如果您使用CTP,请相应地更改您的经纪账户信息和ctp地址。 * 分别为log_dir 和 data_dir创建文件夹。前者记录运行日志,而后者保存分时数据 5. 运行live_engine.py ![Live Demo](/resource/ctp_demo.gif?raw=true "Live Demo") **盈透证券** 是国外散户和小型私募最受欢迎的经纪商。 Quantopian,Quantconnect等许多零售交易平台都起始支持IB。如果您没有IB账户,想要试用,他们提供模拟账户edemo与密码demouser。只需下载TWS交易者工作站并使用此演示帐户登录。请注意,每次使用模拟账户登录交易平台时,账户ID都会发生变化,因此您必须相应地更改EliteQuant配置文件。 **CTP** 是中国期货市场的实际标准,包括商品期货和金融期货。他们还提供免费模拟账户[SimNow](http://simnow.com.cn)。注册后,您将获得帐户,密码,brokerid,以及市场数据和交易经纪地址。将其替换EliteQuant配置文件相应位置。 ## 开发环境 以下是我们正在使用的环境 * Anaconda Python 3.6 * PyCharm 社区版本 2017.2.4 ## 项目结构 回测框架 ![回测框架](/resource/Backtest_Diagram.PNG?raw=true "回测框架") 实盘框架 ![实盘框架](/resource/Live_Trading_Diagram.PNG?raw=true "实盘框架") 代码结构 ![代码结构](/resource/code_structure_cn.PNG?raw=true "代码结构") ## 开发计划