Python量化交易学习笔记(52)——再读backtrader文档

实盘了两个月,5月份盈利14.34%,6月份亏损2.82%,整体表现尚可。实盘的策略是基于前面选股规则准确率计算的文章,找出准确率高的规则进行选股,严格执行止盈止损条件。

这其中存在一些问题,一是止盈条件可以根据准确率计算得到,但是止损条件不明确,缺少对参数的优化过程;二是没有进行回测,对策略的收益和回撤情况缺少整体把握。

因此,还是决定回归到backtrader,踏实地写好回测程序,边实盘边回测边优化策略。目前回测出的策略结果中,从2018年至今的收益率, 最高为103.77%,年化为22.55%。

在实现回测程序的过程,发现对backtrader的许多功能还是没有掌握。之前的使用方法是,需要用到什么功能,就去文档或者论坛里搜索一下,然后拿来使用。这样虽然达到了短期开发功能的目的,但是没有对backtrader形成整体的体系把握,也就没办法写出漂亮的代码,充分挖掘backtrader潜能。这有点像自己学python的过程,遇到问题搜索一番,解决一番,但是还是缺乏对python的整体把握。随着后来系统性的阅读python书籍,才觉得自己真正能上手python,尤其是看了《流畅的Python》一书,才发现python代码可以写那么漂亮。

回想了下这些年来学习技术的过程,基本流程很相似。任务来了先上手做,有了一定实战经验后,对技术既有了信心又有了兴趣,然后系统性阅读资料学习,对技术有更全面的认知,到后面更好地完成任务。

踏实捋backtrader吧,还是从backtrader文档开始,把觉得有用的技术点都记在笔记中。

进入笔记。。。

使用backtrader的基本流程:

  1. 创建策略Strategy
  • 选定策略的待调参数
  • 初始化策略的技术指标
  • 编写策略的买入和卖出逻辑

另一种方案是使用带有信号的技术指标,来代替策略的使用。

  1. 创建Cerebro
  • 将策略(或者带有信号的技术指标)绑定到Cerebro中
  • 加载数据,并使用cerebro.adddata将数据绑定到Cerebro中
  • 执行cerebro.run()
  • 使用cerebro.plot()查看可视化结果

理清了backtrader运行的脉络就可以针对性地设置程序结构,比如不同的技术指标策略,抽象出提供买卖点的父类,然后通过子类化来实现具体的买卖点。不同的买入、卖出逻辑(主要是指backtrader的各种订单类型),也可以实现出不同的回测买卖框架,对于给定买卖点的策略,可以直接加载实现回测。

欢迎大家关注、点赞、转发、留言,感谢支持!
微信群用于学习交流,感兴趣的读者请扫码加微信!
QQ群(676186743)用于资料共享,欢迎加入!

在这里插入图片描述

在这里插入图片描述

Guess you like

Origin blog.csdn.net/m0_46603114/article/details/118445651