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之后再执行
比如是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了就会执行画图标
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后面改如何处理。把这个部分处理掉应该就可以了。