技术分析

唐奇安通道、肯特纳通道与布林通道:三方比较(2026)

2026-09-30·8 分钟阅读

你在 TradingView 打开图表,看到三条围着价格走的通道:唐奇安、肯特纳、布林。三条线画出来长得都像「上下夹一根价格」,于是被当成同一种东西——只要价格碰上轨就卖、碰下轨就买。这是这三条通道最常见的用法,也是最常翻车的用法。

这三条通道的公式完全不一样,最擅长的市况也不一样。这篇不教你「哪条最强」——没有这种答案。它把三条的机制拆开放在一起,讲各自的通道宽度怎么算、对突发波动怎么反应、在什么场景会安静地失效。最后附一段可以直接贴到 TradingView 的 Pine Script(也就是 TradingView 内置的策略脚本语言)代码,你可以把三条叠在同一张图上比较。

三条通道看起来像,但夹住价格的方式完全不一样

从公式看最直观。用 20 期作为共同参数,三条的定义是:

面向唐奇安通道肯特纳通道(现代 ATR 版)布林通道
中轴来源(20 期最高 + 20 期最低) / 2EMA(close, 20)SMA(close, 20)
上下轨来源20 期最高 / 20 期最低中轴 ± 2 × ATR(10)中轴 ± 2 × 标准差(20)
通道宽度反映的是近期价格的极值近期真实波动(含跳空)近期收盘价的离散程度
中轴更新频率只在新高或新低出现时才动每一根 K 线都在动每一根 K 线都在动
对盘整的表现通道保持稳定通道慢慢收窄通道快速收窄(会出现 Squeeze)

来源:Pine Script v6 官方指标 ta.highest / ta.lowest / ta.ema / ta.atr / ta.sma / ta.stdev 定义;查证日期 2026 年 8 月。

三条通道解决的是三个不同的问题:

唐奇安在问「现在的价格有没有比最近所有人看过的都高」,肯特纳在问「现在的偏离是不是比平常波动多」,布林在问「现在的偏离是不是统计上罕见」。同样写「上轨」两个字,背后的意思完全不同。

唐奇安通道:追的是价格的极值

Richard Donchian 在 1950 年代发明的通道,公式最简单:

text
上轨 = highest(high, 20)
        下轨 = lowest(low, 20)
        中轴 = (上轨 + 下轨) / 2

没有平均、没有标准差、没有波动率。它只回答一个问题:过去 N 根 K 线里的最高最低是多少。这个「极值本位」的设计带来三个明显的特征。

第一,通道的边界会平走。

只要 20 期内的最高没被打破,上轨会一路水平延伸到那个高点滑出窗口为止。中轴也一样——只在新高或新低出现的那一根 K 线才会跳一次。这在盘整市场里看起来很像故障,实际上是刻意的。

第二,突破信号很干净。

价格碰到上轨,代表它刚创下 N 期新高——不是接近某个平均值加几个标准差、不是超出 ATR 几倍,是字面上的新高。要判断「这是不是突破」不用做二次判断。这就是 1983 年海龟交易系统用它的原因:Donchian 20 入场(System 1)、Donchian 55 入场(System 2)、Donchian 10 或 20 出场,整套规则没有一个模糊词。

第三,它对盘整无能为力。

价格在区间内盘来盘去,永远碰不到通道边——因为通道边就是这段区间的最高最低。你想从中找到均值回归的信号,唐奇安几乎给不了。这是它的守备范围以外的事。

唐奇安最适合的场景
波动明显放大的日线/4 小时线,尤其是加密货币这种 24 小时交易、开盘时段被抹平的市场。它抓不到微结构,但它抓突破的干净程度是三条里最好的。如果你在写的是趋势跟随策略,先从唐奇安试起,比先从布林试起省得多。

想看完整的突破实现,包括假突破怎么过滤,可以直接读突破策略完整教程;海龟系统整套用 Donchian 怎么跑,CTA 趋势跟随与海龟交易有一次讲完。

肯特纳通道:让通道跟着真实波动走

肯特纳通道原型是 Chester Keltner 在 1960 年出版的《How to Make Money in Commodities》一书提出的,那一版用的是移动平均加减 typical price 的高低差。你现在在 TradingView 看到的默认版本不是那个原型——是 Linda Bradford Raschke 在 1990 年代改用 ATR 之后普及的版本。两者长得像,但只有 ATR 版本广为使用,本文接下来都指这个现代版本。

text
中轴 = EMA(close, 20)
        ATR = ta.atr(10)     // 真实波幅,含跳空
        上轨 = 中轴 + 2 × ATR
        下轨 = 中轴 - 2 × ATR
ATR 是什么——用一句话定位:

它是「这根 K 线真实的波动范围」,等于 max(当日高低差、当日高减昨日收、当日低减昨日收) 的 N 期平均。跟只看高低差比,ATR 把跳空也算进去。详细机制与仓位大小的算法在 ATR 完整教程 里有拆过,这里只用结论。

跟唐奇安比起来,肯特纳最大的差别是中轴每根 K 线都在动。EMA 对近期数据的权重比较高——20 期 EMA 大概对过去 5-7 根 K 线最敏感,之前的数据权重会很快衰减。所以中轴像是一条「稍微延迟」的价格,通道则是那条线的上下 2 倍 ATR。

跟布林比起来,肯特纳最大的差别是ATR 对突发波动的反应比较稳定。同样是一根长阴 K,布林的标准差会被拉大一次然后在几根 K 之后慢慢收回;ATR 是 N 期平均,长阴 K 只会被算成 1/N 的贡献,通道不会突然爆开也不会突然收窄。这带来一个实用的性质:肯特纳通道的宽度变化平滑,容易当趋势跟随的移动止损。

肯特纳最适合的场景
既有明确方向、但波动会忽大忽小的市场,例如加密永续合约。用 EMA(20) 当入场方向、2 × ATR 当追踪止损,是一个很老实但有效的组合。中轴用 EMA 是刻意的——换成 SMA 会失去对近期趋势的敏感度,这时候就跟布林的中轴没差别了。

如果你想更深入理解为什么 EMA 跟 SMA 在趋势跟随上会给出不同信号,EMA 均线完整教程有一次讲完权重公式跟 lag 的差。

布林通道:用标准差抓「不寻常的距离」

布林通道由 John Bollinger 在 1980 年代发明,公式看起来只跟肯特纳差一个字:

text
中轴 = SMA(close, 20)
        stdev = 过去 20 期收盘价的标准差
        上轨 = 中轴 + 2 × stdev
        下轨 = 中轴 - 2 × stdev

差别在通道宽度的来源:布林用的是统计上的离散程度(标准差),肯特纳用的是价格自己走出来的波动(ATR)。这个差别实现上很小,行为上差很多。

标准差对极端值放大。

ATR 是绝对值的算术平均,一根长 K 贡献 1/N;标准差是离差平方后开根号,同样一根长 K 对通道宽度的贡献远比 ATR 多。实务结果是:盘整转波动时,布林通道会比肯特纳早打开、也早收回。这个「打开又收回」的节奏,就是 John Bollinger 自己命名的 Squeeze——通道极窄之后跟着一次扩张,方向常常带来一段行情。

但通道边不是绝对范围。

价格连续碰上轨不代表要反转——Bollinger 自己把这个现象叫做 Walking the Bands,是强趋势的正常表现。这件事在盘整市场对,在趋势市场错,而三条通道里最容易被误用成「碰轨就反手」的就是布林,因为它的中轴是 SMA 平滑价、上下轨又常常被画得像明确的支撑压力。

布林通道的完整用法——Squeeze、%B、Walking the Bands、跟趋势过滤的组合——在 Bollinger Bands 完整教程 里另外一整篇拆过。本文只把它放在跟另外两条的对照位置。

布林最适合的场景
波动率会周期性收缩扩张的市场,例如美股主力时段、加密永续在 funding rate 过后那几根 K 线。用它抓「累积能量→释放」的节点很顺手;用它抓「碰轨就反手」通常会亏钱。

一张表放在一起:什么场景该用哪一条

唐奇安肯特纳布林
突破信号干净程度最干净(就是字面新高)中等(要跟 ATR 比)会被 Walking the Bands 干扰
当作追踪止损好用吗还可以(用出场 N 期)最顺手(宽度平滑)会太紧或太松
抓 Squeeze/低波动的能力几乎不会显示会慢慢收窄最快看得出来
应对盘整市场几乎不动通道慢慢缩频繁碰轨,容易被骗
遇到跳空的行为立刻反映在极值算进 ATR,通道拉开算进标准差,通道拉开更多
第一次上手要调的参数长度 N(20 / 55)EMA 长度、ATR 长度、乘数长度、标准差倍数
选哪一条,其实是选你要对付的市况:

如果你在写的是趋势跟随、突破类的策略,唐奇安是最直接的起点,肯特纳是最顺手的止损。如果你要的是「等这一段闷住之后爆出来的方向」,布林的 Squeeze 是三条里最灵敏的。不要把它们当成「布林最进阶、唐奇安最原始」——它们是三个工具,不是三个时代。

Pine 三条叠在一起:直接看差异

把三条通道叠在同一张图上,一根 K 线一根 K 线看,比任何比较文都快。这段拆成三块——共同参数与唐奇安、肯特纳与布林的算法、叠在图上的 plot——直接复制到 TradingView 的 Pine Editor 就能跑。

共同参数与唐奇安

pine
//@version=5
        indicator("Donchian vs Keltner vs Bollinger", overlay=true)

        length = input.int(20, "共用长度")
        atrLen = input.int(10, "肯特纳 ATR 长度")
        kMult  = input.float(2.0, "肯特纳倍数")
        bMult  = input.float(2.0, "布林标准差倍数")

        // 唐奇安
        donUp  = ta.highest(high, length)
        donLow = ta.lowest(low, length)
        donMid = (donUp + donLow) / 2

肯特纳与布林

pine
// 肯特纳(现代 ATR 版)
        kMid  = ta.ema(close, length)
        kBand = kMult * ta.atr(atrLen)
        kUp   = kMid + kBand
        kLow  = kMid - kBand

        // 布林
        bMid  = ta.sma(close, length)
        bDev  = bMult * ta.stdev(close, length)
        bUp   = bMid + bDev
        bLow  = bMid - bDev

叠在同一张图上

pine
plot(donUp,  "Donchian 上", color=color.new(color.red, 0))
        plot(donLow, "Donchian 下", color=color.new(color.red, 0))
        plot(kUp,    "Keltner 上",  color=color.new(color.orange, 0))
        plot(kLow,   "Keltner 下",  color=color.new(color.orange, 0))
        plot(bUp,    "Bollinger 上", color=color.new(color.aqua, 0))
        plot(bLow,   "Bollinger 下", color=color.new(color.aqua, 0))

贴上去之后,把图切到 BTC 的日线或 4 小时。你会看到三个规律性现象:盘整时,红色(Donchian)几乎不动,橙色(Keltner)慢慢收,蓝色(Bollinger)最快收窄;一根长 K 之后,蓝色的通道被拉开最多,橙色次之,红色只在那根 K 创新高/新低时才动;上涨趋势里,价格会靠着蓝色的上轨走(Walking the Bands),碰了不代表反转。

三个常见的误用,全部都跟「通道类是同一种东西」的假设有关

误用一:把布林通道当唐奇安通道用。

看到价格碰布林上轨就当作「创新高」入场——但布林上轨只是「距离平均 2 个标准差以上」,跟过去多少期的最高没有关系。真要抓突破,直接用 highest/lowest 更省心。

误用二:把唐奇安通道当肯特纳通道用。

用唐奇安当追踪止损,然后不断抱怨「止损距离忽宽忽窄」——那不是唐奇安的问题,是你要的功能它做不到。追踪止损要平滑的通道宽度,那是 ATR 系(肯特纳)或百分比止损的守备范围。

误用三:三条的参数互抄。

看到有人推荐「Donchian 用 20」就把肯特纳的 EMA 也改成 20——这两个 20 的意义完全不同。Donchian 的 20 是「往回看 20 根找极值」,肯特纳的 20 是「20 期指数移动平均的衰减常数」,前者是硬窗口、后者是连续加权。想改参数之前先想清楚你在改哪个机制。

常见问题

用法与参数

海龟策略为什么用唐奇安,不用肯特纳或布林?
1983 年海龟系统的设计目标是可以机械化执行、规则完全不需要解读。Donchian 20 突破就是字面上的「20 期新高」——没有平均、没有波动率、没有主观判断。换成肯特纳或布林,信号会夹带「距离平均多远算突破」这种需要调参的问题,那就违反了整套系统想要的东西。
肯特纳用 EMA 好还是 SMA 好?
大多数平台的默认是 EMA,是因为它对近期价格更敏感、比较适合趋势跟随。用 SMA 也不是错——只是效果会更接近布林,因为布林的中轴也是 SMA。选 EMA 就是刻意跟布林拉开差别;选 SMA 就要接受两条看起来会很像。
布林通道的 20 / 2.0 可以改吗?
可以,但改动之前先问自己「我要改成更灵敏还是更宽」。长度缩短、倍数缩小 → 信号变多、假信号也变多;长度拉长、倍数放大 → 通道稳定、但反应变慢。Bollinger 自己在书里直接写过 20 / 2.0 在多数市场已经很稳健,改是可以改,但不要一上来就掉进「找最佳参数」的陷阱。

组合与市场差异

三条通道能同时用吗?
可以,而且是常见组合。Bollinger Squeeze 这个信号的一种定义就是「布林通道完全在肯特纳通道内」——两条叠在一起才判定 Squeeze 成立。另一个常见组合是唐奇安当入场触发、肯特纳当追踪止损:一个抓「有没有突破」,另一个抓「还没被反噬」。
这三条在加密货币跟股票有没有明显差别?
差别主要在「开盘跳空」跟「24 小时波动」两件事。股票有隔夜跳空,ATR 会把跳空算进去,肯特纳的通道会反映;加密没有真正的收盘,跳空几乎只在极端事件才出现。24 小时交易让唐奇安的「N 期最高」不会被单一时段主导,突破信号比股票干净;布林的 Walking the Bands 在加密的长趋势里特别容易连续发生,这是新手最常在加密翻车的地方。

Get started

想把今天学到的东西自动化跑起来?

TVSBot 把你在 Pine 里写好的通道策略接到交易所——用你自己的 API key,先 dry-run 验证,7 家交易所可选。

免费开始使用