以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  找第二根阴线出错  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=175559)

--  作者:18918173777
--  发布时间:2020/4/17 6:55:31
--  找第二根阴线出错
问题:下面的代码中,我们希望先找到最近的阴线1。再从这根阴线向前找最高点>阴线1最高点的阴k线2,但公式出错:
T:=C<O;
A:=barslast(T);
h1:=ref(h,A);
a1:barslast(c<o and h>h1);//最近的第二根阴线到当前周期的周期数

需要怎么写才可以满足需求?
--  作者:wenarm
--  发布时间:2020/4/17 9:04:21
--  
aa:if(c<o,HIGH,0),LINETHICK0;
bb:NEWHBARS(aa, 1)+1;
cc:VALUEWHEN(c<o,bb);//阴线1对应的阴线2之间的周期数。

--  作者:18918173777
--  发布时间:2020/4/18 6:55:55
--  
谢谢。bb好像不用+1?
--  作者:wenarm
--  发布时间:2020/4/18 9:22:14
--  

建议你自己调试看下。它从0开始算的。你说要不要+1?


--  作者:18918173777
--  发布时间:2020/4/18 12:04:58
--  
经过调试,
aa:if(c<o,HIGH,0),LINETHICK0;

//bb:NEWHBARS(aa, 1)+1;
bb:if(c<o, NEWHBARS(aa, 1),0        );
cc:VALUEWHEN(c<o,bb);//阴线1对应的阴线2之间的周期数。
是对的。

但反过来就有问题:
aa:if(c>o,low,0),LINETHICK0;

//bb:NEWHBARS(aa, 1)+1;
bb:if(c>o, NEWLBARS(aa, 1),0        );
cc:VALUEWHEN(c>o,bb);//阳线1对应的阳线2之间的周期数。

比如阳线中间间隔一个阴线,那么cc应该为2,但它一直为1。而阴线没有这个问题,难道是NEWLBARS有bug?

--  作者:18918173777
--  发布时间:2020/4/18 12:21:25
--  
知道问题在哪里了。不用回复了,谢谢。