【Backtrader】Guidance 初探

434 阅读1分钟

导读

经过《开源量化交易工具数据调研》的初步调研,backtrader 作为目前最流行的框架,值得研究一番。所以赶紧上手看看 backtrader 到底有什么功能吧。

另外,vnpy 明显是国内团队开发的,理论上文档应该会更友好。所以后续计划也试用一下。

正文

准备

  • git + python + pip
  • 安装 backtrader(带绘图版):
pip install backtrader-plotting
# Fix Bug, see: https://github.com/mementum/backtrader/pull/418
pip uninstall matplotlib && \
pip install matplotlib==3.2.2

注:

  • 建议用 3.8 版本的 python,笔者用 3.10 碰到了不少坑;
  • 若 python 版本是 3.10.x,还是不能正确展示视图,请参考 此文 修改包文件。
  • 若下载较慢可参考 文档 切换为清华源。
  • 下载项目,主要是 datas 文件夹,下面 demo 要用。
curl -L https://github.com/mementum/backtrader/archive/refs/tags/1.9.74.123.tar.gz -o backtrader.tgz && \
tar xzf backtrader.tgz && \
cp -r backtrader-1.9.74.123/datas ~/projects/backtrader-demo/datas && \
rm -rf backtrader.tgz backtrader-1.9.74.123

详见:backtrader 安装文档

快速开始

  1. Create demo.py.
touch demo.py
  1. Copy below into demo.py and run;
from __future__ import (absolute_import, division, print_function,
                        unicode_literals)

import backtrader as bt

if __name__ == '__main__':
    cerebro = bt.Cerebro()

    print('Starting Portfolio Value: %.2f' % cerebro.broker.getvalue())

    cerebro.run()

    print('Final Portfolio Value: %.2f' % cerebro.broker.getvalue())

Run:

python3 demo.py

# Output:
# Starting Portfolio Value: 10000.00
# Final Portfolio Value: 10000.00
  1. 跟着文档完成其他 Demo,注意修改代码中的相对路径,即 ../..datas/orcl.txt 改为 datas/orcl.txt

结语

不出所料,按照 Quick Start(QS)走的过程当中碰到了一些小坑,还好不多。而且走完 QS 对于 backtrader 的概念和使用方法有了进一步的认知,还是比较好上手的,大概用半天的时间就能走完全部 Demo。

接下来就是尝试用 backtrader 跑一些真实案例了,比如什么黄金叉、启明星、大三阳什么的图形,到底好不好使(早就想这么干了),各位敬请期待~