
此主题相关图片如下:无标题.gif

如上图:在一波绿柱子中,如果有连续两根以上缩短的情形就计数一次,如果只是一根缩短随后就又放长则不计数。请问:如何统计?多谢。
如果是一波绿柱子,那么柱子缩短的定义就是此根MACD的值大于前一根则为缩短,如果有连续的缩短(至少连续两根,即一根比一根短,如果只是此根比前一根缩短,然后马上又放长,则不算。)一直到柱子再次伸长,则计数一次;如果再有同样的情形,则计数加1。
VARIABLE:n=0,flag=0,MACD_VA=0;
DIFF :=EMA(CLOSE,12) - EMA(CLOSE,26);
DEA :=EMA(DIFF,9);
MACD :=2*(DIFF-DEA);
if flag=0 and macd>ref(macd,1) and ref(macd,1)>ref(macd,2) AND macd<0 then begin
N:=N+1;
FLAG:=1;
MACD_VA:=MACD;
end
IF MACD<MACD_VA AND macd<0 THEN begin
FLAG:=0;
END
IF macd>0 THEN BEGIN
n:=0;
FLAG:=0;
MACD_VA:=0;
END
AA:N;
您好。
这段代码在实际测试过程中发现了一个问题:第一次缩短两根后,MACD_VA被赋值了最短那根,但如柱子继续缩短,而MACD_VA却不再变化了。
实际情形如果是这样:一波绿柱子连续缩短了了8根,然后又伸长了1根,然后又连续缩短了两根以上,按说是应该计为两次的。但由于伸长的那根很有可能并不会小于MACD_VA,于是其后的连续缩短就不会被计数了。
烦请您再费心帮忙解决一下这个问题。
我测试了 并没有出现你说的情况的。后续的计算正常进行的。

此主题相关图片如下:temp.png

你配置成和我一样的这个条件。 上图后面就出现了你说的情况,a的值结果是递增了的。