不对。你这个重置逻辑:DATE <> REF(DATE,1) 在第一个K上会一直触发。如果你在此期间下单了,是不会被记录的。
其他语句中的语法错误也有好几个。 你就参考前面帖子里的就行,逻辑是一样的,只需要再补一个不在收盘K开仓的条件就行了,因为收盘K会一直重置记录,肯定没法限制下单了。
[PEL] 复制代码 //点击工具--数据管理--全局变量,创建一个全局变量NUM,初始值设为3,表示交易次数限定为3次。
//该策略适用于后台程序化交易
//该策略适用于分钟周期
//使用单值全局变量,来限定一天只交易3次
CS:=3;//限定一天最多交易3次
MA5:MA(CLOSE, 5);
MA20:MA(CLOSE, 20);
COND1:=CROSS(MA5,MA20);
COND2:=CROSS(MA20,MA5);
IF COND2 AND THOLDING>0 THEN TSELL(1,1,LMT,CLOSE); //平仓
NUM:=EXTGBDATA('NUM'); //获取单值全局变量,来控制当天交易次数
IF COND1 AND THOLDING=0 AND NUM< CS and not(TIME=CLOSETIME(0)) THEN //开仓
BEGIN
TBUY(1,1,LMT,CLOSE);
EXTGBDATASET('NUM',NUM+1);
END
IF TIME=CLOSETIME(0) THEN EXTGBDATASET('NUM',0); // CLOSETIME(0)是取商品期货最后一节的交易时间,收盘时,NUM赋值为0。 |