使用EXCEL计算并绘制ATR指标

本文介绍了ATR(平均真实波动范围)的含义和原理,它用于衡量市场波动强度。在EXCEL中,通过手工计算或金融函数库插件可实现ATR指标的计算,具体步骤包括导入交易数据,计算True Range,再求14日移动平均True Range,最后绘制图表。提供的EXCEL模板可在百度网盘下载。

在本文的底部,各位读者可以获取对应的EXCEL模板。**

一、ATR(平均真实波动范围Average True Range)的含义和原理

ATR指标主要是用来衡量市场波动的强烈度,即为了显示市场变化率的指标。

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

二、EXCEL中实现

EXCEL中,可以直接用金融函数库插件快速的计算出ATR指标。但为了便于理解,手工计算其实也很方便。

下面演示一下手工计算的过程。

  • 步骤一:从通达信导入平安银行(000001.SZ)的历史交易数据

    交易数据需要最高价、最低价和收盘价。

  • 步骤二:计算RSI指标

    1:E列True Range:第一日的True Range=最高价-最低价;

    之后每日的True Range为以下三者最大:

    • 当日最高价-当日收盘价
    • 当日最高价-最日收盘价
    • 昨日收盘价-当日最低价

    2:F列计算14日的移动平均True Range:首日的ATR=True Range的14日平均值

    之后每日的ATR采用以下公式计算:

EXCEL量化

股票的 ATR(Average True Range,平均真实波动范围)指标是技术分析中用于衡量市场波动性的常用工具。以下是基于 MATLAB 的 ATR 指标计算公式及其实现代码: ```matlab function atr = calculateATR(highPrices, lowPrices, closePrices, period) % 输入参数: % highPrices - 最高价数组 % lowPrices - 最低价数组 % closePrices - 收盘价数组 % period - 计算ATR的周期数(例如14) % 检查输入数据长度是否足够 if length(highPrices) < period || length(lowPrices) < period || length(closePrices) < period error('输入数据长度必须大于等于周期数'); end % 初始化True Range数组 tr = zeros(1, length(highPrices)); % 计算True Range (TR) for i = 2:length(highPrices) tr(i) = max([highPrices(i) - lowPrices(i), ... abs(highPrices(i) - closePrices(i-1)), ... abs(lowPrices(i) - closePrices(i-1))]); end % 使用Wilders平滑方法计算ATR atr = zeros(1, length(highPrices)); atr(period) = mean(tr(1:period)); % 第一个ATR值为前N个TR的平均值 for i = period+1:length(highPrices) atr(i) = ((atr(i-1) * (period - 1)) + tr(i)) / period; end % 返最后的ATRatr = atr(end); % 输出结果 disp(['计算得到的ATR值为: ', num2str(atr)]); end ``` ### 解释: 1. **输入参数**: - `highPrices`:每日最高价数组。 - `lowPrices`:每日最低价数组。 - `closePrices`:每日收盘价数组。 - `period`:计算 ATR 的周期数(通常为 14 天)。 2. **True Range (TR)**: - 对于每一天,TR 是以下三个值中的最大值: - 当日最高价减去当日最低价。 - 当日最高价减去前一日收盘价的绝对值。 - 当日最低价减去前一日收盘价的绝对值。 3. **ATR 计算**: - 使用 Wilders 平滑方法计算 ATR: - 第一个 ATR 值为前 N 个 TR 的简单平均值。 - 后续 ATR 值通过公式计算:`ATR[i] = ((ATR[i-1] * (N-1)) + TR[i]) / N`。 4. **错误检查**: - 如果输入数据长度小于指定周期数,则抛出错误,确保输入数据足够计算。 5. **输出**: - 返最后一天的 ATR 值,通过 `disp` 显示。 ### 示例调用: ```matlab % 示例数据(假设为过去14天的价格数据) highPrices = [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115]; lowPrices = [100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113]; closePrices = [101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114]; % 调用函数 atrValue = calculateATR(highPrices, lowPrices, closePrices, 14); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值