GetTicker回测时的耗时是怎么设定的

Author: 王木木0015, Created: 2021-11-18 10:03:35, Updated: 2021-11-18 11:00:52

1. 起因 把代码从backtrader迁移过来时,发现结果差异很大。

2. 问题 debug发现其中一个原因是fmz似乎为了模拟实盘的环境,很多行情/交易api加了随机的延时?

比如

    Log(_D(), "get cur_ticker...")
    _C(exchange.SetContractType, contract)
    Log(_D(), "SetContractType ok!")
    ticker = exchange.GetTicker()
    Log(_D(), "get cur_ticker ok!")

这里贴个结果 img

好像都在15秒,30秒,甚至一分钟的也有。

3. 疑惑 想问的是: 1、刚开始用fmz,不知道这个现象正常么 2、这个跟我的回测环境有关系吗,我是腾讯云服务器托管者回测的,难道托管者从fmz数据api接收的延时被按照比例乘进去了 3、实际的交易中,获取一个ticker真的要这么久吗

4. 环境 python3.7 腾讯云Ubuntu18.04 期货rb888

5.第一次补充信息 离谱,我发现把while循环里跟交易相关的注释掉后,就没有延迟了。

6.第二次补充信息 我发现不是把交易相关的注释掉,而是应该把上面还有一个exchange.GetTicker给注释掉就好了 结合fmz的api,我的猜测是这样的—— api里面说,模拟ticker是把一根bar分成了14份,有14个插值; 我是5分钟bar,分成14份,每次就是21秒; 而每调用一次exchange.GetTicker 就会调到下一次21秒之后, 这个正是延迟的来源?


更多内容