我使用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]
绿线显然以相反的顺序计算(从n个样本到0),红色的按预期顺序计算。要实现红线,我必须反转输入系列和输出系列。
此测试的代码可在以下网址获得:python code
有人观察到同样的行为吗?
答案 0 :(得分:0)
我发现我解决问题的方法有问题。简单的答案是MA指标将结果数组上的第一个有效值放在零位置,因此结果序列从零开始,并且比输入序列的样本少N(其中N是本例中的周期值)。恢复计算的想法是完全错误的。
以下是证据:
在开头添加30个零并删除最后一个零,指针很好地适合输入系列。