回测时的事件驱动问题

Author: lightring, Created: 2019-06-19 21:50:30, Updated:

关于回测运行时,程序是如运转的,不是很清楚,因此不太理解程序的行为,请大佬解答!

以如下代码为例

function onTick() {
    Log(exchange.GetTicker());
    Log(exchange.GetTicker());
}
function main() {
    exchange.SetContractType("this_week");
    while (true) {
        onTick();
        Sleep(1000);
    }
}

假如实盘运行时 运行流程很容易理解,main()函数是个死循环,每Sleep(1000)就获取两次ticker数据,并打印出来,这两个ticker数据应该是非常接近的

回测运行时 此时Sleep(1000)显然并没有真的睡眠,而且好像exchange.GetTicker()每调用一次,模拟的ticker时间就前进到下一步 而且,如果不写onTick()函数,程序好像就真的死循环了,不会结束了

请问,在回测运行时,是哪些事件在驱动程序一步一步遍历ticker呢?


More

小小梦 轮询机制的,不是 事件驱动的机制。

lightring 明白了,感谢!

小小梦 访问 GetTicker ,就会随着时间序列 向后运行。

lightring 那么,在回测运行时,什么时候会把ticker往后走一步呢