python实现ATR指标模型 量化策略 python 策略开发

指标说明
ATR又称 Average true range平均真实波动范围,简称ATR指标,是由J.Welles Wilder 发明的,ATR指标主要是用来衡量市场波动的强烈度,即为了显示市场变化率的指标。 首先提出的,这一指标主要用来衡量价格的波动。因此,这一技术指标并不能直接反映价格走向及其趋势稳定性,而只是表明价格波动的程度。

计算公式
python实现ATR指标模型 量化策略 python 策略开发
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
上一篇:插值查找法


下一篇:系统开发视角下的诊断 ———— DTC(Low Byte)