本文最后更新于 287 天前,其中的信息可能已经有所发展或是发生改变。
解释1
均幅指标(ATR)是取一定时间周期内的股价波动幅度的移动平均值,主要用于研判买卖时机。
均幅指标是显示市场变化率的指标,由威尔德(Welles Wilder)在《技术交易系统中的新概念》一书中首次提出,已成为众多指标经常引用的技术量。威尔德发现较高的ATR值常发生在市场底部,并伴随恐慌性抛盘。当其值较低时,则往往发生在合并以后的市场顶部。
解释2
真实波幅(ATR average true range)主要应用于了解股价的震荡幅度和节奏,在窄幅整理行情中用于寻找突破时机。通常情况下股价的波动幅度会保持在一定常态下,但是如果有主力资金进出时,股价波幅往往会加剧。另外,在股价横盘整理、波幅减少到极点时,也往往会产生变盘行情。真实波幅(ATR)正是基于这种原理而设计的指标。使用Talib中的ATR函数进行回测。
计算方法
- TR=∣最高价-最低价∣和∣最高价-昨收∣和∣昨收-最低价∣的最大值
- 真实波幅(ATR)=TR的N日简单移动平均
- 参数N设置为14日
使用方法:
- 如果当前价格比之前的价格高一个ATR的涨幅,买入股票。
- 如果之前的价格比当前价格高一个ATR的涨幅,卖出股票。
Python ta-lib 代码
# by https://xd.sh.cn
df = {}
# 因获得的数据为从最新到最旧排序,故需要将下列数组反转。
# 下方的三个变量均为数组,元素为价格的字符串形式。
kline_close_result.reverse()
kline_high_result.reverse()
kline_low_result.reverse()
# 存入d字典
df['atr'] = talib.ATR(np.array(kline_high_result),np.array(kline_low_result),np.array(kline_close_result), timeperiod=21)
Tradingview PINE 代码
函数ATR(真实波动幅度均值)返回真实范围的RMA。真实波动幅度是 max(high - low, abs(high - close[1]), abs(low - close[1]))
nATRPeriod = input(21, "Period")
xATR = atr(nATRPeriod)
// 画图,此时周期为14
plot(atr(14))
//下方的代码所获得的效果类似
pine_atr(length) =>
trueRange = na(high[1])? high-low : max(max(high - low, abs(high - close[1])), abs(low - close[1]))
//true range can be also calculated with tr(true)
rma(trueRange, length)
plot(pine_atr(14))