🤖 Qbot
AI智能量化投研平台
Qbot 是一个面向AI的自动化量化投资平台,旨在实现潜力,赋能AI技术在量化投资中的应用。Qbot支持多种机器学习建模范式。包括监督学习、市场动态建模和强化学习。
🤖 Qbot = 智能交易策略 + 回测系统 + 自动化量化交易 (+ 可视化分析工具)
| | | |
| | | \_ quantstats (dashboard\online operation)
| | \______________ Qbot - vnpy, pytrader, pyfunds
| \____________________________ BackTest - backtrader, easyquant
\________________________________________ quant.ai - qlib, deep learning strategies
🎺 号外:Qbot微信小程序开发招募 UFund-miniprogram
不建议 fork 项目,本项目会持续更新,只 fork 看不到更新,建议 Star ⭐️ ~
喜欢这个项目吗?请考虑 ❤️赞助 本项目,以帮助改进!
Quick Start
Qbot是一个免费的量化投研平台,提供从数据获取、交易策略开发、策略回测、模拟交易到最终实盘交易的全闭环流程。在实盘接入前,有股票、基金评测和策略回测,在模拟环境下做交易验证,近乎实盘的时延、滑点仿真。故,本平台提供GUI前端/客户端(部分功能也支持网页),后端做数据处理、交易调度,实现事件驱动的交易流程。对于策略研究部分,尤其强调机器学习、强化学习的AI策略,结合多因子模型提高收益比。
但本项目可能需要一点点python基础知识,有一点点交易经验,会更容易体会作者的初衷,解决当下产品空缺和广大散户朋友的交易痛点,现在直接免费开源出来!
cd ~ # $HOME as workspace
git clone https://github.com/UFund-Me/Qbot --depth 1
cd Qbot
pip install -r requirements.txt
export PYTHONPATH=${PYTHONPATH}:$(pwd):$(pwd)/backend/multi-fact/mfm_learner
python main.py #if run on Mac, please use 'pythonw main.py'
[!NOTE] wxPython、Ta-Lib 需要手动安装,pip wheel 在 dev/ 路径下。https://github.com/UFund-Me/Qbot/issues/76
详细文档 https://github.com/UFund-Me/Qbot/blob/main/quick_start.md
Mac系统在安装之前需要手动安装tables库的依赖hdf5,以及pythonw https://github.com/UFund-Me/Qbot/issues/11
brew install hdf5
brew install c-blosc
export HDF5_DIR=/opt/homebrew/opt/hdf5
export BLOSC_DIR=/opt/homebrew/opt/c-blosc
Highlights
1. 模块化分层设计:数据层、策略层、交易引擎抽象设计- 数据、策略中间表达,方便多种数据接口、交易接口接入,用户自定义策略和因子挖掘 | ||
|
|
|
|
|
|
2. 人工智能交易策略、自动化因子挖掘机器学习、强化学习、深度学习策略开发,因子挖掘自动化workflow | ||
|
|
|
3. 多种交易方式:在线回测 + 模拟交易 + 实盘自动化交易以策略研究为目标,提供多种交易方式验证策略和提高收益。 | ||
|
|
|
4. 多种提示方式:邮件 + 飞书 + 弹窗 + 微信这是qbot的消息提示模块,多种方式提示交易信息:交易买卖信息、每日交易收益结果、股票每日推荐等。 | ||
|
|
|
策略池
通过Qbot 可以积木式完成策略编写、多因子挖掘,实现数据开发、因子开发、组合优化、交易执行的量化交易全流程。
如果说策略是量化的核心 ,那么因子就是策略的核心。通过Qbot量化投研平台研究员可实现自动化因子挖掘,提取出具备预测能力的单因子,利用历史数据进行回测,如果回测结果显示该因子的预测能力达标,就提交到因子库。然后,对因子库里的因子进行有机组合,以形成预测模型,预测模型是整个量化策略的目标。
以下即为,数据指标单因子或组合因子和通过深度学习、机器学习、强化学习挖掘到的交易因子,然后通过组合优化算法实现趋势交易、风险策略、alpha策略、动量轮动等等交易策略。
策略库源代码路径:qbot/strategy
交易对象 | 选股 | 择时 | 风险控制 (组合、仓位管理) |
股票/期货/虚拟货币 |
| ||
基金 | 同上 |
GBDT | RNN | 强化学习 | :fire: Transformer | :fire: LLM |
|
|
|
|
|
基准和模型库
结果和模型可在模型库找到。AI策略详见此处,本地运行python backend/pytrader/strategies/workflow_by_code.py
,同时提供
👉 点击展开查看具体AI模型基准测试结果
状态 | 基准 | 框架 | DGCNN | RegNetX | 附加 | arXiv | |
---|---|---|---|---|---|---|---|
GBDT | ✗ | ✗ | XGBoost | ✗ | ✗ | Tianqi Chen, et al. KDD 2016 | ✗ |
GBDT | ✗ | ✗ | LightGBM | ✗ | ✓ | Guolin Ke, et al. NIPS 2017 | ✗ |
GBDT | ✗ | ✗ | Catboost | ✗ | ✓ | Liudmila Prokhorenkova, et al. NIPS 2018 | ✗ |
MLP | ✓ | ✓ | pytorch | ✗ | ✗ | -- | ✗ |
LSTM | ✓ | ✓ | pytorch | ✗ | ✗ | Sepp Hochreiter, et al. Neural computation 1997 | ✗ |
LightGBM | ✓ | ✓ | pytorch | ✗ | ✗ | -- | ✗ |
GRU | ✓ | ✗ | pytorch | ✗ | ✗ | Kyunghyun Cho, et al. 2014 | ✗ |
ALSTM | ✗ | ✗ | pytorch | ✗ | ✗ | Yao Qin, et al. IJCAI 2017 | ✗ |
GATs | ✗ | ✓ | pytorch | ✗ | ✗ | Petar Velickovic, et al. 2017 | ✗ |
SFM | ✓ | ✓ | pytorch | ✗ | ✗ | Liheng Zhang, et al. KDD 2017 | ✗ |
TFT | ✓ | ✓ | tensorflow | ✗ | ✗ | Bryan Lim, et al. International Journal of Forecasting 2019 | ✗ |
TabNet | ✓ | ✗ | pytorch | ✗ | ✗ | Sercan O. Arik, et al. AAAI 2019 | ✗ |
DoubleEnsemble | ✓ | ✓ | LightGBM | ✗ | ✗ | Chuheng Zhang, et al. ICDM 2020 | ✗ |
TCTS | ✓ | ✗ | pytorch | ✗ | ✗ | Xueqing Wu, et al. ICML 2021 | ✗ |
Transformer | ✓ | ✗ | pytorch | ✗ | ✗ | Ashish Vaswani, et al. NeurIPS 2017 | ✗ |
Localformer | ✓ | ✗ | pytorch | ✗ | ✗ | Juyong Jiang, et al. | ✗ |
TRA | ✓ | ✗ | pytorch | ✗ | ✗ | Hengxu, Dong, et al. KDD 2021 | ✗ |
TCN | ✓ | ✗ | pytorch | ✗ | ✗ | Shaojie Bai, et al. 2018 | ✗ |
ADARNN | ✓ | ✗ | pytorch | ✗ | ✗ | YunTao Du, et al. 2021 | ✗ |
ADD | ✓ | ✗ | pytorch | ✗ | ✗ | Hongshun Tang, et al.2020 | ✗ |
IGMTF | ✓ | ✗ | pytorch | ✗ | ✗ | Wentao Xu, et al.2021 | ✗ |
HIST | ✓ | ✗ | pytorch | ✗ | ✗ | Wentao Xu, et al.2021 | ✗ |
注意: 在quant.ai中支持的300多个模型和40多篇论文的方法,都可以在模型库中进行训练或使用。
交易指标/因子
包含但不限于alpha-101、alpha-191,以及基于deap实现的因子自动生成算法。
EMA(简单移动均线)
MACD(指数平滑异同平均线)
KDJ(随机指标)
RSRS(阻力支撑相对强度)
RSI(相对强弱指标)
StochRSI(随机相对强弱指数)
BIAS(乖离率)
BOLL(布林线指标)
OBV(能量潮)
SAR(抛物转向)
VOL(成交量)
PSY(心理线)
ARBR(人气和意愿指标)
CR(带状能力线)
BBI(多空指标)
EMV(简易波动指标)
TRIX(三重指数平滑移动平均指标)
DMA(平均线差)
DMI(趋向指标)
CCI(顺势指标)
ROC(变动速率指标, 威廉指标)
ENE(轨道线) # 轨道线(ENE)由上轨线(UPPER)和下轨线(LOWER)及中轨线(ENE)组成,
# 轨道线的优势在于其不仅具有趋势轨道的研判分析作用,也可以敏锐的觉察股价运行过程中方向的改变
SKDJ(慢速随机指标)
LWR(慢速威廉指标) # 趋势判断指标
市盈率
市净率
主力意愿(收费)
买卖差(收费)
散户线(收费)
分时博弈(收费)
买卖力道(收费)
行情趋势(收费)
MTM(动量轮动指标)(收费)
MACD智能参数(收费)
KDJ智能参数(收费)
RSI智能参数(收费)
WR智能参数(收费)
Qbot智能预测(收费)
Qbot买卖强弱指标(收费)
支持的实盘交易接口
实盘交易接口()
欢迎更多交易所、柜台开放交易api
- 期货
- CTP
- CTPMini
- 飞马Femas
- 艾克朗科(仅组播行情)
- 易达
- 期权
- CTPOpt
- 金证期权maOpt
- QWIN二开
- 股票
- 中泰XTP
- 中泰XTPXAlgo
- 华鑫奇点
- 华锐ATP
- 宽睿OES
- 同花顺
- 东方财富
- 华泰证券
- 国泰君安
- 中汇亿达
- 恒生UFT
- 掘金
- 顶点飞创
- 华鑫奇点
- 通达信
- 虚拟货币/数字货币
- 欧易OKEX
- 币安Binance
- 火币Huobi
仿真交易接口/平台
API | 交易类型 | 操作系统 |
---|---|---|
qbot_pro | 股票、期货、基金、虚拟货币 | Win、Linux、Mac |
掘金仿真 | 股票、基金、期货 | Win、Linux、Mac |
极星量化 | 期货 | Win、Mac |
WonderTrader | 股票、期货 | Win、Linux |
TradingView | 虚拟货币 | Win、Linux、Mac |
欧易OKEX、币安 Binance 、火币huobi | 虚拟货币 | Win、Linux、Mac |
虚拟货币交易所注册推荐码
-
OKEX 交易所注册推荐码, 手续费返佣 20%
-
币安交易所注册推荐码, 手续费返佣 10%
-
火币交易所注册推荐码, 手续费返佣 15% (推荐)
开源共创、社区共建
首先,感谢自今年5月份开源以来收到广大用户的关注!我们在基础版本中开放了很多传统量化策略、深度学习、强化学习等人工智能策略和多因子库,为此,我们发起《Qbot人工智能量化交易社区共建计划》。采取以下两种方式共建共赢:
- 内容共建:
- 在我们免费提供的人工智能交易策略基础上,提高SOTA指标,然后以个人所有权提交Qbot量化交易社区,作为一种策略服务提供给更多人,获取收益;
- 在我们免费提供的上千个交易因子基础上,应用交易因子完成策略回测、模拟交易,对交易结果好的可作为一种交易策略服务提供给更多人,获取收益;
- 代码贡献:
- 参与本代码仓库程序设计与实现,多提交PR合并后可免费加入知识星球;
- 贡献榜单前10名可获得一年免费使用权,前3名可获得qbot进阶版终身免费使用权;
Qbot 版本说明
版本介绍 | 说明 | 产品与服务 | 适合人群 |
---|---|---|---|
public(开源版) | 当前开源仓库 | - 开源代码可自行学习,提供整个框架的闭环搭建,实现数据的获取、策略开发、指标分析等功能 | 对量化交易感兴趣的开发者、产品经理 |
pro(专业版) | 专业付费版(年费,更新代码) | - 量化交易智库(研报复现、前沿策略探索、投研资讯)) - qbot_pro 包含基础版本的所有功能,并且实现AI选股、数据获取清洗、策略开发、策略回测、模拟交易、实盘自动化交易全流程闭环 - 封装好的接口示例、系统源码开发示例 - 易于开发的策略模板和因子表达式 - 分层架构设计,数据、策略(回测、实盘交易)中间表达。 - 社群答疑服务 - 遵循《署名-非商业性使用-相同方式共享》开放协议的其他非商业用途的二次开发 | - 个人量化交易员、证券交易从业者 - 希望快速学习量化并在股票、基金、虚拟货币实现量化交易的 |
vip | 1对1的会员专项服务(年费,每年更新代码) | - 最新的量化交易系统,包含基础版本和专业版的所有软件功能 - 提供封装好的基金、股票、期货、及现货和合约量化接口 (支持Binance现货、合约) - 多个智能量化策略示例 - 远程技术支持和服务 | - 量化交易员 - 希望快速学习量化并在相关市场实现量化交易的 - 定制相关市场接口 |
[!TIP] 相关软件版本付费及更多信息、答疑解惑,添加微信 Yida_Zhang2
策略原理及源码分析
本项目编写了详细的策略原理说明和平台搭建到使用的详细文档,尤其适合量化小白。欢迎加群交流!
在线文档 | ❓ 常见问题 | Jupyter Notebook
Quantstats Report
Click HERE to more detail.
Some strategy backtest results:
声明:别轻易用于实盘,市场有风险,投资需谨慎。
symbol:华正新材(603186)
Starting Portfolio Value: 10000.00
Startdate=datetime.datetime(2010, 1, 1),
Enddate=datetime.datetime(2020, 4, 21),
# 设置佣金为0.001, 除以100去掉%号
cerebro.broker.setcommission(commission=0.001)
A股回测MACD策略:
👉 点击查看源码
A股回测KDJ策略:
👉 点击查看源码
A股回测 KDJ+MACD 策略:
👉 点击查看源码
TODO
👆 右上角点击 告诉我,你希望这个项目继续加速开发迭代 ❤️ & ☕️
- 把策略回测整合在一个上位机中,包括:选基、选股策略、交易策略,模拟交易,实盘交易
- 很多策略需要做回测验证;
- 本项目由前后端支持,有上位机app支持,但目前框架还比较乱,需要做调整;
- 各种策略需要抽象设计,支持统一调用;
- 增强数据获取的实时性,每秒数据,降低延迟;
- 在线文档的完善,目前主要几个部分:新手使用指引、经典策略原理和源码、智能策略原理和源码、常见问题等;
- 新的feature开发,欢迎在issues交流;
No-code operation
体验下来,dagster是很适合金融数据采集、处理,还有机器学习的场景。当然这里的场景更偏向于“批处理”,“定时任务”的处理与编排。
cd plugins/dagster
dagster-daemon run &
dagit -h 0.0.0.0 -p 3000
Contributing
We appreciate all contributions to improve Qbot. Please refer to CONTRIBUTING.md for the contributing guideline.
🍮 Community
-
Github discussions 💬 or issues 💭
-
微信: Yida_Zhang2
-
Email: yidazhang1#gmail.com
-
知乎:@Charmve
- 知识星球:AI量化投研实验室 (加我微信,邀请)
若二维码因 Github 网络无法打开,请点击二维码直接打开图片。
🎉 本项目刚上线就收到了两次GitHub官方趋势榜Top5、Top1好成绩!现对于转发本项目到朋友圈或100人以上微信群等,可获得知识星球价值20元的 🎫优惠券 一张, 限时10张。 | |
|
:warning: Disclaimer
👨🏫 重点重点! 交易策略和自动化工具只是提供便利,并不代表实际交易收益。该项目任何内容不构成任何投资建议。市场有风险,投资需谨慎。
🔥 Stargazers Over Time
[![Star History Chart](https://yellow-cdn.veclightyear.com/35dd4d3f/2870775a-2f0e-4a52-9e0d-5e9cdebd97be.png)](https://star-history.com/#UFund-Me/Qbot&ailabx/ailabx&jadepeng/pytrader&Timeline)
赞助与支持
如果你喜欢这个项目,你可以在 Open Collective 成为赞助者,或者使用 GitHub Sponsors.
感谢您支持 Qbot!
许可证
署名-非商业性使用-相同方式共享 4.0 国际
♥️ 鸣谢
最后但同样重要的是,我们感谢这些开源仓库免费分享他们的服务:
基于 backtrader、vnpy、qlib、tushare、easyquant、fund-strategies、investool 等开源项目,感谢开发者。
感谢大家的支持与喜欢!
Code with ❤️ & ☕️ @Charmve 2022-2023