学习如何设计一款布林带(Bollinger Bands)交易系统(基础篇)
◍ 用布林带搭一套可跑的 MT5 系统
布林带由中轨(20 周期 SMA)加减 2 倍标准差构成,是价格行为交易者观察波动率扩张与收缩的基础工具。在 MetaTrader 5 上,我们可以直接调用内置 iBands 指标句柄,把通道突破与回归动作转成可执行逻辑。 一套最小可行的布林系统通常只盯三件事:价格触及上轨后的拒收、跌破下轨后的反弹、以及带宽收窄后向某一侧的放量突破。外汇与贵金属杠杆高,布林带伪突破频繁,任何信号都只是概率倾斜,不是确定性方向。 下面这段是 MT5 里获取布林带句柄并读取上轨值的骨架代码,复制到 EA 的 OnInit 里就能跑通验证。
class="type">int bands_handle = iBands(_Symbol, _Period, class="num">20, class="num">0, class="num">2, PRICE_CLOSE); if(bands_handle == INVALID_HANDLE) { Print("Bands init failed"); class="kw">return INIT_FAILED; } class="type">class="kw">double upper_band[class="num">1]; CopyBuffer(bands_handle, class="num">1, class="num">0, class="num">1, upper_band);
波带交易与布林带的基础定位
做价格行为的人迟早会碰到波带交易:核心思路是在上下两条边界之间找买卖点,靠波动的区间反复吃价差。布林带是这类工具里最常被调用的一种,它由约翰·博林格设计,围绕一条 20 日移动平均线画出上下轨,用标准偏差衡量价格相对均值的离散程度。 布林带常被误认成轨道线,因为两者都在价格外侧画两条带。区别在于轨道线按固定百分比偏离均线,而布林带随标准偏差扩张或收缩,市场波动率变了,带宽自己变。外汇和贵金属这类高波动品种上,这个自适应特征直接影响进场止损的摆放。 本文后续代码全部用 MQL5 写,只在 MetaTrader 5 跑。想验证文中逻辑,你得先装好 MT5 终端和 MetaEditor:终端里按 F4 就能调出编辑器,新建文件时选 EA、自定义指标或脚本都行。自己敲一遍代码比只读概念更有用,也能顺手调参数看带宽反应。
「教学用途与风险自担」
本文所有技术拆解与代码仅用于教学演示,不指向任何实盘收益承诺。外汇与贵金属交易自带高杠杆属性,依文中参数或逻辑下单造成的盈亏由操作者自行承担,文中不保证任何结果。 把下面要讲的指标逻辑跑通之前,先确认你是在 MT5 策略测试器里验证,而不是拿真户直接试。教学归教学,盘面上的高风险不会因为看懂了代码就消失。
◍ 布林带为何能随波动呼吸
早期波带大多挂在移动平均线或轨道线上下固定百分比的位置,线条不会因价格节奏改变而张缩,遇到波动率切换就容易失真。布林带由 John Bollinger 在 1980 年代初设计,用简单移动平均线做中心、用移动标准偏差定波带宽度,波动加大时上下轨自动扩张,波动收敛时自动收缩。 核心差别就在算法:普通百分比通道是「均线 ± 固定比例」,布林带是「均线 ± N 倍标准偏差」。标准设置取 20 周期均线配 2 倍偏差,覆盖约 95% 的价格分布,但这是统计经验而非铁律,外汇与贵金属的高杠杆环境里仍可能频繁假突破,需自行验证。 Bollinger 本人给过周期微调参考:若均线周期放到 50,偏差乘数调到 2.1;若缩到 10 周期,乘数降到 1.9。MT5 内置指标直接可选插入→指标→趋势→Bollinger Bands,参数面板里 Period 管均线周期,Deviations 管上下偏差,Apply to 决定取收盘价还是典型价等,Style 与 Shift 控制画线样式和偏移。 用 20 日收盘价做手算示例:20/30/35/30/40/45/50/55/40/45/50/35/40/50/60/65/70/60/70/75,先求均值 47.5,再算每个值与均值差的平方和除以 19 得方差约 191.45,标准差 ≈ 13.84,中轨 47.5、上轨 47.5+2×13.84≈75.2、下轨 47.5−2×13.84≈19.8。打开 MT5 把同样数据灌进品种里,比对内置指标数值就能确认公式没记错。