以下策略在机构版后台运行为何会连续开仓到几十手,请版主帮忙检查,谢谢!
手数:=1;
M1:MA(CLOSE,2);
MI13:STKINDIEX('','mm.m20',0,11,0,500); //20分钟
//*********************************
SM12:STKINDIEX('','MD.AC',0,12,0,500); //10秒MACD
D12:SM12>0;
k12:SM12<0;
PK:=M1>MI13 and d12=1;
PD:=M1<MI13 and k12=1;
KD:=M1>MI13 and d12=1;
kk:=M1<MI13 AND k12=1;
PK1:=PK=1 AND THOLDING<0 ;
PD1:=PD=1 AND THOLDING>0 ;
KK1:=KK=1 AND tHOLDING=0;
KD1:=KD=1 AND tHOLDING=0;
平空:tsellshort(pk1 and tholding<0,手数,MKT,0,0,'1038508');
平多:tsell(pd1 and tholding>0,手数,MKT,0,0,'1038508');
开多:tbuy(kd1 and tholding=0,手数,MKT,0,0,'1038508');
开空:tbuyshort(kk1 and tholding=0,手数,MKT,0,0,'1038508');
一开始的你这个应该就是双向开仓的。
开多:tbuy(kd1 and tholding=0,手数,MKT,0,0,'1038508');
开空:tbuyshort(kk1 and tholding=0,手数,MKT,0,0,'1038508');
这2句 thodling 在这里限制不了。
其次tholding 不可以这样用。 尤其是你多空都有的时候。 比如一手螺纹多 一手螺纹空 那么你当前这个函数的返回值是0 。你最好用TBUYHOLDING这种去处理。因此 上面那个即使你持有仓位 还是会一直下单。tholding 限制不了的。