点上方蓝字关注,开启量化学习之旅~
瑞典旅游攻略
一次认识一个市场技术指标
每次只需花费三到五分钟左右即可了解金融衍生品市场中一个常用的技术指标,包括这个技术指标的作用、计算方法、实际应用以及代码实现,以便以后再次遇到这个指标不会再陌生。
指标介绍
(螺纹rb2001)
ATR(Average True Range)称为真实波幅指标,也称作均幅指标或者真实波动均值,是一种表示市场变化率的指标。是由威尔德(J Welles Wilder)于1978年在《New Concepts in Technical Trading Systems》中提出。ATR指标并不能直接反应价格的走势或者趋势,而只是反映了价格的波动程度。ATR的一般使用方式为:
ATR常用于表示趋势的开始或者反转,较低的ATR表示比较平稳、冷清的市场环境,而长时间的ATR则可能会是市场在积蓄力量并开始下一种趋势,这种趋势可能是当前趋势的继续或者趋势的反转;较高的ATR表示波动大、交易频繁的市场环境,而高ATR的意味着短时间的价格大幅变动,通常这种情况不会维持太长。
ATR也可以用来动态设置交易的止盈和止损价位,由于ATR表示一段时间的波动真实范围,所以可以用于动态设定止盈止损价位。
ATR还可以用来动态设置仓位,如海龟交易准则中就以交易标的的ATR来设置仓位,高ATR意味着高风险,则应设定较低的仓位。具体可以参考海龟交易策略中仓位的设置。
计算方式
在计算平均真实波幅之前需要需要先计算真实波幅 TR(True Range),真实波幅计算的方法是:
1、计算当前交易日的最高价High(T)和最低价Low(T)之间的价差。
2、计算前一交易日的收盘价Close(T-1)和当前交易日最高价High(T)之间的价差绝对值。
3、计算前一交易日的收盘价Close(T-1)和当前交易日最低价Low(T)之间的价差绝对值。
然后计算今日最高价与最低价的价差振幅,昨日收盘价与今日最高价的价差振幅,昨日收盘价与今日最低价价差振幅三者之间的最大值。
公式表示为:
N日ATR实际上就是TR的N日移动平均值,即:
代码实现
python代码实现:
import numpy as np
import pandas as pd
def cal_ATR(high, low, close, period):
TR_list = []
for i in range(period):
temp = max(high[i+1] - low[i+1], np.abs(close[i] - high[i+1]))
TR = max(temp, np.abs(close[i] - low[i+1]))
TR_list.append(TR)
return np.mean(TR_list)
if __name__ == '__main__':
df = pd.read_csv('./000001.csv')
ATR = cal_ATR(df['High'], df['Low'], df['Close'], 20)
print(ATR)
另外,关于基于ATR指标测策略可以参考前面关于vn.py中的源码解析:
「 往期文章 」
了解更多人工智能
与量化金融知识
<-请扫码关注
让我知道你在看