昨日最高价的表达式 (文华财经WH8赢智V8.2)

投资者咨询:昨日最高价的表达式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-24 10:20

 老师好,我看到老师们写的源码,昨日最高价写成

ZH:=REF(HHV(H,DAYBARPOS),DAYBARPOS);//昨日最高价

请问与ZH:=REF(H,1);区别是什么

技术人员回复
日期:2018-8-24 10:27
 加载在分钟周期可以取昨天的最高价

ZH:=REF(HHV(H,DAYBARPOS),DAYBARPOS);//昨日最高价

ZH:=REF(H,1);是取前一根K线的最高价

您对比看下返回值就明白了

使用第一种写法就是满足您的思路的
投资者咨询:昨日最高价的表达式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-24 10:20

 根据您的提示,老师您看我这么理解这个指令对吗?

 

DAYBARPOS表示的是当根K线是当天的第几根K线值,而REF(X,N)表示的是取N周期前X的值,由于N=DAYBARPOS,而从今天开始算的日线是第一根,即DAYBARPOS=1,所以用REF函数让计算机从昨天的高点里去找,而HHV(H,DAYBARPOS)函数里用DAYBARPOS则让计算机找日线上的最大值。

技术人员回复
日期:2018-8-24 10:58
 可以这样理解
投资者咨询:昨日最高价的表达式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-24 10:20

 那请问老师,随着今天时间的推移,今天分钟图上的K线越来越多,这个表达式还是说的昨天的最高价吗

 

 

ZH:=REF(HHV(H,DAYBARPOS),DAYBARPOS);

技术人员回复
日期:2018-8-24 15:00
 还是的

DAYBARPOS是取当天的K线数值,使用REF(A,DAYBARPOS)就相当于是取昨天的A

而这里的A就是HHV(H,DAYBARPOS),也就是当天的最大值。因此这里一直取的就是昨天的最大值

您回测看下返回值就明白了
投资者咨询:昨日最高价的表达式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-24 10:20

 谢谢老师。因为觉得这个函数用的频率很高,所以想弄清楚,以后自己写的时候也能用上。

 

您说DAYBARPOS就是取今天的K线数值,也就是说,不管是分钟线,还是小时线,还是日线,这个就是指的今天的K线。

 

但是对于REF函数来说,第二项N不是必须用数字来表示吗?那这个DAYBARPOS放在N的位置是说明它是个逻辑判断函数吗?查函数表里说DAYBARPOS是可以赋值的,比如DAYBARPOS=1说明是今天的第一根K线。

 

是不是说REF和HHV这些函数,N除了可以用数字之外,还可以用DAYBARPOS这种非数字表示,这是我迷糊的地方。

技术人员回复
日期:2018-8-24 15:39
 您理解有不对的地方

DAPBARPOS=1并不是赋值,而是判断。在DAYBARPOS的返回值等于1的时候,该条件成立

DAPBARPOS实际上就是一个取值函数,返回的是当天的K线根数。因此返回的也是数值

而逻辑判断函数,是满足条件返回1,不满足返回0的。这里就很容易看出区别来

您再综合本帖理解下
投资者咨询:昨日最高价的表达式 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-8-24 10:20

 就是说,DAYBARPOS既可以用于判断,比如ZH:=REF(HHV(H,DAYBARPOS),DAYBARPOS);

 

         也可以用于取值,比如HHV(H,DAYBARPOS);

 

这个理解对吗?

技术人员回复
日期:2018-8-24 16:04
 ZH:=REF(HHV(H,DAYBARPOS),DAYBARPOS);这句也是在取值呀

如果这个太抽象,给您举个具体点的例子,比如当前到现在一共走出了5根K线,DAYBARPOS就是返回5

那么REF(A,5),就相当于取5跟K线前的A的值

只不过这里替换成了变量,实际作用都是一样的

您再理解理解