请教:ma1:=ma(c,5);
ma2:=ma(c,10);
ma3:=ma(c,20);
ma4:=ma(c,30);
n:=0;
A:=ref(ma3>ma4,n) and ref(ma2>ma3,n) and ref(ma1>ma2,n);
if ma1<ma2 and ma3>ma4 and ma2>ma3
then repeat n:=n+1 until not(A);
if n>10 then DRAWICON(ma1<ma2,low,4)
目前在练习用循环结构~在均线多头排列超过10天的情况下,在5日均线和10均线死叉的位置提示买入。
公式测试能通过,但一用在副图就卡死,是不是陷入死循环了,请问哪里除了问题呢?
n:=0;
A:=ref(ma3>ma4,n) and ref(ma2>ma3,n) and ref(ma1>ma2,n);
if ma1<ma2 and ma3>ma4 and ma2>ma3
then repeat n:=n+1 until not(A);
改成
variable:n=0;
A:=ma3>ma4 and ma2>ma3 and ma1>ma2;
if ma1<ma2 and ma3>ma4 and ma2>ma3 then n:=n+1;
if not(a) then n:=0;
if n>10 then DRAWICON(ma1<ma2,low,4)
n:=0;
A:=ref(ma3>ma4,n) and ref(ma2>ma3,n) and ref(ma1>ma2,n);
if ma1<ma2 and ma3>ma4 and ma2>ma3
then repeat n:=n+1 until not(A);
改成
variable:n=0;
A:=ma3>ma4 and ma2>ma3 and ma1>ma2;
if ma1<ma2 and ma3>ma4 and ma2>ma3 then n:=n+1;
if not(a) then n:=0;
if n>10 then DRAWICON(ma1<ma2,low,4)
貌似没用,图上一个箭头也没显示~
你试试这个
ma1:=ma(c,5);
ma2:=ma(c,10);
ma3:=ma(c,20);
ma4:=ma(c,30);
con1:=ma1>ma2 and ma2>ma3 and ma3>ma4;
con2:=ma1<ma2 and ma3>ma4 and ma2>ma3;
if ref(all(con1,10),1) and con2 then drawicon(ma1<ma2,low,4);
你试试这个
ma1:=ma(c,5);
ma2:=ma(c,10);
ma3:=ma(c,20);
ma4:=ma(c,30);
con1:=ma1>ma2 and ma2>ma3 and ma3>ma4;
con2:=ma1<ma2 and ma3>ma4 and ma2>ma3;
if ref(all(con1,10),1) and con2 then drawicon(ma1<ma2,low,4);
其实我想知道该如何应用循环语句,因为我这个是条件触发,不一定是10天,也可能是15天,20天,策略是首次均线多头然后5、10日均线死叉,既然是首次多头排列然后死叉,前面自然不能是多头排列,起码均线缠绕,所以还有一句没写出来。
ma1:=ma(c,5);
ma2:=ma(c,10);
ma3:=ma(c,20);
ma4:=ma(c,30);
n:=0;
A:=ref(ma3>ma4,n) and ref(ma2>ma3,n) and ref(ma1>ma2,n);
if ma1<ma2 and ma3>ma4 and ma2>ma3
then repeat n:=n+1 until not(A);
if n>10 and count(not(A),n+15)>=13 then DRAWICON(ma1<ma2,low,4)
这句意思是if n>10 and count(not(A),n+15)>=13
当均线呈现10天以上的多头排列,往前寻起码15天内不能出现超过2次的多头排列,这个13、15和n>10都是可变参数来的。n是可变的,所以我才会选择循环语句。