那不行的,这个范例当时上面就提示了仅限于分钟级别的提前才行。
[PEL] 复制代码 INPUT:N(3,1,200,1);//N是提前的分钟数
MARK:=0;//用于记录当前是否满足某个收盘K结束前N分钟的变量
FOR I=0 TO 3 DO //循环遍历每个收盘时间来进行判断。这里可以调整I起始位置 来控制需要处理的收盘节点。
BEGIN
abb:=timetot0(CLOSETIME(I))-time0,NODRAW;//当前K线时间距离收盘K线结束倒计时,在一个K上对应一个固定值
abb3:=timetot0(CLOSETIME(I))-timetot0(dynainfo(207)),NODRAW;//当前时间(当前的北京时间)距离收盘K时间 , 在最新K上会一直变动。因为这个返回的是具体秒数
IF (abb<N*60 and abb>=0 and (not(ISLASTBAR))) or (ISLASTBAR and abb3>=0 and abb3<N*60) THEN MARK:=1;
END
if MARK then //兼顾实际交易时候的信号和历史回测信号
begin
sell(holding>0,holding,market);
sellshort(holding<0,holding,market);
DRAWICON(1,h,1);
end
你可以基于这个范例进行修改使用。这个是全部收盘前N分钟(秒也可以的)平仓的代码。 |