龙听期货论坛's Archiver

C
+
+


 微信: QQ:

龙听 发表于 2021-7-28 14:36

ATR(Average true range)平均真实波动范围定义、原理、数学计算及MC中函数公式

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

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

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

[b] ATR平均真实波幅(ATR)的计算方法:[/b]

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

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

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

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

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

[b]ATR指标的一般分析使用方法[/b]

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

[b]价格趋势的反转或开始 [/b]

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

[b]止损和止赢的设置 [/b]

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

龙听 发表于 2021-7-28 14:59

函数:TR[size=19.2px]**** Hidden Message *****[/size]
函数:ATR
[size=19.2px]**** Hidden Message *****[/size]
我发现在MC官网的函数体系中TR与ATR与准确的定义有出入,同时TR在MC中是叫truerange,atr叫averagetruerange。所以可以直接在MC的函数库上加上tr和atr这两个简单的函数,到时直接调用就行了。

龙听 发表于 2021-7-28 15:01

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

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

指标名称:atr

公式程式码:

[code]plot1(atr(14),"atr",red);
plot2(tr,"tr",green);[/code]


解析:

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


效果棒棒的。

龙听 发表于 2022-4-27 13:55

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

构筑两个函数:

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

平时大家喜欢自己直接造轮子,就用我上面楼层的tr,atr等调用,懒的或喜欢用官网函数的就直接引用。

龙听 发表于 2022-4-27 14:09

以上面螺纹指数日线级别为例,5周期的ATR值,如下:
[img]http://p.algo2.net/2022/0427/08fe3bf73bc74.png[/img]
10周期的ATR如下:
[img]http://p.algo2.net/2022/0427/6a1a38e6dae98.png[/img]
15周期ATR如下:
[img]http://p.algo2.net/2022/0427/e2e0c0b9bb4be.png[/img]
以我最喜欢用的30周期ATR为例,大小如下:
[img]http://p.algo2.net/2022/0427/c6b73388b7b72.png[/img]

结论:

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

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

以15分钟线图30周期的atr为例,他的波动范围如下:
[img]http://p.algo2.net/2022/0427/b346ee6c94d0d.png[/img]

给我们什么意义呢?即正常在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

{:48:}

页: [1]