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

在进行价差回测中,我发现bar数据,直接会到strategy.on_spread_bar,tick数据要进行bg(bargenerator)之后,通过bg.on_bar(self.bar)给到bg,之后就没有了。

这个on_bar在初始化的时候,传入了self.bg = BarGenerator(self.on_spread_bar),我以为是self.on_spread_bar当作参数传入bg,调用bg.on_bar(self.bar)其实就已经调用了strategy.on_spread_bar,但是我打印两个的id,发现是不同的,这是为什么
description

Member
avatar
加入于:
帖子: 4725
声望: 287

tick数据是通过new_tick函数走on_spread_data

Member
avatar
加入于:
帖子: 5
声望: 0

谢谢老师,我是用的是statistical arbitrage strategy,new_tick走on_spread_data,再到base的spread.to_tick得到tick,在调用on_spread_tick,on_spread_tick调用bg.update_tick,在bar generator中,每次生成一个一分钟bar(self.bar)就传入到self.on_bar里面。 self.on_bar的init在statistical arbitrage strategy传入的参数为strategy.on_spread_bar。就是走的on_spread_data最后还是调用了on_spread_bar,在回测中。

Member
avatar
加入于:
帖子: 4725
声望: 287

你这边是要基于tick回测还是基于tick合成bar回测呢?

Member
avatar
加入于:
帖子: 5
声望: 0

想基于tick回测的

Member
avatar
加入于:
帖子: 4725
声望: 287

StatisticalArbitrageStrategy是基于K线委托的策略,即使你换成tick数据回测也会基于策略逻辑生成bar然后委托的。如果你想基于tick委托,把策略逻辑写在on_spread_tick函数下就好了,不用创建bg和am实例

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

沪公网安备 31011502017034号

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