Сообщение об ошибке: функция не вызывается, не знаете, что не так? - PullRequest
0 голосов
/ 11 ноября 2018
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 Ответ

0 голосов
/ 11 ноября 2018
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, это рынок id , а не символ , как объяснено в Руководстве: https://github.com/ccxt/ccxt/wiki/Manual#symbols-and-market-ids. Правильный символ BTC/USD.
  2. Также, согласно Руководству CCXT, вызов bitmex.fetch_ohlcv вернет следующую структуру: https://github.com/ccxt/ccxt/wiki/Manual#ohlcv-structure.
  3. Структура ohlcv представляет собой простой массив / список массивов со значениями свечей OHLCV, а не Pandas DataFrame, поэтому вы не можете вызвать .rolling(window=5).mean() в списке, сначала нужно преобразовать его в DataFrame, как показано выше (или любым другим способом, поддерживаемым Пандами).
...