问题描述
我已经设法编写了一个函数,该函数扫描 Binance 上的加密市场,并在 15 分钟的时间内为我提供那些具有 StochRSI 交叉的市场作为输出。 但是我遇到了一个问题,因为在正确打印了很多市场后,程序停止给我这个错误:
Traceback (most recent call last):
File "/Users/Marti/Downloads/CryptoBots/RSImachine/selection.py",line 506,in <module>
main()
File "/Users/Marti/Downloads/CryptoBots/RSImachine/selection.py",line 488,in main
selectedMarkets = selectMarkets(client,selectedCoins,numpy,talib,settings)
File "/Users/Marti/Downloads/CryptoBots/RSImachine/selection.py",line 194,in selectMarkets
K = numpy.around(talib.MA(numpy.array(stochRSI[0]),3),decimals=4,out=None)
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/sitepackages/talib/__init__.py",line 27,in wrapper
return func(*args,**kwargs)
File "talib/_func.pxi",line 3413,in talib._ta_lib.MA
File "talib/_func.pxi",line 68,in talib._ta_lib.check_begidx1
Exception: inputs are all NaN
def selectMarkets(client,coins,settings):
selectedMarkets = []
# Get Last Price for all markets
allTickers = client.get_all_tickers()
coinPriceTuples = []
# Obtain pairname
for c in coins:
sym = '%sBTC' % c
for t in allTickers:
if t['symbol'] == sym:
coinPriceTuples.append((sym,float(t['price'])))
## load settings
ccp = settings['marketSelection']['consecutiveCandlesPeriod']
for t in coinPriceTuples:
klines = client.get_historical_klines(t[0],'15m',"%s days ago" % ccp)
# StochRSI CALculaTION #
allClose = [float(k[4]) for k in klines]
closePrice = numpy.array(allClose)
rsi = talib.RSI(closePrice,timeperiod=14)
rsi = pd.DataFrame(rsi)
LLV = rsi.rolling(14).min()
HHV = rsi.rolling(14).max()
stochRSI = (rsi - LLV) / (HHV - LLV) * 100
K = numpy.around(talib.MA(numpy.array(stochRSI[0]),out=None)
D = numpy.around(talib.MA(numpy.array(K),out=None)
if K[-2] <= D[-2] and K[-1] > D[-1]:
cross = True
print(t[0])
else:
cross = False
conditions = [cross]
if all(conditions):
selectedMarkets.append((t[0],K[-1],D[-1]))
return selectedMarkets
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)