highd函数的问题
作者:MC 来源:cxh99.com 发布时间:2018年04月23日
-
MC用户求助:
我不知道您的图表从什么时间开始的,也不知道您的指标是从第几根K线开始计算的。假设您图表最开始的日期时间是2017-07-1,9:05分,指标最大bar设置为5,那么指标会从第六根bar开始计算得出数据。highd(N)默认是-1,当currentbar是1时,highd(0)开始赋值,当currentbar>1 且当根bar的日期和前一根bar的日期不同时,highd(1)开始赋值,当下一次再出现同样的条件时,highd(2)开始赋值,以此类推,更准确的逻辑您可以看一下函数OHLCPeriodsAgo的代码。所以highd(0)和highd(1)或者相邻两个之间的距离应该是一天,换算成5分钟周期,就会有几百根bar的距离。所以,刚开始的很多根bar,计算的hd1=highd(1)是-1; highest函数的用法,使用两个参数,第一个是pricevalue,第二个是length(长度),highest计算的是pricevalue在length长度根bar上pricevalue的数值;所以,hestd=highest(hd1,ndays)不是得到前5天的最高价,而得到从当根bar到前4根bar上hd1的数值最大值;之所以,hestd刚开始会得到0,是因为在MC中任意数值没有计算的情况下都是0,也就是说,第6根上hd1=-1,而hd1[1]是0(因为没有计算)。您需要弄清楚函数内部的逻辑。
-
MC回复讨论一:
我不知道您的图表从什么时间开始的,也不知道您的指标是从第几根K线开始计算的。假设您图表最开始的日期时间是2017-07-1,9:05分,指标最大bar设置为5,那么指标会从第六根bar开始计算得出数据。highd(N)默认是-1,当currentbar是1时,highd(0)开始赋值,当currentbar>1 且当根bar的日期和前一根bar的日期不同时,highd(1)开始赋值,当下一次再出现同样的条件时,highd(2)开始赋值,以此类推,更准确的逻辑您可以看一下函数OHLCPeriodsAgo的代码。所以highd(0)和highd(1)或者相邻两个之间的距离应该是一天,换算成5分钟周期,就会有几百根bar的距离。所以,刚开始的很多根bar,计算的hd1=highd(1)是-1; highest函数的用法,使用两个参数,第一个是pricevalue,第二个是length(长度),highest计算的是pricevalue在length长度根bar上pricevalue的数值;所以,hestd=highest(hd1,ndays)不是得到前5天的最高价,而得到从当根bar到前4根bar上hd1的数值最大值;之所以,hestd刚开始会得到0,是因为在MC中任意数值没有计算的情况下都是0,也就是说,第6根上hd1=-1,而hd1[1]是0(因为没有计算)。您需要弄清楚函数内部的逻辑。