上次聊了用timeframe
参数实现跨周期分析,但你可能很快就会发现一个小瑕疵:当你把日线周期的指标放到小时图上时,指标线变得断断续续,像掉线了一样。
今天教你如何搞定这个问题,让多周期指标线条重新变得更完善,要用到的就是timeframe_gaps
这个参数。
在解决问题前,我们先要明白问题是怎么来的。
道理很简单:你让指标在4小时图上画一根日线周期的均线,日线一天才更新一次数据,可4小时图一天有6根K线,那多出来的5根4小时K线,自然就拿不到对应的日线数据,于是图上就留下了空白,也就是我们看到的缺口。
timeframe_gaps
这个参数,就是专门用来控制如何处理这些数据缺口的:
true
:这是默认行为。忠于原始数据,有数据就画,没数据就空着,所以你会看到断断续续的线条。false
:追求视觉上的连续性。用最近一次的有效数据,去填充后面的所有空白,直到下一个新的有效数据出现。
通过false
这个设置,我们就能为每一根4小时K线,都匹配上一个日线数值了。
假设我们要在图表上画一条基于2小时周期计算的、并且不希望出现断层的指标线。那么我们的indicator()
函数就可以这样写:
indicator(title="我的指标脚本", timeframe="120", timeframe_gaps=false)
反过来,如果我们就是希望看到数据缺口,有两种写法。第一种是明确地将timeframe_gaps
设为true
:
indicator(title="我的指标脚本", timeframe="120", timeframe_gaps=true)
但就像我们前面说的,true
本身就是默认值,所以直接省略这个参数,代码更简洁,效果也完全一样:
indicator(title="我的指标脚本", timeframe="120")
在默认情况下(也就是timeframe_gaps
为true
或被省略时),均线的值之间存在明显的缺口。比如一张1小时图,上面加载了一个基于4小时的均线指标,你可以看到,图上每隔4根K线,才会出现一个更高周期的新数据点。把timeframe_gaps
设为false
,数据缺口被最近的有效值填补,形成了一条连续的阶梯状线条。
这个参数比较简单,也就不一一示例了,大家可以自行摸索一下。除了在代码里设置,指标的设置面板里也有一个对应的手动选项。
一旦你通过timeframe
参数启用了多周期功能,指标设置的“输入”标签页里,就会出现一个名为“数据缺口”的复选框。
这个复选框的作用和你代码里的timeframe_gaps
完全一样,需要注意的是,用户在这里勾选或取消勾选,会临时覆盖掉你在代码里设定的默认值。这给了指标使用者更大的灵活性。