VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 20
声望: 0

之前有同学指导调用self.bg.bar数据进行计算,但是实测打印self.bg.bar数据的时候遇到NoneType错误。

def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
    super().__init__(cta_engine, strategy_name, vt_symbol, setting)
    if self.log:
        self.log_fp = open(f"{strategy_name}.log", "w+")
    self.strategy_name = strategy_name

    self.bg5 = BarGenerator(self.on_bar, 5, self.on_5min_bar)
    self.am5 = ArrayManager()

    self.bg10 = BarGenerator(self.on_bar, 10, self.on_10min_bar)
    self.am10 = ArrayManager()

def on_bar(self, bar: BarData):
    """
    Callback of new bar data update.
    """
    self.bg5.update_bar(bar)
    self.bg10.update_bar(bar)

def on_5min_bar(self, bar: BarData):
    """"""
    self.cancel_all()
    am5 = self.am5
    am10 = self.am10
    am15 = self.am15
    am30 = self.am30
    am60 = self.am60
    am5.update_bar(bar)
    self.write_log(self.bg10.bar.open_price)
    am10.update_bar(self.bg10.bar)

异常信息如下:
2024-09-07 10:13:04.799309 开始加载历史数据
2024-09-07 10:13:04.800308 加载进度:# [0%]
2024-09-07 10:13:05.151384 加载进度:# [9%]
2024-09-07 10:13:05.303388 加载进度:## [19%]
2024-09-07 10:13:05.527420 加载进度:### [28%]
2024-09-07 10:13:05.774416 加载进度:#### [38%]
2024-09-07 10:13:06.027273 加载进度:##### [47%]
2024-09-07 10:13:06.297264 加载进度:###### [56%]
2024-09-07 10:13:06.566259 加载进度:####### [66%]
2024-09-07 10:13:06.896454 加载进度:######## [75%]
2024-09-07 10:13:07.095457 加载进度:######### [84%]
2024-09-07 10:13:07.320836 加载进度:########## [94%]
2024-09-07 10:13:07.572031 历史数据加载完成,数据量:49780
Traceback (most recent call last):
File "C:\veighna_studio\Lib\site-packages\vnpy_ctastrategy\strategies\backtest.py", line 47, in <module>
engine.run_backtesting()
File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\backtesting.py", line 219, in run_backtesting
self.strategy.on_init()
File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\strategies\ag2410_kdj_multi_timeframe_v1.py", line 534, in on_init
self.load_bar(10)
File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\template.py", line 315, in load_bar
callback(bar)
File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\strategies\ag2410_kdj_multi_timeframe_v1.py", line 558, in on_bar
self.bg5.update_bar(bar)
File "C:\veighna_studio\lib\site-packages\vnpy\trader\utility.py", line 274, in update_bar
self.update_bar_minute_window(bar)
File "C:\veighna_studio\lib\site-packages\vnpy\trader\utility.py", line 313, in update_bar_minute_window
self.on_window_bar(self.window_bar)
File "C:\veighna_studio\lib\site-packages\vnpy_ctastrategy\strategies\ag2410_kdj_multi_timeframe_v1.py", line 574, in on_5min_bar
self.write_log(self.bg10.bar.open_price)
AttributeError: 'NoneType' object has no attribute 'open_price'

Member
avatar
加入于:
帖子: 5337
声望: 323

bg.bar默认就是None
实盘收到tick会开始合成更新bg.bar
不建议策略里获取bg.bar,bg.bar是正在合成中的bar(未完成)

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

沪公网安备 31011502017034号

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