多数据策略跌代表详解
场景:有多个相同时间粒度的股票数据参与策略,不同股票数据时间并不一致
日期 开盘 收盘 最高 最低 成交量 成交额 振幅 \
0 2020-12-22 38.44 33.67 38.44 32.96 89625 582730960.0 31.08
1 2020-12-23 30.11 29.91 32.33 28.11 69495 371508160.0 12.53
.. ... ... ... ... ... ... ... ...
268 2022-01-27 22.19 26.46 26.46 19.40 170094 401386096.0 32.02
269 2022-01-28 25.18 31.75 31.75 24.80 231780 667065776.0 26.27
日期 开盘 收盘 最高 最低 成交量 成交额 振幅 \
0 2011-08-03 10.23 10.51 10.56 9.93 71465 313417139.0 11.43
1 2011-08-04 10.28 10.51 11.41 10.19 51287 236224255.0 11.61
2 2011-08-05 9.85 9.88 10.26 9.44 29797 126299472.0 7.80
... ... ... ... ... ... ... ... ...
2428 2022-01-26 14.59 15.91 16.92 14.59 517903 840837280.0 16.52
2429 2022-01-27 15.12 13.01 15.20 13.01 395628 558582736.0 13.76
2430 2022-01-28 13.51 15.61 15.61 13.18 331606 498365328.0 18.68
数据最小日期:数据最小期的bar对应的日期。这里第一份数据的最小日期是:2020-12-22,第二份数据的最小日期是:2011-08-03
策略最小日期:策略最小日期是个数据中最大的数据最小日期。在上面这两份数据中是 2020-12-22。backtrader会从策略最小日期开始进行next方法。
图1
注意:当第一份数据未到达策略最小日期,它的长度将一直为0,且数据取数据的最后一条
注意2:
图1,策略最小日期开始进行next方法,那么策略最小周期之前的数据就浪费了,可以通过在 prenext
中跳转 next
避免
def prenext(self):self.next()