Сообщение об ошибке: функция не вызывается, не знаете, что не так?

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

logger.info("sma short value:" (self.smaShort()))

Я получаю сообщение об ошибке smaShort не вызывается, кто-нибудь знает, что я делаю не так?

1 ответ

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
  1. Bitmex не имеет XBTUSD Символ, это идентификатор рынка, а не символ, как описано в Руководстве: https://github.com/ccxt/ccxt/wiki/Manual. Правильный символ BTC/USD,
  2. Кроме того, согласно Руководству CCXT, призыв к bitmex.fetch_ohlcv вернет следующую структуру: https://github.com/ccxt/ccxt/wiki/Manual.
  3. Структура ohlcv представляет собой простой массив / список массивов со значениями свечей OHLCV, а не Pandas DataFrame, поэтому вы не можете вызвать .rolling(window=5).mean() в списке вы должны сначала преобразовать его в DataFrame, как показано выше (или любым другим способом, поддерживаемым Pandas).
Другие вопросы по тегам