ATR指标:解密市场波动秘密,把握交易机会

“学会控制交易风险,远比单次盈利要重要得多。如果你想在市场中长期获得成功,首先必须要学会不亏钱”。这是金融投资市场中广为流传的名言,足以说明期货、外汇、黄金等投资中,控制风险至关重要。均幅指标(ATR)就像是一个市场风险管家。

先送上一份外汇MT4的ATR思路源码(请移步到微信公众号:智能云策略),有需要的朋友自己再修改指标参数、回测。期货、股票的朋友直接跳过这段,一起来探讨ATR指标的公式、优缺点以及使用方法。

#property indicator_buffers 1

extern int ATRPeriod = 14;

double ATRBuffer[];

int prev_calculated;

int my_init()

{

    SetIndexBuffer(0, ATRBuffer, INDICATOR_DATA);

    SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2);

    IndicatorDigits(Digits);

    SetIndexLabel(0, “ATR(” + IntegerToString(ATRPeriod) + “)”);

    return(INIT_SUCCEEDED);

}

int start()

{

    int i, limit;

    double prev_high, prev_low, prev_close;

    double true_range, range_sum = 0.0;

    if (prev_calculated == 0)

    {

        limit = Bars – ATRPeriod – 1;

        for (i = 0; i <= limit; i++)

        {

            prev_high = High[i + 1];

            prev_low = Low[i + 1];

            prev_close = Close[i + 1];

            true_range = MathMax(prev_high – prev_low, MathMax(MathAbs(prev_high – prev_close), MathAbs(prev_low – prev_close)));

            range_sum += true_range;

        }

        ATRBuffer[limit] = range_sum / ATRPeriod;

        for (i = limit + 1; i < Bars; i++)

        {

            prev_high = High[i – 1];

            prev_low = Low[i – 1];

            prev_close = Close[i – 1];

            true_range = MathMax(prev_high – prev_low, MathMax(MathAbs(prev_high – prev_close), MathAbs(prev_low – prev_close)));

            range_sum = range_sum – ATRBuffer[i – ATRPeriod – 1] + true_range;

            ATRBuffer[i] = range_sum / ATRPeriod;

        }

    }

    else

    {

        limit = Bars – prev_calculated – 1;

        for (i = 0; i <= limit; i++)

        {

            prev_high = High[i + prev_calculated + 1];

            prev_low = Low[i + prev_calculated + 1];

            prev_close = Close[i + prev_calculated + 1];

            true_range = MathMax(prev_high – prev_low, MathMax(MathAbs(prev_high – prev_close), MathAbs(prev_low – prev_close)));

            range_sum += true_range;

        }

        for (i = limit + 1; i < Bars; i++)

        {

            prev_high = High[i – 1];

            prev_low = Low[i – 1];

            prev_close = Close[i – 1];

            true_range = MathMax(prev_high – prev_low, MathMax(MathAbs(prev_high – prev_close), MathAbs(prev_low – prev_close)));

            range_sum = range_sum – ATRBuffer[i – ATRPeriod – 1] + true_range;

            ATRBuffer[i] = range_sum / ATRPeriod;

        }

    }

    prev_calculated = Bars – 1;

    return(0);

}

均幅指标(ATR)

均幅指标(ATR)由威尔德(Welles Wilder)在《技术交易系统中的新概念》一书中首次提出,主要用于衡量市场波动的大小,把握市场情况,制定更好的投资策略,同时也有利于风险的控制和管理。

图为MT4软件—黄金15分钟
主图为艾云策略进阶版,副图为均幅指标(ATR)

均幅指标(ATR)计算公式

ATR指标的计算公式非常简单:
ATR = [(前一日ATR * (N-1) + 当日TR) / N]
TR是由以下三个值里面的最大值来求出来的:
最高价-最低价;
最高价-前一日收盘价;
前一日收盘价-最低价;
N一般取值14。

均幅指标(ATR)优缺点

针无两头尖,蔗无两头甜,均幅指标(ATR)也不例外。
优点:
能够直接显示市场的波动情况,有利于投资者的风险管理,同时也可以帮助我们制定止盈止损策略以最大化投资收益。
缺点:
无法准确预测未来的价格,只能根据过去的走势给出波动的范围,需要结合其他指标才能更好地发挥。

均幅指标(ATR)使用方法

如果说你愿意掌控风险,最大化收益,那么ATR也许可以来帮帮你。
1、要知道止盈止损设在哪里还不容易。
做多时,止盈价格在当前价格上方的ATR乘以某一倍数的范围内;止损价格在当前价格下方的ATR乘以某一倍数的范围内。反之亦然,空单也这样轻松搞定啦!
2、一眼看出市场的波动性以及趋势,ATR越高,波动也越大,趋势也更加明显,越低,趋势则可能更弱。
3、根据ATR的数值,确立合理的交易量,让你在不同市场条件下,保持风险控制和资金的管理。

ATR就像是市场风向标,有效、精确地使用它的指引,投资者可以更加从容地面对市场啦!但需要注意的是,ATR指标并非万能,需要与其他交易策略或技术分析软件结合使用,以尽可能减少不可预测的风险。

发表评论

邮箱地址不会被公开。 必填项已用*标注