唐奇安通道、肯特纳通道与布林通道:三方比较(2026)
你在 TradingView 打开图表,看到三条围着价格走的通道:唐奇安、肯特纳、布林。三条线画出来长得都像「上下夹一根价格」,于是被当成同一种东西——只要价格碰上轨就卖、碰下轨就买。这是这三条通道最常见的用法,也是最常翻车的用法。
这三条通道的公式完全不一样,最擅长的市况也不一样。这篇不教你「哪条最强」——没有这种答案。它把三条的机制拆开放在一起,讲各自的通道宽度怎么算、对突发波动怎么反应、在什么场景会安静地失效。最后附一段可以直接贴到 TradingView 的 Pine Script(也就是 TradingView 内置的策略脚本语言)代码,你可以把三条叠在同一张图上比较。
三条通道看起来像,但夹住价格的方式完全不一样
从公式看最直观。用 20 期作为共同参数,三条的定义是:
| 面向 | 唐奇安通道 | 肯特纳通道(现代 ATR 版) | 布林通道 |
|---|---|---|---|
| 中轴来源 | (20 期最高 + 20 期最低) / 2 | EMA(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 年代发明的通道,公式最简单:
上轨 = 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 出场,整套规则没有一个模糊词。
第三,它对盘整无能为力。价格在区间内盘来盘去,永远碰不到通道边——因为通道边就是这段区间的最高最低。你想从中找到均值回归的信号,唐奇安几乎给不了。这是它的守备范围以外的事。
想看完整的突破实现,包括假突破怎么过滤,可以直接读突破策略完整教程;海龟系统整套用 Donchian 怎么跑,CTA 趋势跟随与海龟交易有一次讲完。
肯特纳通道:让通道跟着真实波动走
肯特纳通道原型是 Chester Keltner 在 1960 年出版的《How to Make Money in Commodities》一书提出的,那一版用的是移动平均加减 typical price 的高低差。你现在在 TradingView 看到的默认版本不是那个原型——是 Linda Bradford Raschke 在 1990 年代改用 ATR 之后普及的版本。两者长得像,但只有 ATR 版本广为使用,本文接下来都指这个现代版本。
中轴 = EMA(close, 20)
ATR = ta.atr(10) // 真实波幅,含跳空
上轨 = 中轴 + 2 × ATR
下轨 = 中轴 - 2 × ATR它是「这根 K 线真实的波动范围」,等于 max(当日高低差、当日高减昨日收、当日低减昨日收) 的 N 期平均。跟只看高低差比,ATR 把跳空也算进去。详细机制与仓位大小的算法在 ATR 完整教程 里有拆过,这里只用结论。
跟唐奇安比起来,肯特纳最大的差别是中轴每根 K 线都在动。EMA 对近期数据的权重比较高——20 期 EMA 大概对过去 5-7 根 K 线最敏感,之前的数据权重会很快衰减。所以中轴像是一条「稍微延迟」的价格,通道则是那条线的上下 2 倍 ATR。
跟布林比起来,肯特纳最大的差别是ATR 对突发波动的反应比较稳定。同样是一根长阴 K,布林的标准差会被拉大一次然后在几根 K 之后慢慢收回;ATR 是 N 期平均,长阴 K 只会被算成 1/N 的贡献,通道不会突然爆开也不会突然收窄。这带来一个实用的性质:肯特纳通道的宽度变化平滑,容易当趋势跟随的移动止损。
如果你想更深入理解为什么 EMA 跟 SMA 在趋势跟随上会给出不同信号,EMA 均线完整教程有一次讲完权重公式跟 lag 的差。
布林通道:用标准差抓「不寻常的距离」
布林通道由 John Bollinger 在 1980 年代发明,公式看起来只跟肯特纳差一个字:
中轴 = 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 完整教程 里另外一整篇拆过。本文只把它放在跟另外两条的对照位置。
一张表放在一起:什么场景该用哪一条
| 唐奇安 | 肯特纳 | 布林 | ||
|---|---|---|---|---|
| 突破信号干净程度 | 最干净(就是字面新高) | 中等(要跟 ATR 比) | 会被 Walking the Bands 干扰 | |
| 当作追踪止损好用吗 | 还可以(用出场 N 期) | 最顺手(宽度平滑) | 会太紧或太松 | |
| 抓 Squeeze/低波动的能力 | 几乎不会显示 | 会慢慢收窄 | 最快看得出来 | |
| 应对盘整市场 | 几乎不动 | 通道慢慢缩 | 频繁碰轨,容易被骗 | |
| 遇到跳空的行为 | 立刻反映在极值 | 算进 ATR,通道拉开 | 算进标准差,通道拉开更多 | |
| 第一次上手要调的参数 | 长度 N(20 / 55) | EMA 长度、ATR 长度、乘数 | 长度、标准差倍数 |
如果你在写的是趋势跟随、突破类的策略,唐奇安是最直接的起点,肯特纳是最顺手的止损。如果你要的是「等这一段闷住之后爆出来的方向」,布林的 Squeeze 是三条里最灵敏的。不要把它们当成「布林最进阶、唐奇安最原始」——它们是三个工具,不是三个时代。
Pine 三条叠在一起:直接看差异
把三条通道叠在同一张图上,一根 K 线一根 K 线看,比任何比较文都快。这段拆成三块——共同参数与唐奇安、肯特纳与布林的算法、叠在图上的 plot——直接复制到 TradingView 的 Pine Editor 就能跑。
共同参数与唐奇安
//@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肯特纳与布林
// 肯特纳(现代 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叠在同一张图上
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 期指数移动平均的衰减常数」,前者是硬窗口、后者是连续加权。想改参数之前先想清楚你在改哪个机制。
常见问题
用法与参数
海龟策略为什么用唐奇安,不用肯特纳或布林?
肯特纳用 EMA 好还是 SMA 好?
布林通道的 20 / 2.0 可以改吗?
组合与市场差异
三条通道能同时用吗?
这三条在加密货币跟股票有没有明显差别?
Get started
TVSBot 把你在 Pine 里写好的通道策略接到交易所——用你自己的 API key,先 dry-run 验证,7 家交易所可选。
免费开始使用