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

这是update_tick的源代码
description

这段代码里最让我困惑的是,只要有一个品种的 tick的 tick.datetime.minute != self.last_dt_minute,就会触发self.on_bars()
可是问题是投资组合中不是只有一个品种啊!!!
如果有多个品种,而vnpy接收到这些tick的时间有毫秒的差别(郑商所的毫秒时间本来就和大商所、上期所不一样)
那么,vnpy会在检测到第一个品种的tick 符合条件时,就直接调用self.on_bars()!!!!

如果此时on_bars计算的时间长一些,例如碰上固定的交易时间了,需要计算策略了,需要调用update_bar_hour_window了,需要send_order了,那么此时on_bars还没计算完。但此时过了200ms,另外一个品种的tick发过来了,它将又要调用self.on_bars() !!!! (因为上个品种的on_bars还没调用完, self.last_dt是在on_bars调用完后面才修改的)
这岂不是在很短的时间内就要对策略进行两次计算吗??

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

portfolio_strategy本身是用于中低频交易的,对tick的精确度要求不高

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

沪公网安备 31011502017034号

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