Python 错误消息:函数不可调用,不确定出了什么问题?

Python 错误消息:函数不可调用,不确定出了什么问题?,python,algorithm,ccxt,bitmex,Python,Algorithm,Ccxt,Bitmex,尝试调用smaShort函数时 def smaShort(self): while True: ohlcv_candles = bitmex2.bitmex.fetch_ohlcv(self, symbol= 'XBTUSD', timeframe= '5m') mas = [] mas = ohlcv_candles.rolling(window=5).mean() return mas#[-1] 我得到的错误是不能调用的,有人

尝试调用smaShort函数时

def smaShort(self):
    while True:
        ohlcv_candles = bitmex2.bitmex.fetch_ohlcv(self, symbol= 'XBTUSD', timeframe= '5m')
        mas = []
        mas = ohlcv_candles.rolling(window=5).mean()
    return mas#[-1]
我得到的错误是不能调用的,有人知道我做错了什么吗

logger.info("sma short value:" (self.smaShort()))
  • Bitmex没有
    XBTUSD
    符号,它是市场id而不是符号,如手册中所述:。正确的符号是BTC/USD
  • 另外,根据CCXT手册,对
    bitmex.fetch\u ohlcv
    的调用将返回以下结构:
  • ohlcv结构是一个带有ohlcv烛光值的普通数组/数组列表,而不是Pandas数据帧,因此不能调用
    .rolling(window=5).mean()
    在列表上,必须首先将其转换为数据帧,如上图所示(或Pandas支持的任何其他方式)

  • 您发布的代码无法运行,我们无法验证错误。我使用ccxt bitmex库获取fetch_ohlcv函数,我希望这有助于澄清一个位。您也没有中断,您有一个无限的loop@VarunReddy您发布的代码不可运行,我们无法验证错误。您是否定义了同名的实例属性?
    import pandas as pd
    import ccxt
    
    exchange = ccxt.bitmex({
        'enableRateLimit': True,  # required by the Manual
    })
    
    ohlcv = exchange.fetch_ohlcv('BTC/USD', '1m')
    
    df = pd.DataFrame (ohlcv)
    df[4].rolling(window=5).mean()  # OHLCV, C (closing price) has index 4