全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
已解决
TB策略单元重启问题
2023-09-22 14:59

老师好,最近策略单元重启问题测试了很多,一直没有解决问题,发现以下问题:

活跃合约:每秒都有tick反馈的合约,可以直接重启,代码如下:

If(CurrentTime==0.210000 And needRestart)

{

needRestart=False;

ReStart();

}

不活跃合约就出现了以下问题,10-20秒才有一个tick,出现新tick才更新时间,上面的程序就失效了,换下面这个程序同样不能实现不活跃合约单元重启问题:

if(TimeDiff(CurrentTime, 0.141000)==60)

{

ReStart();

}

又想了下面的办法,让这个时间判定变成时间段判定,这样一段时间内保证出现Tick就可以重启,单有新的问题,单元会重启到时间段结束,容易软件造成死机:

If(ABS(CurrentTime-0.231100)<0.000020 And needRestart)

{

needRestart=False;

ReStart();

}

请问老师,最后这个时间段重启的程序,有办法让他每天只重启一次嘛?或者重启一次后20个小时内不再触发这个判定重启的函数

kyover

ontimer试试?初始化的时候创造一个24小时驱动一次的timer,这样应该可以每天驱动一次重启

2023-09-25 08:55
lixiansheng001
@kyover

老师,createtimer里面的systemdatetime要怎么写,怎么表达24小时,systemdatetime那里写成0.210000可不可以,还是要具体写日期?

2023-09-25 17:32
kyover
@lixiansheng001

三个参数

第一个时间间隔,就是多久触发一次,如果是一天触发一次那就是24*60*60*1000毫秒

第二个开始时间,如果是24小时触发一次那就是设定成一天想什么时候驱动就写什么时候,注意有日期

第三个触发次数,就是驱动多少次自动销毁

这个阅读理解能力很堪忧呀

2023-09-26 08:59
您未登录,请先 登录注册 后发表评论
顶部