周期均方根和有效值的区别_Python量化交易学习笔记(三十八)——backtrader多周期回测1...

dec1f72c67cd65012e290df771e19085.png

在backtrader官网文档中,介绍了两种多周期回测方式,第一种是读入多周期的K线数据,第二种是对数据进行resample。本文将对第一种方式进行介绍。

简述

有些策略会使用到多周期的数据,典型的应用为:

使用周线(大周期)数据判断趋势使用日线(小周期)数据判断买卖点

这就需要同时读入多周期数据进行回测,backtrader内置了对多周期策略回测的支持。

backtrader多周期回测规则

回测时需要遵循以下规则:

  • 小周期数据必须被第一个加入到Cerebro实例中

在backtrader中,第一个被添加的数据将被作为时钟数据,因此需要将小周期数据首先添加到系统中,以使得小力度的时间都能被遍历到。

  • 数据必须按照日期时间做好对齐,这样backtrader才能正确地使用数据

backtrader在回测过程中,不会对时间进行重新排序,只能按照整理好的数据顺序依次处理,因此需要将不同周期的数据都做好对齐。很幸运,从TuShare及BaoStock下载下来的不同周期的数据均做好对齐,可以直接使用,注意数据需要按时间升序组织。

  • 大周期数据的使用会使得策略的最小周期变大。

如果要计算出技术指标的有效值,至少需要若干根K线数据,例如:计算5日均线,则至少需要前5根日K线,才能计算出第一个有效值,也就是至少经过5日,这里的5日就是backtrader里所指的最小周期。不同指标可能具有不同的最小周期,周期回测时,策略的最小周期就是所有指标最小周期的最大值。而多周期回测中,最小周期则变得复杂。通常,要计算出大周期技术指标的有效值,策略的最小周期会变大,也就是回测开始后,要经过更多的K线来保证大周期技术指标能够计算出第一个有效值。

示例

为了演示多周期策略回测,本文使用以下方案:

策略将先读入日线数据,再读入周线数据。回测股票为000001平安银行,回测周期为2018年1月1日至2019年12月31日。
# 加载数据def load_data(data_info):    fromdate = datetime.datetime(2018, 1, 1)    todate = datetime.datetime(2019, 12, 31)    datapath = './stk_data/' + data_info[0] +'/' + data_info[1] + '.csv'    return bt.feeds.GenericCSVData(        dataname = datapath,        fromdate = fromdate,        todate = todate + datetime.timedelta(days=1),        nullvalue = 0.0,        dtformat = ('%Y-%m-%d'),       
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值