参考通达信对DMA的定义:
DMA 动态移动平均
求动态移动平均。
用法:DMA(A) 求收盘价的动态移动平均,A为平滑因子,小于1。
算法:若Y=DMA(A),则 Y=Aclose+(1-A)Y',其中Y'表示上一周期Y值,A必须小于1。
例如:DMA(VOL/CAPITAL) 表示求以换手率作平滑因子的收盘价平均价。
由于TA-LIB上没有没有定义这个公式,我自己写了一个
def dma(self, n=0.01, array=False):
"""动态移动平均"""
result = self.close
result = n*self.close +(1-n)*result
if array:
return result
return result[-1]
这个结果是错的,Y'上一周期Y值的值不正确,那位前辈能帮我实现一下,谢谢