【答读者问32】如何基于期货基本面数据(库存、基差、利润等)进行回测
作者:yunjinqi   类别:    日期:2021-12-23 18:13:29    阅读:2518 次   消耗积分:0 分    

我在公司主要是负责期货CTA的投研,有好多期货上的东西是能避免就避免,有些敏感,不太好深入讲。今天有读者咨询,如何使用backtrader基于期货的基本面数据进行回测,实际上,在前面的专栏中,已经做过相关的介绍了,稍微改下代码就可以实现。在这篇文章中,尝试对这个话题进行一个汇总回答。
首先,推荐一下我以前写的一些文章:

10、backtrader的一些基本概念—feed讲解(2)—如何增加新的数据及一个基于pe-pb的小策略

在这篇文章中,扩展了高开低收的数据,增加了两个时间序列的财务指标-pe和pb,实际上,做期货的基本面数据,参考这篇文章就可以实现。

【股票策略】使用backtrader测试狗股策略版本4—在版本3的基础上进行代码改进优化

这篇文章是使用另一种方式对常规的数据进行了扩充,比较适合那些横截面数据等非严格的时间序列数据

56、【backtrader股票策略】多因子策略框架及基于动量和价值的因子策略

这篇文章是使用backtrader给常规的因子回测做了一个框架,在期货上,也是可以用的。
【答读者问23】计算指标的时候是直接使用pandas计算好指标加载进去速度快,还是在backtrader中计算指标速度快?(2021-11-17更新,修复pandas增加列添加问题)

这篇文章虽然看起来是对比pandas和backtrader计算指标的效率的问题,但是实际上,也实现了,对pandas数据进行扩展,任意多列的pandas数据都可以直接加载到backtrader中,并且以line的形式调用。文章10是以csv的形式,这篇文章是使用pandas的形式,只要pandas能够实现的数据形式,都可以加载进backtrader中进行调用。实际上,看到这里,做期货策略的回测,应该问题不大了吧。

做期货和做股票不同,期货需要额外考虑杠杆和固定佣金与百分比佣金的区别,这个在以前的教程中,有过讲解,可以参考这两篇文章

backtrader的一些基本概念—佣金(commission)的设置

46、backtrader的一些基本概念—佣金(commisssion)的高级使用方式

还有需要考虑设置滑点的多少,在股票策略里面我基本上都不设置。还有在期货策略里面,我好多也不设置。滑点的问题建议单独考虑,这个跟策略逻辑、交易的品种、时间等很多问题有关。如果想要设置滑点,可以参考这篇文章

43、backtrader的一些基本概念----滑点(Slippage)的使用方法

如果单个参数跑起来没问题,想要做多品种多参数的优化及参数分析,可以参考这篇文章:

71、【backtrader期货策略】十大经典策略-空中花园(各品种参数优化版本)

好了,前面好多东西都是铺垫,都铺垫到这了,我觉得这个问题其实不用我回答了吧?还是简单一些做下汇总吧。

期货的数据分为高、开、低、收、成交量、持仓量的行情数据,还有库存、基差、利润等各种基本面数据,期货的行情数据直接加载到backtrader里面就可以了,这些特殊的基本面数据,怎么使用,可以结合自己的数据综合考虑。

如果自己的数据是特定时点的,而非时间序列的,可以考虑按照狗股策略里面那种方式,直接在init初始化的时候加载进去,这样在next中可以获取到全部的基本面数据,然后使用时间过滤的方法,可以得到当前时间点可以得到的基本面数据,避免未来函数。

如果自己的数据是时间序列数据,那么,就考虑扩展feed,增加具体的列,这样在next中,新的列就是一个新的line,跟行情数据一样,调用就可以了。可以参考10和答读者问23的文章,扩展数据。


智慧、心灵、财富,总要有一个在路上,愿我们能在人生的道路上,不断成长、不断成熟~~~

感兴趣可以关注我的专栏:

my_quant_study_note:分享一些关于量化投资、量化交易相关的思考

backtrader量化投资回测与交易:本专栏免费,分享backtrader相关的内容。

量化投资神器-backtrader源码解析-从入门到精通:本专栏目前收费299元,预计更新100篇策略(更新中)+36篇backtrader讲解(已完成)+backtrader源码分析。


版权所有,转载本站文章请注明出处:云子量化, http://www.woniunote.com/article/60
上一篇:【答读者问31】在分钟级别的策略运行后如何获取每日的收益率?
下一篇:【答读者问33】backtrader可以对接scikit-learn、pytorch、tensorflow之类的机器学习和深度学习的框架吗