基于backtrader打造最好用的量化投研工具(中低频为主,后续改写成cpp版本后支持高频交易)
- 当前版本是master版本,和官方主流的backtrader对齐,修改了部分bug, 可以运行我csdn专栏专栏里面的策略。当前会实现crypto量化交易,ib量化交易,ctp量化交易,股票量化交易,后续主要用于修复bug。
- 最新版本是dev分支,主要是为了实现一些新的功能,会新增加一些功能,尝试把底层代码改成c++,支持tick级别的测试等,等dev完善之后,后续会逐步合并到master分支。
# 安装python3.11, python3.11有性能上的提升,并且很多包都已经支持,下面是anaconda的一些镜像,仅供参考
# win:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.09-0-Windows-x86_64.exe
# mac m系列: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.09-0-MacOSX-arm64.sh
# ubuntu:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
# 克隆项目
git clone https://gitee.com/yunjinqi/backtrader.git
# 安装依赖项
pip install -r ./backtrader/requirements.txt
# 编译cython文件并进行安装, mac和 ubuntu下使用下面指令。有一个只能在windows上才能编译成功,会报错,忽略就好
cd ./backtrader/backtrader && python -W ignore compile_cython_numba_files.py && cd .. && cd .. && pip install -U ./backtrader/
# 编译cython文件并进行安装, windows下使用下面指令
cd ./backtrader/backtrader; python -W ignore compile_cython_numba_files.py; cd ..; cd ..; pip install -U ./backtrader/
# 运行测试
pytest ./backtrader/tests -n 4
- crypto量化交易更新和完善(2025年1月底前完成)
- ib量化交易接口更新和完善(2025年2月底前完成)
- ctp量化交易接口更新和完善(2025年4月底前完成)
- 增加股票量化交易(2025年6月底前完成)
- 数字货币资金费率回测支持,后续数字货币交易策略的回测会更准确(2024年12月底完成)
- 参考官方的文档和论坛
- 参考我在csdn的付费专栏
- ts和cs的使用说明:https://yunjinqi.blog.csdn.net/article/details/130507409
- 网络上也有很多的backtrader的学习资源,大家可以百度
记录从2022年之后对backtrader的改动
- 2024-12-23 增加了数字货币资金费率回测支持,可以直接在数据中设置资金费率,并在回测中计算资金费用
- 2024-03-15 创建了一个dev的分支,用于开发一些新的功能,后续主要在这个分支上进行更新
- 2024-03-14 修复了cython文件编译不方便的问题
- 2023-05-05 这几天实现了ts代码,用于编写一些简单的时间序列上的策略,大幅提高了回测效率
- 2023-03-03 修正了cs.py,cal_performance.py等代码上的小bug,提升了运行效率
- 2022-12-18 修改了ts,cs回测框架的部分代码,避免部分bug
- 2022-12-13 调整了sharpe.py的部分代码格式以便更好符合pep8规范,并且去掉了self.ratio的赋值
- 2022-12-05 增加了基于pandas的向量化的单因子回测类,已经可以继承具体的类,编写alpha和signal实现简单回测了
- 2022-12-1 修改plot中
drowdown
的拼写错误,改为drawdown - 2022-11-21 修改了comminfo.py中的getsize函数,把下单的时候取整数给去掉了,如果要下整数,在策略里面自己取整去控制
- 2022-11-8 给data增加了name属性,使得data.name = data._name,方便写策略的时候规范调用