在上一个帖子中,我用东吴期货测试发现ticker延迟750ms
现在我开了很多期货账号,经过测试发现他们的延迟基本差不多(虽然东吴期货稍微慢一点),也都在600-700ms;
1、我有点迷惑了,是我的测试方法不对吗?还是我对延迟的理解不对? 比如我ticker = exchange.GetTicker()获取到最新的ticker,发现它的Time字段对应的是14:11:04.000,此时本地时间记录为 local_time = 14:11:05.181,考虑到这个ticker是14:11:04.000到14:11:04.500之间的ticker,算出来延迟是14:11:05.181 - 14:11:04.500 等于0.68秒。这样有问题吗?
2、测试的时间是下午14点后,不知道是否因为这个时间段都是这个延迟
3、可能我对延迟理解不对?上面那个14:11:04.000的ticker,难道记录的是14:11:04.000到14:11:05.000之间的ticker? 这样的话,ticker500ms已更新,但是每次更新的是一秒钟内的市场状态?这么算的话,延迟200ms还算能接受。但是好像不是这么算的
期货公司通道 | ticker延迟中位数 |
---|---|
宏源期货主席1 | 710ms |
宏源期货主席2 | 713ms |
宏源期货主席3 | 693ms |
东吴期货1 | 762ms |
东吴期货2 | 810ms |
渤海期货主席1 | 670ms |
渤海期货主席2 | 689ms |
渤海期货次席1 | 700ms |
渤海期货次席2 | 696ms |
附上我测试的代码
def log_speed(ticker, name):
res = {}
res['TimeF'] = datetime.datetime.fromtimestamp(ticker['Time']/1000).strftime("%H:%M:%S.%f")
res['local_ms'] = datetime.datetime.now().strftime("%H:%M:%S.%f")
res['yanchi'] = datetime.datetime.now()-datetime.datetime.fromtimestamp(ticker['Time']/1000)
res['yanchi'] = res['yanchi']-pd.Timedelta('0.5s')
Log(res, name)
def main():
exchange.IO("mode", 1)
_C(exchange.SetContractType, 'rb2201')
for i in range(5):
ticker = exchange.GetTicker()
log_speed(ticker, 'ticker{}'.format(i))
exit(0)