以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  指标求助  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=173928)

--  作者:casey
--  发布时间:2020/1/10 15:23:34
--  指标求助
DRAWICON((C>MA2&&C>MA1)&&(COUNT((C>MA2&&C>MA1),M)=1||COUNT((C>MA2&&C>MA1),BARPOS)=0),L-5,4);
3条均线MA1、2、3,想要让MA3成为前提条件,C>MA3的时候执行上面的画图标,如果C<MA3则不执行,而不是等到C>MA3之后再执行


--  作者:FireScript
--  发布时间:2020/1/10 15:50:37
--  
C>MA3之后再执行” 这个怎么解释。第一次c>ma3时候执行画图表的语句吗?

--  作者:casey
--  发布时间:2020/1/10 17:04:17
--  
比如是5,10,20,三条均线,5跟10就是MA1和2,20就是MA3,第一种情况C>MA3的时候,C>MA2&&C>MA1执行画图标,第二种情况如果C<MA3,这个时候C>MA2&&C>MA1就让其失效不执行,就算之后C>MA3了也不再执行。我试过C>MA2&&C>MA1&&C>MA3,在第二种情况的时候C<MA3的时候不会执行,但是一旦C>MA3了就会执行画图标
--  作者:FireScript
--  发布时间:2020/1/10 17:19:25
--  
 C>MA2 and C>MA1 and  C>MA3
这样就是对的。因为and是表示同时满足的意思。不会出现只要满足c>ma3满足就会画图标的。

我把你的代码拆分出来
cd:(C>MA2 and  C>MA1 and c>ma3) and (COUNT((C>MA2 and  C>MA1 and c>ma3),M)=1 or COUNT((C>MA2 and C>MA1),BARPOS)=0);
DRAWICON(cd,L-5,4);

应该是这里的or后面的满足了导致的。你可以看下or后面改如何处理。把这个部分处理掉应该就可以了。

--  作者:casey
--  发布时间:2020/1/10 19:14:58
--  
好的我再研究一下