VARIABLE:CS=0;
IF (DATE<>REF(DATE,1)) OR BARPOS=1 THEN BEGIN
CS:=0;
KDPK:= BUYCOND AND CS=0;
IF KDPK THEN BEGIN
SELLSHORT(KDPK AND HOLDING<=0,手数,MARKETR),ORDERQUEUE;
BUY(KDPK AND HOLDING<=0,手数,MARKETR),ORDERQUEUE;
CS:=1;
END
=====================
一天只想只做一次多空反转,这样写不知道问题出哪里,谢谢老师
IF KDPK THEN BEGIN
SELLSHORT(KDPK AND HOLDING<=0,手数,MARKETR),ORDERQUEUE;
BUY(KDPK AND HOLDING<=0,手数,MARKETR),ORDERQUEUE;
CS:=1;
END
IF PDKK THEN BEGIN
SELL(PDKK AND HOLDING>=0,手数,MARKETR),ORDERQUEUE;
BUYSHORT(PDKK AND HOLDING>=0,手数,MARKETR),ORDERQUEUE;
CS:=1;
END
是不是在日内前面触发过一次平空开多了?如果是的话,后面PDKK 是无法满足的。因为cs这时候已经变成1了。
你最好用2个全局变量,一个控制平多开空,一个控制平空开多。