对CTP系统而言,如果做一个两个品种的策略, 如al2209 和 MA209
那么,对于时间 14:27:00 这秒来说,这两个合约都会发来两个tick,由于郑商所切片的随机性,有可能MA209在这一秒也可能会发来1个或3个tick。 那么我想问的是,这一秒中,两个品种最后的tick,vnpy接收到的时间最多会相差多少秒呢?
对CTP系统而言,如果做一个两个品种的策略, 如al2209 和 MA209
那么,对于时间 14:27:00 这秒来说,这两个合约都会发来两个tick,由于郑商所切片的随机性,有可能MA209在这一秒也可能会发来1个或3个tick。 那么我想问的是,这一秒中,两个品种最后的tick,vnpy接收到的时间最多会相差多少秒呢?
之所以问这个问题,是我在TTS接口中测试中发现,PortfolioBargenerator中保存的分钟bar, 在同一时间下,不同品种的分钟bar的datetime可以最多相差超过30s !!!
这造成了许多问题, 由于在vnpy中,只要接收到一个品种下一分钟的tick数据时,就会进行全体品种分钟bar的合成。
在14:27 这个分钟内,可能al2209 的bar已经推进到 14:27:59, 而MA209的bar才推进到14:27:49。 这两者相差10s, 这会导致:
由于这个错误是TTS中出现的,我想问下各位,在CTP中,也会有这样的错误吗? 不同品种同一秒的tick,接收时间最远能差几秒呢?
tick是有交易才会产生的,所以不活跃的品种可能几分钟都没有tick推送。
tts是私人搭建的测试环境,数据都是爬取的,所以只能用来测试程序的稳定性,数据的精确度是没有保证的
ctp也要分simnow和实盘,simnow中交易所同一时间的tick一般都是一起推送的,但是实盘中每个合约之间都有一定的时间间隔,累加起来就会比较大了
郭易燔 wrote:
tick是有交易才会产生的,所以不活跃的品种可能几分钟都没有tick推送。
tts是私人搭建的测试环境,数据都是爬取的,所以只能用来测试程序的稳定性,数据的精确度是没有保证的
ctp也要分simnow和实盘,simnow中交易所同一时间的tick一般都是一起推送的,但是实盘中每个合约之间都有一定的时间间隔,累加起来就会比较大了
也就说,虽然tick数据是500ms的切片,但交易所也是有成交量才发,没成交量就不发
你说的每个合约都有一定的时间间隔,我想问一下这种间隔是因为什么原因造成的呢?如果是同一个交易所的品种也有间隔吗?不都是从同一个交易所发出来的吗?
对的,没量就不发
间隔的原因没法确定,因为数据是从交易所发往券商,再到用户手里的,除非你能联系券商排查,不然没法判断到底问题出在哪。这里有个解释,可以看一下,https://www.vnpy.com/forum/post/56320