INPUT:NMIN(30,10,60,10);
INPUT:NOFFSET(3,1,20,1);
INPUT:LOTS(1,1,1000,1);
CYC:=BARSLAST(DATE>REF(DATE,1))+1;
HIGHESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,HHV(H,CYC));
LOWESTOF30MIN:=VALUEWHEN(TIME<=90000+NMIN*100,LLV(L,CYC));
IF HIGH >= HIGHESTOF30MIN + NOFFSET*MINDIFF AND THOLDING<=0 THEN
BEGIN
MYPRICE: = HIGHESTOF30MIN + NOFFSET*MINDIFF;
IF OPEN > MYPRICE THEN
BEGIN
MYPRICE: = OPEN;
TSELLSHORT(THOLDING<0,0,LMT,MYPRICE);
TBUY(THOLDING=0,LOTS,LMT,MYPRICE);
END
END
IF LOW <= LOWESTOF30MIN - NOFFSET*MINDIFF AND THOLDING>=0 THEN
BEGIN
MYPRICE: = LOWESTOF30MIN - NOFFSET*MINDIFF;
IF OPEN < MYPRICE THEN
BEGIN
MYPRICE: = OPEN;
TSELL(THOLDING>0,0,LMT,MYPRICE);
TBUYSHORT(THOLDING=0,LOTS,LMT,MYPRICE);
END
END
IF TIME >= 145900 THEN
BEGIN
TSELL(THOLDING>0,0,LMT,OPEN);
TSELLSHORT(THOLDING<0,0,LMT,OPEN);
END
大体问题没有,只是注意TBUY等指令是LMT指令,个别THOLDING换掉.
此外,后台自动交易的公式,无法在程式化交易评测里进行测试
TBUY等后台自动交易函数不会再同周期反复开仓
如果你希望仓位不会被日后的周期反复开仓,那么只要加入THOLDING>0等等条件就可以了,目前这个系统已经能达到目的