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