手数:=SS;
MA1:MA(CLOSE,14),NODRAW;
生命线:MA(C,20)
趋势线:MA(C,5)
kd:cross(c,生命线)&&cross(c,趋势线);
kk:cross(生命线,c)&&cross(趋势线,C);
pk:cross(c,MA1) or cross(c,生命线) ;
pd:cross(MA1,c) or cross(生命线,C);
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号
平多:SELL(PD,1,THISCLOSE); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE);
加多条件:生命线<趋势线 and cross(c,趋势线) ;
加空条件:生命线>趋势线 and cross(趋势线,c);
加多:BUY(加多条件,手数,MARKET);
加空:BUYSHORT(加空条件,手数,MARKET);加仓信号只加一次,后面信号再次出现加仓信号自动过滤。

此主题相关图片如下:qq截图20150519232529.jpg

variable:nn=0;
variable:mm=0;
手数:=SS;
MA1:MA(CLOSE,14),NODRAW;
生命线:MA(C,20)
趋势线:MA(C,5)
kd:cross(c,生命线)&&cross(c,趋势线);
kk:cross(生命线,c)&&cross(趋势线,C);
pk:cross(c,MA1) or cross(c,生命线) ;
pd:cross(MA1,c) or cross(生命线,C);
if 平空条件 and holding<0 then begin
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
nn:=0;
end
开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号
if 平多条件 and holding>0 then begin
平多:SELL(PD,1,THISCLOSE); //平多信号
mm:=0;
end
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE);
加多条件:生命线<趋势线 and cross(c,趋势线) ;
加空条件:生命线>趋势线 and cross(趋势线,c);
if 加多条件 and holding>0 and mm=0 then begin
加多:BUY(加多条件,手数,MARKET);
mm:=1;
end
if 加空条件 and holding<0 and nn=0 then begin
加空:BUYSHORT(加空条件,手数,MARKET);
nn:=1;
end
MA1:MA(CLOSE,14),NODRAW;
生命线:MA(C,20)
趋势线:MA(C,5)
kd:cross(c,生命线)&&cross(c,趋势线);
kk:cross(生命线,c)&&cross(趋势线,C);
pk:cross(c,MA1) or cross(c,生命线) ;
pd:cross(MA1,c) or cross(生命线,C);
在此基础上跨指标添加条件:引用VOL指标。kd:cross(c,生命线)&&cross(c,趋势线)并且附加条件VOL指标,m1上穿m3,作为开多条件;
kk:cross(生命线,c)&&cross(趋势线,C)并且附加条件VOL指标,m1上穿m3,作为开多条件;
pk:cross(c,MA1) or cross(c,生命线) 并且附加条件VOL指标,m3下穿m1,作为平空条件;
pd:cross(MA1,c) or cross(生命线,C)并且附加条件VOL指标,m3下穿m1,作为平多条件;
m1:=stkindi('','vol.m1',0,datatype);
m3:=stkindi('','vol.m3',0,datatype);
kd:cross(c,生命线)&&cross(c,趋势线) and cross(m1,m3);
kk:cross(生命线,c)&&cross(趋势线,C) and cross(m1,m3);
pk:cross(c,MA1) or cross(c,生命线) and cross(m3,m1);
pd:cross(MA1,c) or cross(生命线,C) and cross(m3,m1);
你后面两个条件是不是想要表示m1下穿m3?
不然m3下穿m1和m1上穿m3是一样的