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

目前给到的portfoliostrategy的案例策略,1分钟K线都是根据最新tick的分钟数和前一根不一致触发合成,推送执行on_bars。如下代码:
if (
self.last_tick_time
and self.last_tick_time.minute != tick.datetime.minute
):
bars = {}
for vt_symbol, bg in self.bgs.items():
bars[vt_symbol] = bg.generate()
self.on_bars(bars)

    bg: BarGenerator = self.bgs[tick.vt_symbol]
    bg.update_tick(tick)

    self.last_tick_time = tick.datetime

但是同一时间大商所推送的tick数据的秒数比另外两个所的都慢1S,所以导致推送的bars会在每分钟结束的时候,连着触发,推送好几次,bars里面好多空数据。
请教一下实盘的高手,有没有更好的K线合成机制呢?

Member
avatar
加入于:
帖子: 20
声望: 4

可以只绑定一个合约,比如就根据大商所的时间来判断。
可以参考一下海龟策略的51课时。

Member
avatar
加入于:
帖子: 63
声望: 1

alvinli512 wrote:

可以只绑定一个合约,比如就根据大商所的时间来判断。
可以参考一下海龟策略的51课时。
考虑过这个逻辑,但是会导致 其他合约的数据是丢失的,比如大商所的一分钟结束的时候,可能郑商所刚走了1秒,这时生成的话,生成的郑商所K线就是只有1S的数据。
除非改写bargenerator

Member
avatar
加入于:
帖子: 20
声望: 4

祝融焱 wrote:

alvinli512 wrote:

可以只绑定一个合约,比如就根据大商所的时间来判断。
可以参考一下海龟策略的51课时。
考虑过这个逻辑,但是会导致 其他合约的数据是丢失的,比如大商所的一分钟结束的时候,可能郑商所刚走了1秒,这时生成的话,生成的郑商所K线就是只有1S的数据。
除非改写bargenerator
是的。可以写一个新的类NewBarGenerator,修改一下update_tick函数对new_minute的判断。

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

沪公网安备 31011502017034号

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