持续更新: Wechat: Wiger123
高频框架
- Krypto: https://github.com/ctubio/Krypto-trading-bot
- Tribeca: https://github.com/michaelgrosner/tribeca
- StarQuant(易数交易系统): https://gitee.com/physer/starquant
- EliteQuant: https://gitee.com/twsy2020/EliteQuant_Cpp
- hikyuu: https://gitee.com/fasiondog/hikyuu
- QUANTAXIS: https://gitee.com/yutiansut/QUANTAXIS
- DuckDuckDuck: https://github.com/DuckDuckDuck0/ft
- HFT-Orderbook: https://gitee.com/greatwallisme/HFT-Orderbook
- trade-frame: https://github.com/rburkholder/trade-frame
- StockSharp: https://github.com/StockSharp/StockSharp
- Ccapi: https://github.com/crypto-chassis/ccapi
- algotrading: https://github.com/ivopetiz/algotrading
- kungfu: https://github.com/kungfu-origin/kungfu
- PandoraTrader: https://github.com/pegasusTrader/PandoraTrader
- WonderTrader: https://github.com/wondertrader/wondertrader
- OpenHFT: https://github.com/OpenHFT/OpenHFT
- hummingbot: https://github.com/hummingbot/hummingbot
回测框架
树叶大佬的知乎回答: https://zhuanlan.zhihu.com/p/406708630
以下内容均为搬运
框架名称 | 简介 | 评测 |
---|---|---|
pandas | 自己写向量化回测 | 纯自己造轮子,对代码能力和数学能力要求很高,资料比较少,但是速度非常快,自定义程度很高,实测双均线策略,14w行的k线数据 0.05秒就能测完,如果代码没写错的话回测结果和vectorbt是一样的。 |
backtrader | python的事件驱动回测,指标计算可以是向量化计算 | 14w行k线数据,双均线策略,跑大概30秒左右,其中15秒是在加载数据,15秒运行回测,速度可以说是里面最慢的了,但是在python的事件驱动框架里又算快的了。自定义程度很高,而且不用自己造轮子,回测代码非常简洁且逻辑清晰,文档非常详细,而且有大量的例子,甚至有论坛,可以说是这几个里面对用户最友好的框架了!这点非常重要,因为一个框架如果非常难用,上手很难的话,即使性能很优秀我觉得也不能算是一个优秀的开源框架。缺点:在回测大量数据时速度比较慢,不算致命缺点,但是很难受。 |
vectorbt | python向量化回测框架 | 14w行数据7秒跑完,速度算比较快了,但是作为一个向量化回测的框架,说实话这个成绩我不太满意。vectorbt的文档还算详细,但是还是远远不如backtrader的回测代码写起来也比较简单,缺点是画图分析比backtrader要差很多,代码基本得自己写。 |
hikyuu | C++内核 python接口的回测框架 | 国产框架,速度极快,百万级别的K线,2秒就能跑完,缺点是基本上只支持国内的股票数据,自定义数据很困难,而且可以说是几乎没有文档,可能是因为作者比较忙。我的水平比较低,看了几个例子和官网的文档之后仍然没能够上手。如果是高手的话可以去看看这个框架,速度相当快,我之后准备研究一下他的源码。回测的代码很简洁,但是局限性比较大,且上手略难。 |
wondertrader | C/C++内核 python接口的回测框架 | – |
vnpy | 国产经典 | 像是backtrader的强化版本,不过我还没用过,之前想去学但是感觉很复杂,资料也不如backtrader有条理,但是最大的优点是有UI界面,适合小白,且实盘对接做的很好。但是据说回测是不如backtrader的,如果有技术,可以用backtrader回测,用vnpy下单 |
quantconnect(LEAN) | – | 最近又尝试了一下新的框架,LEAN,好处是集回测和实盘于一体,且代码非常简洁易懂,文档和教程非常详细,感觉比vnpy好上手很多(可能我太菜了,vnpy当时看了两天没啥头绪)而且编程思路和backtrader很像,因此我上手也很快。最关键的是集回测和实盘于一体,且有好的社区,C#核心代码,python接口,数据也很方便获取。回测速度相当快,不太复杂的策略基本上是每秒20-80k行k线这个水平,15w行k线一两秒秒就跑完了,速度在这几个里面堪称无敌。 |
- 总结: 如果是小白或者数据量不是特别大,而且对回测速度没有特别高的要求建议使用 backtrader,教程、资料相比其他框架多得多,上手会简单很多。vectorbt 看起来速度很快,但是实测速度也就这样,可能是我测试的问题,如果有人测出了和我不一样的结果可以留言评论。如果是玩国内的股票期货,那可以考虑后面两个国产框架,对国内有优化,对其他的不太友好。如果对速度有要求,那就去自己写向量化吧,或者自己用 C++ 写,和 hikyuu 一样,hikyuu 的速度是真的快,我准备之后慢慢研究他的源码,看看为啥这么快,然后让他变得更好用一些。
个人感受
- 去年研究了一段时间强化学习做市商, 复现了两篇 paper (参考了作者源代码 github: https://github.com/sadighian/crypto-rl), 感觉效果不好
- 根据寒假实习学到的情况, 未来几个月的设想在下面的研究计划里
研究计划
- 做市商算法
- 高频算法
- 交易框架
- 回测系统
- 因子: cex + dex: ticker 5 + trade + web3 + …
- 模型
参考引用
- 量化橙同学