1.4 Backtrader 中的相关概念
2020-04-18 本文已影响0人
wanggs66
Data Feeds
给回测提供所需的数据(策略+指标等)
- Data Feeds缩写形式: self.data : self.datas[0] ; self.dataX : seld.datas[X]
- 当Data Feeds 不写时,默认值为self.data(即self.data0、self.datas[0])
- 一切皆可称为Data Feed: 通过对象操作,获取相关的数据,可用于整个回测过程
Parameters
- 可通过类属性的方式设定默认值(为tuple of tuples或者dict形式)
- 支持关键字参数
- 通过self.params(self.p)可以在类的实例中访问参数值
Lines
- 回测系统中的每一个对象几乎都能成为Lines 对象(将不同的值放到一块可以构成Line 序列,同时可以通过Lines 对象方位相关的值)
- self.data 和Indicators 指标都有Lines 属性,可以通过self.lines.indname的方式访问相关的数据
- lines 相关的缩略形式:xxx.lines : xxx.l; xxx.lines.name : xxx.lines_name; self.line : self.lines[0]; self.lineX : self.lines[X]; self.line_X : self.lines[X]; self.dataY : self.data.lines[Y]; self.dataX_Y : self.dataX.lines[X]: self.datas[X].lines[Y]
- self.data.lines.close 和self.movav.lines.sma 也可以简写成self.data.close 和 self.movav.sma(但是这种方式不支持赋值和对齐)
- lines 声明: 仅支持tuple格式(能保证数据插入的顺序)。注意:当tuple中仅有一个元素的时候,要把逗号写上。
- lines len: len - 已经处理的bars数; buflen Data Feed 中缓存进来的数据数量
index
0 表示当前,-1, -2, -3表示之前
Slicing
- myslice = self.my_sma.get(ago=0, size=1)
- myslice = self.my_sma.get(size=10)
- myslice = self.my_sma.get(ago=-1, size=10)
Lines: DELAYED indexing
在init中可通过[-x]的方式推迟相关计算
Lines Coupling
通过()可将两个不同的lines放到同一个timeframe下进行分析
Operators, using natural constructs
- Operators Create Objects: 可以通过简单的算术操作进行lines之间以及lines与数值之间的运算
- Operators true to nature:
由于Python语言中的一些保留字,BackTrader中创建自己的一些操作符和函数