通达信【ATR吊灯止损】逃顶指标:趋势右侧离场法,牛市一路持股熊市提前下车,威尔德ATR原理详解+无未来函数源码

通达信指标之家 > 通达信公式 > ATR吊灯止损 > 归档编号:94346

9 分钟阅读 | 更新时间:2026-08-03 | 公式类型:主图叠加 + 选股 | 未来函数:无 | 适用:通达信电脑版 & 手机版

⚠️ 阅读前必看:本文所有公式与技术分析内容,仅作为股票编程与技术学习素材,不构成任何投资建议。技术指标天然滞后,不存在能稳定预测行情的公式,股市风险极高,请独立决策、自负盈亏。

把上证指数调成周线,往回拉到 2006 年那一段,然后在图上叠一条ATR吊灯止损线,你会看到一个挺震撼的画面:从 998 点往上那一整段,指数就没跌破过这条蓝线,一次都没有。1000 点到 6124 点,两年时间,这条线像贴身的影子一样在下面托着,涨得慢的时候它慢慢抬,涨得急的时候它跟着蹿。

然后是 2007 年 10 月之后。周线第一次实打实收在蓝线下方的时候,指数大概还在五千三四百点,距离 6124 的顶部回撤了百分之十几。很多人那时候还在讨论"黄金十年",还在算万点论。而如果你的规则只有一条——收在蓝线下方就走——你就在五千多点出来了,接下来那一路从 6124 到 1664 的绞肉机,跟你没关系。

2015 年那次更极端。上证从 2014 年年中两千一百点上去,半年多干到 5178.19,全程站在蓝线上方,中间四月份那波急拉都没打穿。见顶之后就两根阴周线,蓝线破了。破线那一周指数还在四千五以上,后面千股跌停、连续熔断、去杠杆挤兑,全是别人的事。吊灯止损不预测顶部,它只是在你已经错过顶部之后,逼你在第一时间承认这件事。

ATR吊灯止损到底在解决什么问题

做趋势的人都有同一个矛盾:涨的时候怕下车太早,跌的时候怕下车太晚。左侧逃顶是想解决前半句,靠估值、靠背离、靠K线形态去猜顶,猜对一次舒服,猜错三次就把牛市主升浪整段错过。ATR吊灯止损走的是另一条路,它完全放弃猜顶,接受"我一定会在顶部下来一段之后才走",用确定的回吐换掉不确定的踏空。

它的规则简单到一句话:止损点永远挂在建仓以来最高价下方三倍ATR的位置,价格创新高,止损点跟着往上抬;价格不创新高,止损点原地不动;收盘跌破,走人。因为这条线是从行情的"天花板"上垂下来的,所以叫吊灯。这个名字起得确实好,你一想到吊灯,就明白了它为什么只能上移不能下移——天花板抬高了灯跟着抬,天花板不动灯就挂那儿。

原理拆开讲:三层

第一层:ATR 是什么,威尔德为什么要发明它

真实波动幅度 ATR 是威尔德(Welles Wilder)在《技术交易系统中的新概念》里首次提出来的,那本书还顺手给了 RSI、SAR、DMI,一个人贡献了半部技术分析教科书。他当时要解决的问题是:单纯用"最高价减最低价"衡量波动,会漏掉跳空。一只票昨天收十块,今天直接跳空低开到九块,全天在八块九到九块一之间走,你算振幅只有两毛,可实际上它已经掉了一块一。

所以 TR(真实波幅)取三个值里的最大:当日高低差、当日最高与昨收之差的绝对值、昨收与当日最低之差的绝对值。跳空被算进去了。再对 TR 做 N 周期平均,就是 ATR。它是一个纯粹的波动率尺子,不带方向,只回答"这东西平时一天/一周动多少"。

第二层:为什么要用波动率来量止损距离

我对 ATR 的多数理解不是从威尔德那儿来的,是从范·K·撒普(Van K. Tharp)的《通向财务自由之路》。别被书名骗了,它跟《富爸爸穷爸爸》那类东西完全不是一回事,是一本讲交易系统设计和仓位管理的硬书,里面大量用概率和期望值的思路去拆"一套系统为什么能赚钱"。ATR 在那本书里是止损和仓位的核心度量。

道理其实很直白:一只日均波动百分之一的银行股,你给它百分之三的止损,一周就被震出去两次;一只日均波动百分之六的题材小票,你给它百分之三的止损,等于每天开盘就在赌硬币。固定百分比止损对不同波动率的品种是不公平的,用 ATR 的倍数当止损距离,才是同一把尺子。三倍 ATR 的含义是"跌掉了三个平时的波动量",这个幅度在统计上已经很难用正常震荡来解释了。

第三层:吊灯为什么必须挂在最高价上,而不是均线上

跟踪止损用移动平均线做的人很多,问题是均线是钝的。价格从高点掉下来百分之十五,二十周均线可能才刚走平,你还在等它拐头。吊灯挂在最高价下方,最高价这个锚点是瞬时更新的,价格一创新高,整条线立刻抬上去,把浮盈锁住了一大块。原书里说得很清楚,这种跟踪止损的最大优点就是"当市场不断创出新高时止损点能相应迅速上移"。

本文源码里我用 BARSLAST 找到上一次跌破的位置,再取那之后的最高价做挂点,这样在同一轮趋势里 ATR吊灯止损线是单调上移的,跌破之后自动重新起算,不需要你手动标进场点。

什么行情能用,什么行情千万别用

吊灯止损是趋势工具,它挣的是大波段的钱。牛市里的宽基指数、有周期属性的资源股煤炭钢铁有色、一轮景气上行里的中游制造,这些品种用它最舒服。原作者也提到,这套东西尤其适合周期股操作,我自己的体感也是这样。

这几种情况用它会很惨:震荡箱体行情,一年上上下下七八回,每次都在箱体下沿附近割在最低点;日均振幅超过百分之八的妖股和次新,三倍ATR的距离宽得离谱,等信号出来利润早还回去了;成交极度清淡的票,ATR被压得很小,止损线贴脸挂着,随便一根阴线就破;还有停牌后复牌、重大重组这类基本面断层的情况,历史波动率算出来的尺子已经不适用了。
再提醒一句:用周线的话,理论上要等本周最后一个交易日临近收盘时确认跌破才有信号价值,周三跌破周五收回来的情况太常见了,盘中乱动全是假信号。

完整通达信源码:ATR吊灯止损主图叠加

{========= ATR吊灯止损 · 主图叠加 =========}
{========= 无未来函数,建议挂在周线上使用 =========}
N:=22;                                     {ATR周期:日线常用14,周线建议22}
M:=3;                                      {吊灯倍数:经典3倍ATR}

{===== 第一步:真实波幅 TR,把跳空也算进去 =====}
TR1:=H-L;                                  {当日高低差}
TR2:=ABS(H-REF(C,1));                      {当日最高与昨收之差}
TR3:=ABS(REF(C,1)-L);                      {昨收与当日最低之差}
TR:=MAX(MAX(TR1,TR2),TR3);                 {三者取最大=真实波幅}
ATR:=MA(TR,N);                             {平均真实波幅}

{===== 第二步:先用固定窗口吊灯线,定位"上一次跌破" =====}
CH0:=HHV(H,N)-M*ATR;                       {固定窗口吊灯线(仅作定位用)}
PO:=CROSS(CH0,C);                          {收盘跌破,视为一轮趋势结束}

{===== 第三步:取跌破之后的最高价做挂点,止损线只上移 =====}
BB:=MAX(BARSLAST(PO)+1,N);                 {距上次跌破的K线根数,至少N根}
HHB:=HHV(H,MIN(BB,250));                   {本轮趋势内最高价,上限250根防越界}
DDX:HHB-M*ATR,COLORBLUE,LINETHICK2;        {ATR吊灯止损线(蓝)}

{===== 第四步:状态判定与剩余空间提示 =====}
DUO:=C>DDX;                                {收盘在吊灯线上方=趋势未破}
KJ:=(C-DDX)/MAX(DDX,0.01)*100;             {距止损线还有百分之几,防分母为0}
DRAWNUMBER(ISLASTBAR AND DUO,DDX,KJ,1),COLORYELLOW;   {末根K线标出剩余空间}
DRAWTEXT(ISLASTBAR AND DUO,DDX*0.985,'距止损%'),COLORYELLOW;

{===== 第五步:离场信号与K线染色 =====}
LC:=CROSS(DDX,C);                          {收盘跌破吊灯线=右侧离场}
DRAWICON(LC,H*1.02,2);                     {离场图标}
DRAWTEXT(LC,H*1.05,'离场'),COLORGREEN;
STICKLINE(DUO,O,C,2.2,0),COLORRED;         {线上K线染红}
STICKLINE(DUO,H,L,0.5,0),COLORRED;
STICKLINE(NOT(DUO),O,C,2.2,0),COLORGREEN;  {线下K线染绿}
STICKLINE(NOT(DUO),H,L,0.5,0),COLORGREEN;
KDD:LLV(L,N)+M*ATR,COLORGREEN,POINTDOT;    {空头吊灯参考线(下跌趋势用)}
ATRB:ATR/MAX(C,0.01)*100,NODRAW;           {ATR占股价百分比,供仓位管理参考}

ATR吊灯止损跌破预警选股公式源码

{========= ATR吊灯止损 · 跌破离场预警 =========}
N:=22;
M:=3;
TR1:=H-L;
TR2:=ABS(H-REF(C,1));
TR3:=ABS(REF(C,1)-L);
ATR:=MA(MAX(MAX(TR1,TR2),TR3),N);          {平均真实波幅}
CH0:=HHV(H,N)-M*ATR;
PO:=CROSS(CH0,C);
BB:=MAX(BARSLAST(PO)+1,N);
DDX:=HHV(H,MIN(BB,250))-M*ATR;             {ATR吊灯止损线}

B1:=CROSS(DDX,C);                          {今日收盘跌破吊灯线}
B2:=COUNT(C>REF(DDX,1),20)>=15;            {此前20日多数时间在线上=确属多头趋势}
B3:=HHV(H,60)/MAX(LLV(L,120),0.01)>1.3;    {前期确有一段像样上涨,排除阴跌反抽}
B4:=MA(AMOUNT,5)>2000*10000;               {剔除成交清淡股}
XG:B1 AND B2 AND B3 AND B4;

通达信ATR吊灯止损指标怎么导入

步骤操作
1电脑版通达信按 Ctrl+F 打开公式管理器
2技术指标 → 其它类型 → 【新建】
3公式名 ATRDD,中文名"ATR吊灯止损",画线方法选 主图叠加(选副图就看不到和K线的位置关系了)
4粘贴第一段源码 → 【测试公式】→ 通过后【确定】
5回到K线图,右键 → 主图指标 → 选择 ATRDD;把周期切到周线看效果最好
手机版手机端不能粘代码。电脑上保存后用同一账号登录手机通达信,个股页面切换指标里做云同步,把公式拉下来。

参数怎么调,加五条实战用法

N 是 ATR 的周期,日线用 14 更贴近威尔德原版,周线我习惯用 22。M 是倍数,指数用 3 挺合适,个股波动大,2.5 到 3.5 都有人用,倍数越小越敏感、被震出去越勤。这两个参数不要频繁改,你一改,历史上那些让你信服的画面就全变了,很容易改成"事后最优"。

1)只在收盘价上判断,盘中破线不算数,周线更要等周五尾盘;
2)DDX 那条线可以直接当移动止盈位用,账户里挂条件单,省得自己犹豫;
3)ATRB 这个辅助值(ATR占股价百分比)是拿来算仓位的,同样一笔风险预算,ATRB 大的票就少买点;
4)跌破离场之后不要急着找回来,等价格重新站上吊灯线并且新的挂点抬起来了再说;
5)拿它去复盘自己过去两年的交易,把每一笔卖出点和吊灯线对照一下,你会很清楚自己是走早了还是走晚了,这个练习比看十篇文章有用。

常见问题 FAQ

问:ATR吊灯止损指标有未来函数吗?
没有。这套ATR吊灯止损公式只用到 MA、MAX、ABS、REF、HHV、LLV、CROSS、BARSLAST 这些普通函数,全部数据都取自当根及之前的K线,没有 ZIG、PEAK、BACKSET、FORCAST 这类未来函数。历史上任意一根K线的止损线位置,在当时就已经确定,事后不会被改写。

问:为什么倍数要用3倍ATR,能不能改成2倍?
3倍是吊灯止损体系里流传最广的默认值,它在容忍正常波动和及时离场之间大致平衡。改成2倍会更敏感,牛市中途被震出去的概率明显上升;放到4倍能拿得更久,代价是趋势反转后要多回吐一大截利润。个股波动比指数大,用2.5到3.5这个区间比较常见。

问:ATR吊灯止损用日线还是周线?
原始用法是周线。周线过滤掉了日内和日间的大量噪声,信号少但可信度高,需要等到本周最后一个交易日临近收盘确认跌破才算数,盘中的涨跌都可能是假信号。日线用也行,但要把ATR周期适当拉长,并且接受被震出去的次数会多不少。

问:吊灯止损线为什么只上移不下移?
因为它挂在建仓以来的最高价下方,最高价只会被刷新不会缩水,所以线只能往上抬。本文源码用 BARSLAST 定位上一次跌破的位置,再取那之后的最高价做挂点,这样在同一轮趋势里止损位单调上移,趋势结束跌破之后再重新起算。

问:ATR吊灯止损适合什么股票?
适合有明确单边趋势的品种,牛市里的指数、周期股、资源股这类走大波段的最理想。震荡市和箱体票用它会被反复打脸,一年被震出去七八次,每次都在低点附近割肉,那种行情它就是个负收益工具。

说点实在的

第一,前面那两段上证的复盘是事后看图,看图谁都会。真到了 2007 年 11 月,指数刚破线,一堆人喊"黄金坑",你手上还有百分之二百的浮盈,那一刻要不要执行规则,是完全另一回事。工具不难,难的是照做。

第二,这套方法注定要回吐利润。从 6124 到破线离场,你交掉了百分之十几;2015 年那次交掉的更多。想吃到最高点的人别用它,你会天天骂它。

第三,公式里 HHV(H,MIN(BB,250)) 用了变量周期,极老版本的通达信可能不支持变量长度的 HHV,如果测试公式报错,把它改成固定的 HHV(H,N) 也能跑,只是止损线会随着窗口滚动而回落一点,效果略打折。

第四,自查过了:没有恒真条件,没有先引用后定义,KJ 和 ATRB 的分母都用 MAX 兜了底,M*ATR 这些乘号一个没漏。你自己改参数的时候,最容易出的错就是把 3*ATR 写成 3ATR,通达信不一定报错,但线会画到天上去。

⚠️ 风险免责声明: 本文全部公式源码与技术解析,仅供股票技术编程学习与交流使用,不构成任何个股推荐、买卖建议或投资指导。技术指标存在滞后性与失效可能,股市有风险,投资需谨慎,据此操作产生的一切盈亏由操作者本人承担。
💡 复制提示: 源码请保留英文半角符号,不要混入中文标点(尤其是分号、括号、逗号),否则通达信会提示编译失败。粘贴后先点"测试公式",通过再保存。


相关阅读

最近发表
在线客服
QQ:332879389
联系电话
13605084160