首页 > 解决方案 > 为什么塔利布在这里生产“南”?

问题描述

我尝试用 来计算 RSI talib.RSI()。这是获得关闭的代码:

    closes = [float(kline[4]) for kline in klines]
    print(closes)

print(closes)返回:

    [49884.02, 49864.83, 49860.87, 49833.83, 49831.34, 49866.62, 49849.54, 49877.04, 49890.55, 
     49835.2, 49866.9, 49860.66, 49804.48, 49750.9]

numpy.array从我的关闭中制作一个:

    np_closes = numpy.array(closes)
    pprint(np_closes)

pprint(np_closes)返回:

   array([49884.02, 49864.83, 49860.87, 49833.83, 49831.34, 49866.62,
   49849.54, 49877.04, 49890.55, 49835.2 , 49866.9 , 49860.66,
   49804.48, 49750.9 ])

然后我尝试计算 RSI:

   rsi_list = talib.RSI(np_closes, timeperiod=14)
   pprint(rsi_list)

返回:

   array([nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
   nan])

有任何想法吗?

标签: pythonnumpyta-lib

解决方案


解决了:

timeperiodinrsi_list = talib.RSI(np_closes, timeperiod=14)必须是len(np_closes)-1,因此:

 rsi_list = talib.RSI(np_closes, timeperiod=(len(np_closes) - 1)

RSI 可以通过以下方式轻松找到:

 rsi = list(rsi_list).pop()

推荐阅读