Board logo

标题: ATR(Average true range)平均真实波动范围定义、原理、数学计算及MC中函数公式 [打印本页]

作者: 龙听    时间: 2021-7-28 14:36     标题: ATR(Average true range)平均真实波动范围定义、原理、数学计算及MC中函数公式

ATR又称 Average true range平均真实波动范围,简称ATR指标,是由J.Welles Wilder 发明的,ATR指标主要是用来衡量市场波动的强烈度,即为了显示市场变化率的指标。

    首先提出的,这一指标主要用来衡量价格的波动。因此,这一技术指标并不能直接反映价格走向及其趋势稳定性,而只是表明价格波动的程度。

    这一指标对于长期持续边幅移动的时段是非常典型的,这一情况通常发生在市场的顶部,或者是在价格巩固期间。根据这个指标来进行预测的原则可以表达为:该指标价值越高,趋势改变的可能性就越高;该指标的价值越低,趋势的移动性就越弱。

ATR平均真实波幅(ATR)的计算方法:

 1、当前交易日的最高价与最低价间的波幅(今日振幅);

    2、前一交易日收盘价与当个交易日最高价间的波幅(今日最高与昨收差价);

 3、前一交易日收盘价与当个交易日最低价间的波幅(今日最低与昨收差价);

   今日振幅、今日最高与昨收差价,今日最低与昨收差价中的最大值,为真实波幅,

 在有了真实波幅后,就可以利用一段时间的平均值计算ATR了。至于用多久计算,不同的使用者习惯不同,10天、20天乃至65天都有。

ATR指标的一般分析使用方法

     ATR指标并没有指示价格方向的信息,只有价格变化的强烈程度的信息,在早期,ATR指标多是用于期货市场上,但现在也用于股票、外汇等金融市场。

价格趋势的反转或开始

    极端的高ATR或低ATR值可以被看作价格趋势的反转或下一个趋势的开始。作为与布林通道类似的以价格波动性为基础的技术指标,真实波动幅度均值不能直接预测价格走向及其趋势稳定性,而只是表明交易活动的频繁性。较低的ATR(即较小的真实波幅)表示比较冷清的市场交易气氛,而高ATR(即较小的真实波幅)则表示比较旺盛的交易气氛。一段较长时间的低ATR很可能表明市场正在积蓄力量并逐渐开始下一个价格趋势(可能是之前趋势的延续,也可能是趋势的反转);而一个非常高的ATR通常是由于短时间内价格的大幅上涨或下跌造成的,通常此数值不可能长期维持在高水平。

止损和止赢的设置

    交易者也可以使用ATR来设置自己交易的止损和止赢价位。由于ATR计算的是在某一个时间段内货币对的波动真实范围,因此可以把该范围作为是计算止损和止赢的标准。
作者: 龙听    时间: 2021-7-28 14:59

函数:TR
本帖隐藏的内容需要回复才可以浏览

函数:ATR
本帖隐藏的内容需要回复才可以浏览

我发现在MC官网的函数体系中TR与ATR与准确的定义有出入,同时TR在MC中是叫truerange,atr叫averagetruerange。所以可以直接在MC的函数库上加上tr和atr这两个简单的函数,到时直接调用就行了。
作者: 龙听    时间: 2021-7-28 15:01

实例:
做一个atr指标,周期默认是14周期,也就是2周了,实际上准备应该是10周期,因为一周只有5个交易日,先不管这个了,就按14来算。

在指标编辑器中敲入下面的代码:

指标名称:atr

公式程式码:

  1. plot1(atr(14),"atr",red);
  2. plot2(tr,"tr",green);
复制代码



解析:

这里在副图里面做两个指标,一个是 atr,选取的是14周期,一个是输出每天的 tr值。


效果棒棒的。

图片附件: 微信截图_20210728150135.png (2021-7-28 15:03, 50.87 KB) / 下载次数 28
http://www.qhlt.cn/attachment.php?aid=28488&k=b1ee8cf24b212058d03095f8bd336d54&t=1715431904&sid=N0MH2c


作者: 龙听    时间: 2022-4-27 13:55

附:
MC官网的tr函数程式码:

构筑两个函数:

函数:TrueHigh
  1. if Close[1] > High then TrueHigh = Close[1] else TrueHigh = High ;
复制代码
函数:TrueLow
  1. if Close[1] < Low then TrueLow = Close[1]  else TrueLow = Low ;
复制代码
函数:TrueRange
  1. TrueRange = TrueHigh - TrueLow ;
复制代码
官网AvgTrueRange,即ATR函数:
  1. inputs: Len( numericsimple ) ;
  2. AvgTrueRange = Average( TrueRange, Len ) ;
复制代码
在指标和信号中调用时要输入一个参数,即想用多少天的tr平均,即 atr 本就是多少天tr平均的意思,一般平时调用时的范例如avgtruerange(5),即为5周期 atr值,avgtruerange(10),即为10周期 atr值;

平时大家喜欢自己直接造轮子,就用我上面楼层的tr,atr等调用,懒的或喜欢用官网函数的就直接引用。
作者: 龙听    时间: 2022-4-27 14:09

以上面螺纹指数日线级别为例,5周期的ATR值,如下:

10周期的ATR如下:

15周期ATR如下:

以我最喜欢用的30周期ATR为例,大小如下:


结论:

我们看到在日线级别上面,螺纹的atr值小的也要100多,大的要240接近300元,这就是对于日线级别的交易员来说基本的设置的止损幅度了。这反映给我们的另一层意思就是你若是做日线交易的螺纹,止损小于100点的话,正常的调整与洗盘都会把你洗出来。

当然你可以通过缩小K线的周期,比方说用小时线或15分钟一刻钟图来交易,这样 atr的平均值会小一些,但是过滤杂音的能力也会下降些。

以15分钟线图30周期的atr为例,他的波动范围如下:


给我们什么意义呢?即正常在15分钟线图上面螺纹正常的波动 都要在22-35个点之间,所以进场的止损也要至少一个 atr才行,要不的话正常的波动 都会把持仓洗出来。
作者: 下次了    时间: 2022-4-27 20:31

谢谢
作者: 大鸟怪    时间: 2023-6-27 15:29

谢谢老师的函数
作者: 小天使    时间: 2023-6-28 06:54

Thank for sharing
作者: 龙听小虎    时间: 2023-11-5 21:45






欢迎光临 龙听期货论坛 (http://www.qhlt.cn/) Powered by Discuz! 7.2