1. 起因 把代码从backtrader迁移过来时,发现结果差异很大。
2. 问题 debug发现其中一个原因是youquant似乎为了模拟实盘的环境,很多行情/交易api加了随机的延时?
比如
Log(_D(), "get cur_ticker...")
_C(exchange.SetContractType, contract)
Log(_D(), "SetContractType ok!")
ticker = exchange.GetTicker()
Log(_D(), "get cur_ticker ok!")
这里贴个结果
好像都在15秒,30秒,甚至一分钟的也有。
3. 疑惑 想问的是: 1、刚开始用youquant,不知道这个现象正常么 2、这个跟我的回测环境有关系吗,我是腾讯云服务器托管者回测的,难道托管者从youquant数据api接收的延时被按照比例乘进去了 3、实际的交易中,获取一个ticker真的要这么久吗
4. 环境 python3.7 腾讯云Ubuntu18.04 期货rb888
5.第一次补充信息 离谱,我发现把while循环里跟交易相关的注释掉后,就没有延迟了。
6.第二次补充信息 我发现不是把交易相关的注释掉,而是应该把上面还有一个exchange.GetTicker给注释掉就好了 结合youquant的api,我的猜测是这样的—— api里面说,模拟ticker是把一根bar分成了14份,有14个插值; 我是5分钟bar,分成14份,每次就是21秒; 而每调用一次exchange.GetTicker 就会调到下一次21秒之后, 这个正是延迟的来源?