0

我正在使用 ta-lib 根据市场价格构建指标系列。我做了几个相同概念的实现,但我在任何实现中都发现了同样的问题。为了获得正确的值系列,我必须恢复输入系列并最终恢复结果系列。通过方便的包装器调用 ta-lib 库的 python 代码是:

rsi1 = np.asarray(run_example(  function_name, 
                                arguments, 
                                30, 
                                weeklyNoFlatOpen[0],
                                weeklyNoFlatHigh[0],
                                weeklyNoFlatLow[0],
                                weeklyNoFlatClose[0],
                                weeklyNoFlatVolume[0][::-1]))

rsi2 = np.asarray(run_example(  function_name, 
                                arguments, 
                                30, 
                                weeklyNoFlatOpen[0][::-1],
                                weeklyNoFlatHigh[0][::-1],
                                weeklyNoFlatLow[0][::-1],
                                weeklyNoFlatClose[0][::-1],
                                weeklyNoFlatVolume[0][::-1]))[::-1]

可以在此处观察这两个系列的图表(指标实际上是 SMA): 在此处输入图像描述

绿线清楚地以相反的顺序(从 n 个样本到 0)计算,而红色的线以预期的顺序计算。要实现红线,我必须反转输入系列和输出系列。

此测试的代码可在以下位置获得:python 代码

有人观察到同样的行为吗?

4

1 回答 1

0

我发现我解决问题的方法有什么问题。简单的答案是 MA 指标将第一个有效值放在结果数组的零位置,因此结果系列从零开始,并且比输入系列少 N 个样本(在这种情况下,N 是周期值)。还原的计算思想是完全错误的。

这是证明:

在此处输入图像描述

在开头添加 30 个零并删除最后一个零,该指标很好地适合输入系列。

在此处输入图像描述

于 2017-08-25T16:29:26.553 回答