条件满足的情况下,只产生了部分信号
mac:=ma(c,25);
mav:=ma(v,25);
macb:=mac>ref(mac,1) ;
mavb:=mav>ref(mav,1);
K:macb+mavb;
d:holding;
平多:SELL(k=2,0,THISCLOSE); //平多信号
平空:SELLSHORT(k=2,0,THISCLOSE); //平空信号
开多:BUY(K=0 ,1,THISCLOSE); //开多信号
开空:BUYSHORT(K=0,1,THISCLOSE); //开空信号
但如果每次都仓位保持零的情况下,信号全部产生
mac:=ma(c,25);
mav:=ma(v,25);
macb:=mac>ref(mac,1) ;
mavb:=mav>ref(mav,1);
K:macb+mavb;
d:holding;
平多:SELL(1,0,THISCLOSE); //平多信号
平空:SELLSHORT(1,0,THISCLOSE); //平空信号
开多:BUY(K=0 ,1,THISCLOSE); //开多信号
开空:BUYSHORT(K=0,1,THISCLOSE); //开空信号
顺序要按照
平空
开多
平多
开空
进行写,楼主的编写顺序有漏洞
改了顺序问题还是一样的,当k=2 或k=0时,很多时候不触发信号。
mac:=ma(c,25);
mav:=ma(v,25);
macb:=mac>ref(mac,1) ;
mavb:=mav>ref(mav,1);
K:macb+mavb;
d:holding;
平空:SELLSHORT(k=2,0,THISCLOSE); //平空信号
开多:BUY(K=0 ,1,THISCLOSE); //开多信号
平多:SELL(k=2,0,THISCLOSE); //平多信号
开空:BUYSHORT(K=2,1,THISCLOSE); //开空信号
但如果每次都仓位保持零的情况下,信号全部产生
mac:=ma(c,25);
mav:=ma(v,25);
macb:=mac>ref(mac,1) ;
mavb:=mav>ref(mav,1);
K:macb+mavb;
d:holding;
平空:SELLSHORT(1,0,THISCLOSE); //平空信号
开多:BUY(K=0 ,1,THISCLOSE); //开多信号
平多:SELL(1,0,THISCLOSE); //平多信号
开空:BUYSHORT(K=2,1,THISCLOSE); //开空信号