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是不可调用的,有人知道我做错了什么吗?
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
符号,它是市场id而不是符号,如手册中所述:https://github.com/ccxt/ccxt/wiki/Manual#symbols-和市场ID。正确的符号是BTC/USD
- 此外,根据CCXT手册,对
bitmex.fetch_ohlcv
的调用将返回以下结构:https://github.com/ccxt/ccxt/wiki/Manual#ohlcv-结构 - ohlcv结构是一个带有ohlcv蜡烛值的普通数组/数组列表,而不是Pandas DataFrame,因此您不能在列表上调用
.rolling(window=5).mean()
,必须首先将其转换为DataFrame,如上图所示(或Pandas支持的任何其他方式(