VeighNa量化社区
你的开源社区量化交易平台
Member
加入于:
帖子: 21
声望: 0
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
    """"""
    super().__init__(cta_engine, strategy_name, vt_symbol, setting)

    self.bg = BarGenerator(self.on_bar)
    self.am = ArrayManager()
    self.tick: TickData = None    **_####这里加了这句_**


...

def on_bar(self, bar: BarData):

....

self.sell(self.tick.ask_price_1)   **_###这里用了tick数据。_**

运行时报错:nonetype object has no attribute

改了很多遍都找不到问题在哪里。我Python太菜了,恳请大神帮个忙。

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

没有在on_tick下缓存self.tick吧

Member
加入于:
帖子: 21
声望: 0

xiaohe wrote:

没有在on_tick下缓存self.tick吧
大神感谢回复,能不能说的具体一点,不太明白。多谢多谢!现在on_tick()

def on_tick(self, tick:TickData):
    """
    Callback of new tick data update.
    """

    self.bg.update_tick(tick)
Member
avatar
加入于:
帖子: 1475
声望: 105

on_tick函数下,加一行

self.tick = tick

这样缓存后,就能在其他回调函数下通过self.tick访问最近收到的一条tick数据了

Member
加入于:
帖子: 21
声望: 0

MTF wrote:

on_tick函数下,加一行

self.tick = tick

这样缓存后,就能在其他回调函数下通过self.tick访问最近收到的一条tick数据了

太感谢您的解答了!但是不知道为什么还是报错AttributeError: 'NoneType' object has no attribute 'ask_price_1'

Member
加入于:
帖子: 21
声望: 0

刚才试了一下,可以正常调取数据。虽然初始化的时候还是又这个报错,但是不影响后面运行。太感谢了!!!

MTF wrote:

on_tick函数下,加一行

self.tick = tick

这样缓存后,就能在其他回调函数下通过self.tick访问最近收到的一条tick数据了

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

沪公网安备 31011502017034号

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