两张图表看起来都很活跃,原因却可能不同。长影线可以抬高波幅指标,而收盘价不变;有序的单向移动也可以让收盘价分布在均值周围。有效的波动率比较,应先看各指标回答什么问题,而不是把每条上升曲线都视为同一种证据。
本系列的第二篇指南比较测量方式及其用途,不提供突破系统、入场阈值或仓位规模规则。ATR计算指南详细说明真实波幅、平滑与pips换算。本文用共同的数据集展示ATR、收盘价标准差和布林带宽的区别。
1. 让指标对应一个明确的问题
ATR用于概括近期真实波幅,包括当前最高价、最低价与前收盘价的关系。标准差用于描述所选价格观测值在均值周围的离散程度。BandWidth用于表示布林带上下轨距离相对于中轨的大小。
这些是描述性测量,并不是可以互换的预测。读数更高不等于可以选择BUY或SELL,也不证明即将反转、不限定未来最大波幅,更不证明交易会盈利。三者都取决于品种、时间周期、数据及计算选择。
写清楚需要的是价格距离背景、收盘价离散程度,还是相对的带宽收缩。每个保留的输入都应有明确用途。增加波动率面板并不自动增加信息。
2. 明确定义ATR
对于有效Bid K线,TR = max(H, Cprev) − min(L, Cprev)。本文采用ATR_SMA(t) = Σ TR(t−j) / n, j = 0…n−1。选择滚动算术平均,是为了在教学示例中对齐各计算窗口,并不意味着所有平台都采用它。
Wilder平均或不同初始化可能得到不同结果。比较指标前,先记录所采用的方法。ATR保留了仅用收盘价计算时无法看到的最高价、最低价信息,但不会描述一根K线内tick出现的顺序,也不描述尚未发生的价格移动。
3. 定义价格标准差,而非收益率标准差
令M为最近n个已完成收盘价的算术平均值:M(t) = Σ C(t−j) / n, j = 0…n−1。定义σ(t) = sqrt(Σ (C(t−j) − M(t))² / n), j = 0…n−1。窗口中每个收盘价都与同一个当前窗口均值比较。
这里把所选窗口整体视为总体,除数用n,而不是样本除数n−1。更改除数、应用价格、权重或均值,就改变了计算规格。标准差的单位是价格;若要得到pips,需要除以明确规定的pip大小。
这是价格水平的离散程度,不是百分比收益率或对数收益率的标准差,也不是年化已实现波动率。即使相邻收盘价之间的价格增量相同,稳定的单向移动也会使收盘价分散在均值周围。不要自动把它称为无序交易。
4. 从相同的布林带推导BandWidth
本例采用SMA中轨和同一收盘价σ,定义U = M + k × σ及L = M − k × σ。M为正时,定义BBW_pct = 100 × (U − L) / M。本文始终报告百分比,而不是尚未乘以系数的比率。
代数化简得到BBW_pct = 200 × k × σ / M。当k = 2时,上下轨总距离为4 × σ。使用EMA中轨、其他权重或其他价格源的实现属于不同构造,需要先对齐再比较。
BandWidth测量宽度,不是价格在带内的位置。另一个位置指标%b = (Close − L) / (U − L)在上下轨距离为零时没有定义。触及某条轨道或带宽较窄,都不能单独给出交易方向,也不提供经校准的后续走势概率。
5. 复算共同的虚构示例
表格提供虚构的EURUSD H1 Bid K线,按同一个假定服务器时钟下的收盘时间标记。此前00:00的收盘价是1.10000。所有回看窗口均为n = 4,布林带采用k = 2。短参数用于展示计算,并不是推荐的交易设置。一个pip为0.00010。
| H1收盘时间 | Bid开盘价 | Bid最高价 | Bid最低价 | Bid收盘价 | TR,pips | ATR SMA(4),pips | σ(4),pips | BBW,% |
|---|---|---|---|---|---|---|---|---|
01:00 | 1.10000 | 1.10020 | 1.09980 | 1.10000 | 4 | — | — | — |
02:00 | 1.10000 | 1.10020 | 1.09980 | 1.10000 | 4 | — | — | — |
03:00 | 1.10000 | 1.10020 | 1.09980 | 1.10000 | 4 | — | — | — |
04:00 | 1.10000 | 1.10020 | 1.09980 | 1.10000 | 4 | 4.000000 | 0.000000 | 0.000000 |
05:00 | 1.10000 | 1.10100 | 1.09900 | 1.10000 | 20 | 8.000000 | 0.000000 | 0.000000 |
06:00 | 1.10000 | 1.10020 | 1.09980 | 1.10000 | 4 | 8.000000 | 0.000000 | 0.000000 |
07:00 | 1.10000 | 1.10020 | 1.09980 | 1.10000 | 4 | 8.000000 | 0.000000 | 0.000000 |
08:00 | 1.10000 | 1.10020 | 1.09980 | 1.10000 | 4 | 8.000000 | 0.000000 | 0.000000 |
09:00 | 1.10000 | 1.10060 | 1.09980 | 1.10040 | 8 | 5.000000 | 1.732051 | 0.062978 |
10:00 | 1.10040 | 1.10100 | 1.10020 | 1.10080 | 8 | 6.000000 | 3.316625 | 0.120572 |
11:00 | 1.10080 | 1.10140 | 1.10060 | 1.10120 | 8 | 7.000000 | 4.472136 | 0.162534 |
12:00 | 1.10120 | 1.10180 | 1.10100 | 1.10160 | 8 | 8.000000 | 4.472136 | 0.162475 |
第一个完整窗口结束于04:00。其中收盘价均为1.10000,所以σ和BBW为零,而ATR为4 pips。这些是已经可得的测量值,不是缺失值。更早的平均和离散程度读数尚不可得。展示结果四舍五入到小数点后6位,计算保留完整精度。
05:00时,最高价与最低价拉开,但收盘价不变。TR为20 pips,且ATR = (4 + 4 + 4 + 20) / 4 = 8 pips。最近的收盘价仍相同,因此收盘价σ和BBW仍为零。“收盘价离散程度为零”显然不等于“K线内部没有价格移动”。
12:00时,ATR同样为8 pips,但最近的收盘价已有差异。M为1.10100,各收盘价相对均值的偏差为−6, −2, 2, 6 pips。因此σ = sqrt((36 + 4 + 4 + 36) / 4) = sqrt(20) pips,显示为4.472136。上下轨总距离为17.888544 pips,BBW为0.162475%。本例不模拟订单、成交或交易收益。
6. 先解释读数分歧,再更改规则
长影线示例改变了最高价与最低价之间的波幅,却没有改变收盘价;后续的单向移动改变了收盘价离散程度。因此,相同的ATR可以对应不同的σ与BBW。这有助于理解定义,并不能证明某个指标故障或始终优于其他指标。
滚动平均下降,也可能是早先的一个大值退出窗口所致。到了09:00,长影线对应的TR已离开本例的ATR窗口。一般而言,更改回看长度或平滑方式会改变响应及记忆。不要只凭挑选的一个案例中哪条曲线反应最快,就给指标排出优劣。
7. 不要把同一份离散信息重复计数
当M、σ和固定带宽倍数相同时,BBW就是归一化σ的代数变换。对本文规定的布林带,具体关系为BBW_pct = 4 × (100 × σ / M)。同时要求二者上升,并不构成两份独立的波动率确认。
ATR使用额外的OHLC信息,但仍与基于收盘价的测量共享价格数据,不能由此推断统计独立性。给每个输入明确的用途,并测试新增规则是否有贡献。指标组合指南介绍如何区分互补用途与重复投票。
8. 有目的地归一化,并保留单位
原始ATR和σ都是价格距离。这里可将ATR表示为100 × ATR / Close,而BBW将上下轨总距离除以M。在12:00,ATR百分比为0.072622%,BBW为0.162475%。它们的分子、分母不同;数值更大并不意味着信号更强。
把所有价格乘以相同的正数,原始距离会同比放大,但这些归一化比率不变。这只去除了价格尺度的影响,并未消除流动性、交易时段、时间周期、合约规模或货币风险的差异。把pip惯例或百分比阈值用于其他品种前,需要重新明确规格。
9. 用过去的观测来定义“低”
某个BBW数值并不天然代表所有货币对和时间周期上的窄带。应事先选定历史参考、回看长度、同值处理规则及预热要求。只与决策时已经可得的观测比较;整张图表的最小值或百分位数可能引入未来信息。
在另一个教学例子中,此前六个已完成BBW读数为0.08, 0.10, 0.12, 0.14, 0.16, 0.20(单位为百分比),当前读数为0.10%。定义Rank = 100 × count(previous BBW ≤ current BBW) / m。将当前值排除在参考集合之外,可得100 × 2 / 6 = 33.333333%。这是历史排名,不是突破概率。
同值处理很重要:把“小于或等于”改成“小于”,结果就会改变。采用包含同值的规则时,若参考集合全部相等,排名就是100%,因此该排名并不是识别平静市场的通用检测器。真正的收缩规则应另行定义和测试。既有布林带收窄策略介绍了独立的价格确认框架,排名本身并不能提供这些条件。
10. 对齐平台输入与观测时点
在MT4中,iStdDev(_Symbol, PERIOD_H1, 4, 0, MODE_SMA, PRICE_CLOSE, 1)明确指定方法、价格源和已收盘K线的缓冲区偏移。布林带调用iBands(_Symbol, PERIOD_H1, 4, 2, 0, PRICE_CLOSE, MODE_UPPER, 1)选择上轨。以相同参数读取MODE_MAIN和MODE_LOWER,才能推导宽度。线条在图表上的位移与缓冲区偏移是不同参数。
记录经纪商的完整品种名、报价侧、时间周期、价格源、计算周期、权重、标准差倍数、历史数据及指标版本。本文ATR明确定义为滚动SMA,不要假定终端ATR与之相同。复现同样的K线,在已收盘K线上比较未舍入的值。本文不声称已验证运行中终端的输出。
刚过12:00且数据就绪时,12:00收盘的K线开盘于11:00,位于偏移1;12:00–13:00这根仍在形成中,位于偏移0。保存开盘时间戳,而不只是随时间变化的偏移编号。不同服务器分界或更高时间周期的K线,需要各自对齐。
11. 评价方法之前,先验证测量
要求OHLC有效,并有足够连续观测;本例ATR还需要已知的前收盘价。不要用零填补缺失数据,也不要悄悄跨过意外缺口。真实为零的σ或BBW可以有效,但零或非正除数必须拒绝使用。历史缺失和未初始化指标都不能证明波动率低。
这些基于Bid的测量不能给出可执行交易的完整成本。点差、佣金、融资费用、滑点、交易量和相关敞口仍需单独考虑。交易成本指南与风险管理指南解释了为什么低归一化读数或某个指标倍数都不构成完整的风险模型。
复现收盘价相同但有影线的K线、单向移动、退出窗口的极端值、同值、零值及历史缺失。每次推进一根已收盘K线;数据与初始化不变时,后续K线不应改变此前的结果。若将测量变成规则,保留尝试过的变体及后续评估数据,再进行前向测试。MT4回测指南介绍更完整的流程。任何指标比较都不能证明具有交易优势。
12. 波动率比较常见问题
ATR、标准差和BandWidth,哪个最好?
没有始终最好的选择。ATR概括真实波幅,标准差描述所选价格的离散程度,BandWidth将上下轨距离归一化。选择适合明确问题的测量,再单独评价交易规则。
ATR为正时,σ可以为零吗?
可以。每根K线内部的最高价和最低价可以变化,而收盘价相同。收盘价离散程度和带宽可以为零,但真实波幅及其平均值仍为正。解释零值前,应确认数据已经就绪。
σ与BandWidth是独立确认吗?
如果使用相同收盘价、均值、离散程度定义和固定倍数,就不是。此时BandWidth是归一化σ的缩放形式。标签不同,不会让底层信息变得独立。
两倍标准差能保证价格留在带内的概率吗?
不能。这种构造没有证明观测正态且独立,也没有建立经校准的预测。不要给布林带套用通用覆盖概率,也不要把触轨当作自动反转信号。
BBW为0.10%是否总是很低?
不是。其含义取决于品种、时间周期、设置和历史参考。历史排名也受回看长度和同值处理影响。原始读数和排名都不能保证波动扩张即将发生。
为什么我的平台读数与表格不同?
先对齐虚构输入K线,再检查算法、除数、价格源、窗口、偏移、初始值或预热历史、报价侧及单位。这个例子是按明确规格进行的计算,并不是对所有平台实现的经验证复现。
13. 技术参考与适用范围
约翰·布林格的官方规则说明了传统布林带的构造、归一化BandWidth以及统计假设的局限。本文明确给出公式、总体除数、数据和时点,便于复算比较,而不必假定所有实现都相同。
外汇及杠杆交易具有重大风险。本指南仅用于教育,不构成投资建议。过去的结果或模拟结果不保证未来表现。