行情数据
含线对象
含有一条或多条线的对象称为含线对象,含线对象有一个类似列表的属性lines,里面就是对象的线。
行情对象(data feed)如 self.datas[0]、指标对象如self.move_average, 都是含线对象,策略自己self也是含线对象
线 line对象
行情数据中每一列称为一条线,线由一系列数据点组成。比如 close 线由一系列收盘价构成。
含线对象的 lines 中含有指向具体line数据的line对象,可通过索引访问其中的线对象。如:self.data.lines[0] 表示访问行情数据(含线对象)中的第一根线对象。
更常见的是通过线名称直接访问线对象,如self.data.lines.close
如果想知道含线对象具体含有哪些线,可通过lines的 getlinealiases 获取。如:self.data.lines.getlinealiases(),返回 行情数据中的每一列数据。
再看看策略自身所含的line,self.getlinealiases(),返回(‘datetime, ’),即策略自身只含一条datetime线。 在 next 方法中,可用len(self)得到当前已经处理的bar的bar数目(数据行数),它实际上统计的是datetime线从最早到当前的长度。
在next方法中通过索引访问line中的点
如:self.data.close[0]访问当前(今天)bar的收盘价,self