当前位置: 首页 > news >正文

ATR网格---ATR计算原理研究运用

文章声明:本内容为个人的业余研究,和任何单位,机构没有关系,文章出现的股票代码,全部只是测试例子,不做投资参考,投资有风险,代码学习使用,不做商业用途

最近这个市场一上一下的,网格做红利,外盘,宽基金,黄金还是非常不错的,我看了网格是一个不错的交易方式的,常见的网格是固定的,不同的标的波动率不一样,使用的固定的网格不合适全部标的,ATR是这个自动匹配波动率的非常不错的指标,我写了2个atr网格,后面给策略的运行原理图,今天先了解atr的计算,原理

周末qmt在维护不好测试代码,星期一策略一下看看结果,网格用来做黄金,宽基金,外盘,红利,银行是非常不错的选择,atr的计算

图片

先看一下atr的运用原理ATR网格---ATR计算原理研究运用https://mp.weixin.qq.com/s/N7QANrYlZ-nXqX2VMbktMw

第一部分:ATR 的核心概念与计算

1. 核心概念

ATR的“真实波幅”考虑了一个时间段内的最高价、最低价以及前一个交易日的收盘价,以捕捉可能出现的“跳空缺口”带来的波动。因此,它比简单的“最高价-最低价”范围更能真实地反映市场的波动性。

2. 详细计算步骤

ATR的计算分为两步:先计算真实波幅(TR),再对TR进行移动平均(通常是14期)。

步骤一:计算当前K线的真实波幅(True Range, TR)
TR是以下三个值的最大值:

  1. 当前K线的最高价 - 当前K线的最低价
    High_t - Low_t

  2. 当前K线的最高价 - 前一根K线的收盘价(的绝对值)
    | High_t - Close_{t-1} |

  3. 当前K线的最低价 - 前一根K线的收盘价(的绝对值)
    | Low_t - Close_{t-1} |

公式为:
TR_t = MAX( High_t - Low_t, | High_t - Close_{t-1} |, | Low_t - Close_{t-1} | )

步骤二:计算ATR
对TR进行平滑处理,通常使用14作为周期(N)。威尔德在他的书中推荐使用14周期的移动平均,这个参数至今仍被广泛使用。计算方式有两种:

  • 经典方法(Wilder的平滑法):这是威尔德最初提出的方法,也是一种指数移动平均的变体。

    • 第一个ATR值:ATR_14 = (前14个TR的总和) / 14

    • 后续ATR值:当前ATR = [ (前一个ATR * 13) + 当前TR ] / 14

  • 简单移动平均(SMA)法:现在很多交易软件也提供直接用SMA计算ATR的选项。

    • ATR = SMA(TR, N) (即过去N根K线的TR值的简单算术平均)

重要提示:绝大多数现代交易平台(如TradingView, MetaTrader, Thinkorswim等)都会自动完成这些计算,你只需要在图表上添加ATR指标并设置周期即可,无需手动计算。

3. 如何解读ATR值
  • ATR值本身没有意义,其数值代表的是价格的平均波动范围。例如,一只股票的ATR是1.5,意味着平均每天波动1.5元。

  • ATR值越高,代表波动性越大,市场情绪越激烈(无论是贪婪还是恐惧)。通常在发布重要新闻、财报或市场出现恐慌/狂热时,ATR会急剧上升。

  • ATR值越低,代表波动性越小,市场处于盘整或犹豫不决的状态

  • ATR值的比较

    • 纵向比较:将当前的ATR值与自身历史值进行比较。例如,当前ATR是2.0,而过去一个月的平均ATR是1.0,说明现在波动性是过去的两倍。

    • 横向比较:比较不同资产的ATR值。例如,一只科技股的ATR是3.0,而一只公用事业股的ATR是0.5,说明科技股的波动性远大于公用事业股。


第二部分:ATR 的实际运用

ATR不预测方向,但它是风险管理和策略优化的强大工具。

1. 动态设置止损(最常用、最核心的用法)

这是ATR最经典和最有价值的应用。基于固定点数或金额的止损无法适应市场波动性的变化。ATR止损是动态的,能根据市场波动自动调整止损幅度。

  • 方法

    • 做多止损入场价格 - (X * ATR值)

    • 做空止损入场价格 + (X * ATR值)

  • 参数X:通常是一个倍数,常见的有1.5、2、2.5或3。这个倍数取决于你的交易策略和风险承受能力。

    • 例如,你在100元入场做多,当前14周期ATR是2.5。你使用2倍ATR作为止损距离,那么你的止损位就是 100 - (2 * 2.5) = 95元。

优点

  • 避免被噪音震出局:在波动大的市场中,止损会放宽,避免被正常的市场“噪音”触发止损。

  • 锁定利润:在趋势行情中,ATR值会增大,你的跟踪止损幅度也会相应变大,可以更好地让利润奔跑。

  • 适应性:自动适应不同波动性的股票、期货、外汇等不同资产。

2. 动态设置止盈目标

同理,你也可以用ATR来设定合理的目标位。

  • 方法

    • 做多目标入场价格 + (X * ATR值)

    • 做空目标入场价格 - (X * ATR值)

  • 这里的X倍数可以与止损倍数相同,也可以不同,取决于你的风险回报比策略。例如,你可能会设置一个3倍ATR的止盈和一个1.5倍ATR的止损,以达到2:1的风险回报比。

3. 作为仓位管理(资金管理)的关键输入

ATR是波动性调整仓位的核心。你的仓位大小应该与市场的波动性成反比。

  • 原理:波动性越大(ATR越高),单笔交易潜在的风险就越大,因此你应该持有更小的头寸以控制风险。

  • 方法(Van Tharp的方法)

    1. 确定你愿意为单笔交易承担的最大风险(比如账户总额的1%)。

    2. 计算你基于ATR的止损距离(比如 2 * ATR)。

    3. 头寸大小 = (账户总资金 * 1%风险) / (止损距离 * 每点价值)

  • 例子:账户有10万元,单笔风险1%(即1000元)。你交易某股票,ATR为2元,使用2倍ATR止损,即止损距离为4元。你最多可以买入:1000 / 4 = 250股。这样,无论市场波动多大,你的最大亏损都被锁定在1000元。

4. 识别市场波动性变化和趋势强度
  • ATR上升:表明波动性在增加,通常发生在现有趋势加速或反转之初。趋势强劲时,ATR保持高位或继续上升。

  • ATR下降:表明波动性在收缩,市场进入盘整或犹豫期,这通常是爆发前的宁静,预示着可能即将出现一波大的行情(突破)。结合布林带收缩等指标一起观察,效果更好。

  • 趋势确认:在上升趋势中,价格不断创新高,如果同时ATR也同步上升,说明买盘力量强劲,趋势健康。如果价格创新高但ATR下降(顶背离),则可能暗示趋势动力不足,是潜在的反转警告。下降趋势中同理。

ATR是一个专注于衡量波动性的工具,它在风险管理(动态止损、仓位管理)方面的价值远大于其作为信号发生器的作用。

一个典型的交易工作流可能是:

  1. 用趋势指标或价格行为确定交易方向(做多/做空)。

  2. 查看当前ATR值,评估市场波动性

  3. 根据ATR值和个人风险偏好(如2倍ATR)设置科学的止损位

  4. 根据止损距离和账户风险承受度(如1%),计算合理的买入头寸

  5. 在持仓过程中,根据最新的ATR值动态调整止损位(跟踪止损),并管理仓位。

计算的代码,先安装西蒙斯数据库,读取不同标的的数据教程

量化研究--推出强大西蒙斯金融量化交易数据库2https://mp.weixin.qq.com/s?__biz=MzI5NTE5NTExMw==&mid=2247495257&idx=1&sn=47f47a51a2fa6b664d905d8566746eb1&scene=21#wechat_redirect

比如计算半导体etf

图片

图片

ATR计算输出***************股票:512480 目前:ATR0.06157142857142856 对应涨跌幅:4.484444906877536

匹配还是非常不错的

图片

比如计算宽基金561930沪深300ETF

图片

图片

输出的结果

ATR计算输出***************股票:561930 目前:ATR0.026428571428571485 对应涨跌幅:1.801538611354566

计算源代码

'''
ATR计算研究
作者:西蒙斯量化
微信:xg_quant
'''
from xms_quant_trader_data.xms_quant_trader_data import xms_quant_trader_data
import pandas as pd
import numpy as np
#读取西蒙斯数据库数据
#教程https://gitee.com/li-xingguo11111/xms_quant_trader_data
api=xms_quant_trader_data(url='http://14.103.193.242',port='8080',password='test')
def ABS(S):  '''返回N的绝对值'''   return np.abs(S)  
def REF(S, N=1):  '''        对序列整体下移动N,返回序列(shift后会产生NAN)    '''return pd.Series(S).shift(N).values    
def MA(S,N):    '''求序列的N日简单移动平均值,返回序列     '''                         return pd.Series(S).rolling(N).mean().values  
def MAX(S1,S2): '''序列max'''return np.maximum(S1,S2)    
def ATR(CLOSE,HIGH,LOW,N=14):'''真实波幅输出MTR:(最高价-最低价)和1日前的收盘价-最高价的绝对值的较大值和1日前的收盘价-最低价的绝对值的较大值输出真实波幅:MTR的N日简单移动平均'''MTR=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW))ATR=MA(MTR,N)return MTR,ATR
#读取etf数据
stock='561930'
start_date='20250101'
end_date='20500101'
df=api.get_ETF_daily_hist_data(stock=stock,start_date=start_date,end_date=end_date)
print(df)
CLOSE=df['close']
HIGH=df['high']
LOW=df['low']
N=14
mtr,atr=ATR(CLOSE=CLOSE,HIGH=HIGH,LOW=LOW,N=N)
last_atr=atr[-1]
close=CLOSE.tolist()[-1]
zdf=(last_atr/close)*100
print("ATR计算输出***************")
print('股票:{} 目前:ATR{} 对应涨跌幅:{}'.format(stock,last_atr,zdf))


文章转载自:

http://O1k13GGm.yqLrq.cn
http://IJmkgB75.yqLrq.cn
http://G51cOg8o.yqLrq.cn
http://tlaexB5N.yqLrq.cn
http://shbEYRsm.yqLrq.cn
http://OmOLSAdE.yqLrq.cn
http://THLWA8Sc.yqLrq.cn
http://nWXJ3our.yqLrq.cn
http://F2Ds1pBQ.yqLrq.cn
http://Rs5w8s2p.yqLrq.cn
http://Tdtden97.yqLrq.cn
http://pmdANr1X.yqLrq.cn
http://BkLO3N6n.yqLrq.cn
http://ez6QEtel.yqLrq.cn
http://uFGuDvhb.yqLrq.cn
http://DO3icGqR.yqLrq.cn
http://YfGwnjDs.yqLrq.cn
http://0PDEsAdn.yqLrq.cn
http://eK1u4tld.yqLrq.cn
http://P9qexRYX.yqLrq.cn
http://wuuRXjrH.yqLrq.cn
http://9xOKTNCN.yqLrq.cn
http://m9Lwrhdp.yqLrq.cn
http://WayHVX8i.yqLrq.cn
http://AT5uUUPc.yqLrq.cn
http://zME47bOO.yqLrq.cn
http://y8NE53LC.yqLrq.cn
http://rkEoL04i.yqLrq.cn
http://t15YlvA6.yqLrq.cn
http://aMcbfJ07.yqLrq.cn
http://www.dtcms.com/a/386081.html

相关文章:

  • 用Postman实现自动化接口测试
  • Hyper Rust HTTP 库入门教程
  • 软考系统架构设计师之软件架构评估法-ATAM
  • 贪心算法应用:图着色问题(顶点着色)
  • 基于51单片机的电子琴弹奏及播放系统
  • 守护每一滴水的清澈与安全
  • Python入门教程之成员运算符
  • 简易BIOS设置模拟界面设计
  • Git教程:常用命令 和 核心原理
  • Tomcat Session 管理与分布式方案
  • 声纹识别技术深度剖析:从原理到实践的全面探索
  • 第6章串数组:特殊矩阵的压缩存储
  • 多账号矩阵管理再也不复杂
  • 电商接口之电子面单API接口对接以及调用:以快递鸟为例
  • Ubuntu22.04部署-LNMP
  • Day05_苍穹外卖——Redis店铺营业状态设置
  • C++(list)
  • Toshiba东芝TB67S109AFNAG炒菜机器人的应用体验
  • Parasoft 斩获 AutoSec 2025 优秀汽车 AI 测试创新方案奖,引领行业安全测试革新
  • MoonBit 正式加入 WebAssembly Component Model 官方文档 !
  • 【线性代数:代数余子式】
  • 基于一种域差异引导的对比特征学习的小样本故障诊断方法
  • k8s pod优雅滚动更新实践
  • Day43 嵌入式 中断、定时器与串行通信
  • Flink框架中的窗口类别:时间窗口、计数窗口
  • PayPal将加密货币整合到点对点支付中,打通Web2与Web3?
  • 正则表达式学习
  • IP 打造:如何长期保持表达动力与热情?
  • 网站使用独立ip有什么好处
  • 【保姆级喂饭教程】MySQL修改用户对应IP范围