指标说明
ATR又称 Average true range平均真实波动范围,简称ATR指标,是由J.Welles Wilder 发明的,ATR指标主要是用来衡量市场波动的强烈度,即为了显示市场变化率的指标。 首先提出的,这一指标主要用来衡量价格的波动。因此,这一技术指标并不能直接反映价格走向及其趋势稳定性,而只是表明价格波动的程度。
计算公式
t——当日;
n——时间长度;
Ci——第i日的收盘价;
Hi——第i日的最高价;
Li——第i日的最低价。
计算公式:
均幅指标
均幅指标
其中:
TRi = max(Hi,Ci-1)-min(Li,Ci-1)
注:一般取n=14
,m=6。
''' 作者:Leo 微信:470770753 名称:ATR指标 ''' class ATR(): def __init__(self,span): """ :param span:int,ATP周期数. TR : MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR : MA(TR,N); """ self._span=span self._data_list=[] self._TR_list=[] def cal(self,HIGH,LOW,CLOSE): """ :param HIGH: 最高价 :param LOW: 最低价 :param CLOSE: 收盘价 :return: ATR结果 """ self._data_list.append([HIGH,LOW,CLOSE]) atr_result=0 if len(self._data_list)>1: self._TR_list.append(max(max(HIGH-LOW,abs(self._data_list[-2][2]-HIGH)),abs(self._data_list[-2][2]-LOW))) if len(self._TR_list)<self._span: atr_result=np.mean(self._TR_list) else: atr_result = np.mean(self._TR_list[-self._span:]) return atr_result