对标BackTrader的量化策略回测框架

2024年2月27日 598点热度 0人点赞 0条评论

春节前给自己开了一个新坑,准备做一个对标BackTrader的量化策略回测框架,当时还发了篇博客 准备自己写一套量化回测框架。今天终于把一个功能比较完整的初版demo做完了,这里记录一下。

不可否认BackTrader的功能强大,但想得心应手的运用好这套工具大概率需要自己读源码进行魔改。所以我一直在想,干脆自己动手撸一个,简单实现的话,技术上其实并不是很难,而且更适合自己,用起来会更方便一些。

框架实现的整体思路其实很简单,就是在源数据的dataframe基础(日期、开高收低量)上,加入策略相关的技术指标数据、头寸开平仓相关数据,然后送入分析模块进行统计,统计后的结果返回给一个Plotter对象进行pyecharts的前端渲染。使用时只需要从Strategy基类派生自己的策略类,重写指标生成及开平仓这三个方法,剩下的工作由基类封装好的run方法自动完成。

这里是一个策略回测Demo,K线数据使用的是 股票价格是随机漫步游走的吗? 这篇博客中分享的随机K线生成函数生成的,策略是简单的双均线策略,SMA5上穿SMA20买入,SMA5下穿SMA20卖出。为了测试方便,我在主图中加入了布林带相关数据,副图指标加入了一个KDJ指标进行测试,跟实际的交易策略没有半毛钱关系,只是为了调试图表效果。图表链接如下:

https://qthinker.net/charts/strategy/demo.html

总的来说目前我个人比较关注的数据图表中都做了统计,这个初版对于单标的基于技术指标的策略回测应该是完全可以胜任,后续会实现多标的轮动类策略的逻辑(例如动量)以及一个策略参数优化器。理论上只要数据粒度够,通过它完全可以实现不输于BackTrader的统计和展示效果。

这套框架目前还很粗糙,只是基本实现了预期效果,需要完善的地方还有很多,会持续改进。后面会把精力放在交易策略的研究上多一些,相关的数据回测放下BackTrader用自己写的这套工具完成。

QThinker

前地产从业者,假装是个程序员,热爱编程与交易 自研QThinker量化交易框架

文章评论