这个怎么写

此主题相关图片如下:3gjrp~7$ij4@xuyip29xhc.jpg
图中的信号是根据TJ>0平多开空,TJ<=0平空开多发出的,
信号1:副图PM<-20,信号执行
信号2:副图PM也小于-20,信号也执行,只要在PM<-20的范围内有信号则执行
信号3:距离上一个PM向上穿越-20在20个周期范围内出现的信号也执行。
信号4和信号5:因为PM>-20且在距离上一个PM穿越-20后20个周期,则信号4和信号5不执行,而根据其他的开平仓条件来执行。
VARIABLE:n=0;
pm:stkindi('','副图指标公式名.pm',0,21,3);//用你副图指标公式的名称替换掉
a:cross(pm,-20);
b:cross(-20,pm);
if a then n:=1;
if b then n:=0;
xx:pm<-20 or (pm>-20 and BARSLAST(n=1)<=20);//增加的限制条件
把xx加到开平仓条件里
老师,按你的指导还是那样,跟之前的信号没变。关键一点是想当PM>-20时且距离上一个PM穿越-20后第21个周期之后不能信号4和信号5执行
信号4和5是什么?不是TJ>0平多开空,TJ<=0平空开多发出的信号?
pm:stkindi('','副图指标公式名.pm',0,21,3);//用你副图指标公式的名称替换掉
a:cross(pm,-20);
xx:pm<-20 or (pm>-20 and BARSLAST(a)<=20);//增加的限制条件
把xx加到开平仓条件里
[此贴子已经被作者于2014/9/18 15:48:33编辑过]
老师,在请教下,1.当cross(pm,-20)后20个周期内我只希望第一个信号发生,如果在这20个周期内有N个开平仓信号,我只希望第一个发生,后面N-1个不发生。
2.当cross(pm,-20)向上穿越-20后20个周期之后(就是从穿越后第21个周期算起)如果PM>-20,则根据横盘突破系统来发生开平信号。
“当cross(pm,-20)后20个周期内我只希望第一个信号发生”
不分是开还是平,只要出信号只要第一次信号?