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

环境:vnpy-2.1.9/pyhton=3.7.9/rq数据
从报错中看应该是bar没有数据,导致获取不到bar的相关属性。
不知道这应该如何处理?

description

Member
avatar
加入于:
帖子: 3270
声望: 219

对比一下你的策略和示例策略吧,重点比较一下on_bar函数

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

xiaohe wrote:

对比一下你的策略和示例策略吧,重点比较一下on_bar函数

我就是在示例策略上之修改了策略逻辑,其他的都没有修改

Administrator
avatar
加入于:
帖子: 4497
声望: 309

Chiang wrote:

环境:vnpy-2.1.9/pyhton=3.7.9/rq数据
从报错中看应该是bar没有数据,导致获取不到bar的相关属性。
不知道这应该如何处理?

description

请在调用bg.update_bar之前,判断下bar对象是否为None,不是再推送给bg

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

用Python的交易员 wrote:

Chiang wrote:

环境:vnpy-2.1.9/pyhton=3.7.9/rq数据
从报错中看应该是bar没有数据,导致获取不到bar的相关属性。
不知道这应该如何处理?

description

请在调用bg.update_bar之前,判断下bar对象是否为None,不是再推送给bg

我是用官方的demo 也出现这样的问题
: 触发异常已停止
Traceback (most recent call last):
File "C:\vnpy\vnpy\app\portfolio_strategy\engine.py", line 325, in call_strategy_func
func(params)
File "C:\vnpy\vnpy\app\portfolio_strategy\strategies\demo_strategy.py", line 211, in on_tick
self.on_bars(bars)
File "C:\vnpy\vnpy\app\portfolio_strategy\strategies\demo_strategy.py", line 222, in on_bars
bg.update_bar(bar)
File "C:\vnpy\vnpy\trader\utility.py", line 264, in update_bar
self.update_bar_minute_window(bar)
File "C:\vnpy\vnpy\trader\utility.py", line 272, in update_bar_minute_window
dt = bar.datetime.replace(second=0, microsecond=0)
AttributeError: 'NoneType' object has no attribute 'datetime'

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

用Python的交易员 wrote:

Chiang wrote:

环境:vnpy-2.1.9/pyhton=3.7.9/rq数据
从报错中看应该是bar没有数据,导致获取不到bar的相关属性。
不知道这应该如何处理?

description

请在调用bg.update_bar之前,判断下bar对象是否为None,不是再推送给bg

另外我不是直接从rq 拉的数据吗,会为空?

Member
avatar
加入于:
帖子: 337
声望: 25

description
请确认一下你的on_bar函数有没有多传入self参数,如果有的话把self参数去掉即可

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

青青子荆 wrote:

description
请确认一下你的on_bar函数有没有多传入self参数,如果有的话把self参数去掉即可

可以给我一个你的模板吗,你把策略逻辑全部删除就好,感谢!!!!

Member
avatar
加入于:
帖子: 337
声望: 25

我用的就是官方的示例模板,你看下是不是不小心修改了这里

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

青青子荆 wrote:

我用的就是官方的示例模板,你看下是不是不小心修改了这里

我也使用官方的模板 还是报错

Administrator
avatar
加入于:
帖子: 4497
声望: 309

Chiang wrote:

用Python的交易员 wrote:

Chiang wrote:

环境:vnpy-2.1.9/pyhton=3.7.9/rq数据
从报错中看应该是bar没有数据,导致获取不到bar的相关属性。
不知道这应该如何处理?

description

请在调用bg.update_bar之前,判断下bar对象是否为None,不是再推送给bg

我是用官方的demo 也出现这样的问题
: 触发异常已停止
Traceback (most recent call last):
File "C:\vnpy\vnpy\app\portfolio_strategy\engine.py", line 325, in call_strategy_func
func(params)
File "C:\vnpy\vnpy\app\portfolio_strategy\strategies\demo_strategy.py", line 211, in on_tick
self.on_bars(bars)
File "C:\vnpy\vnpy\app\portfolio_strategy\strategies\demo_strategy.py", line 222, in on_bars
bg.update_bar(bar)
File "C:\vnpy\vnpy\trader\utility.py", line 264, in update_bar
self.update_bar_minute_window(bar)
File "C:\vnpy\vnpy\trader\utility.py", line 272, in update_bar_minute_window
dt = bar.datetime.replace(second=0, microsecond=0)
AttributeError: 'NoneType' object has no attribute 'datetime'

官方DEMO中的逻辑需要你有完整无缺失的数据才行,上述情况出现大概率是你加载历史数据的不连续有缺失,所以需要通过判断bar是否为None进行筛选

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

沪公网安备 31011502017034号

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