请教定时器问题

感恩各位大佬莅临指导:

(1)设计思路:每天收盘前2分钟如果有持仓就全部平仓。以午盘11:30为例,也就是11:28开始平所有持仓。

(2)问题:运行程序后,结果定时器立刻运行,且ontimer立刻就开始运行平仓了。

定时器的起始时间是否设置有误?或者如何表示每天的某个时间呢?

代码如下:

Params
    //此处添加参数

Vars
    //此处添加变量
    //Global order myorder;
    Global Position mypositon;
    Global Array<Integer> timeArr;
    Integer i;
    
Defs
    //此处添加策略函数
    
Events
    //此处实现事件函数
    
    //初始化事件函数,策略运行期间,首先运行且只有一次
    OnInit()
    {
        timeArr[0] = CreateTimer(1000,0.1128,5);//是否有误。
    }
    
    OnReady()
    {
        //根据操作源ID订阅委托
        Bool ret = A_SubscribeTradeByCreateId(Enum_Trade_Source_ALL);
        Print("A_SubscribeTradeByCreateId:" + IIFString(ret, "True", "False"));
    }


    //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
    OnBar(ArrayRef<Integer> indexs)
    {
        Bool ret = A_GetPosition(mypositon,"",0);
        //print("---------------holding--------------");
        //print("longCurrentVolume:"+text(mypositon.longCurrentVolume));
        //print("shortCurrentVolume:"+text(mypositon.shortCurrentVolume));
        //print("---------------holdings--------------");
        //print("timeArr:"+text(GetArraySize(timeArr)));
        
    }
    
     OnTimer(Integer Id, Integer millSecs)
    {
        Integer a = GetArraySize(timeArr);
        for i = 0 to a-1
        {
            if(id == timeArr[i])
            {
                if(mypositon.longCurrentVolume != 0)
                {
                    A_SendOrder(Enum_sell, Enum_Exit, mypositon.longCurrentVolume, close - 50 * MinMove * PriceScale);
                    print("-------longclear------");
                };
        
                if(mypositon.shortCurrentVolume != 0)
                {
                    A_SendOrder(Enum_buy, Enum_Exit, mypositon.shortCurrentVolume, close + 50 * MinMove * PriceScale);
                    print("-------shortclear------");
                };
            }
        }
    }


定时器
重新启开--定时器
关于定时器回调的问题
定时器 CreateTimer(6000),如何获取定时器过了多少时间
定时器/onbar和ontimer
定时器应用
定时器问题,请看评论
请教问题
请教ontimer撤单
请教写法问题