VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 60
声望: 2

对CTP系统而言,如果做一个两个品种的策略, 如al2209 和 MA209
那么,对于时间 14:27:00 这秒来说,这两个合约都会发来两个tick,由于郑商所切片的随机性,有可能MA209在这一秒也可能会发来1个或3个tick。 那么我想问的是,这一秒中,两个品种最后的tick,vnpy接收到的时间最多会相差多少秒呢?

Member
avatar
加入于:
帖子: 60
声望: 2

之所以问这个问题,是我在TTS接口中测试中发现,PortfolioBargenerator中保存的分钟bar, 在同一时间下,不同品种的分钟bar的datetime可以最多相差超过30s !!!
这造成了许多问题, 由于在vnpy中,只要接收到一个品种下一分钟的tick数据时,就会进行全体品种分钟bar的合成。
在14:27 这个分钟内,可能al2209 的bar已经推进到 14:27:59, 而MA209的bar才推进到14:27:49。 这两者相差10s, 这会导致:

  1. 当al2209 14:28:00 这个tick发送过来时,两个品种同时进行分钟bar的合成, 而MA的分钟bar是不完全的,因为它差了10s ,因此这根bar会少10s的数据;
  2. 当14:28的分钟Bar合成完毕后, 此时MA又推送了一个14:27:58的tick,那么此时最糟糕的情况出现:此时MA的tick和bar的minute不一样,此时又将触发一次分钟bar的合成, 而且合成完毕之后,两者的分钟bar的时间将倒退回14:27, 发生严重错误
Member
avatar
加入于:
帖子: 60
声望: 2

由于这个错误是TTS中出现的,我想问下各位,在CTP中,也会有这样的错误吗? 不同品种同一秒的tick,接收时间最远能差几秒呢?

Member
avatar
加入于:
帖子: 716
声望: 62

tick是有交易才会产生的,所以不活跃的品种可能几分钟都没有tick推送。
tts是私人搭建的测试环境,数据都是爬取的,所以只能用来测试程序的稳定性,数据的精确度是没有保证的
ctp也要分simnow和实盘,simnow中交易所同一时间的tick一般都是一起推送的,但是实盘中每个合约之间都有一定的时间间隔,累加起来就会比较大了

Member
avatar
加入于:
帖子: 60
声望: 2

郭易燔 wrote:

tick是有交易才会产生的,所以不活跃的品种可能几分钟都没有tick推送。
tts是私人搭建的测试环境,数据都是爬取的,所以只能用来测试程序的稳定性,数据的精确度是没有保证的
ctp也要分simnow和实盘,simnow中交易所同一时间的tick一般都是一起推送的,但是实盘中每个合约之间都有一定的时间间隔,累加起来就会比较大了

也就说,虽然tick数据是500ms的切片,但交易所也是有成交量才发,没成交量就不发

你说的每个合约都有一定的时间间隔,我想问一下这种间隔是因为什么原因造成的呢?如果是同一个交易所的品种也有间隔吗?不都是从同一个交易所发出来的吗?

Member
avatar
加入于:
帖子: 716
声望: 62

对的,没量就不发
间隔的原因没法确定,因为数据是从交易所发往券商,再到用户手里的,除非你能联系券商排查,不然没法判断到底问题出在哪。这里有个解释,可以看一下,https://www.vnpy.com/forum/post/56320

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】