学习如何基于 MACD 设计交易系统(基础篇)
「用 MACD 搭一套可跑的交易逻辑」
MACD 作为趋势与动能的复合指标,在 MT5 里可以直接调出默认参数(12,26,9)做第一版系统原型。很多新手只盯着金叉死叉,却忽略了柱状体斜率变化往往比信号线穿越早 1~2 根 K 线给出拐点暗示。 在 MT5 历史中心回看 EURUSD H1,2022 年上半年用标准 MACD 零轴之上金叉做多的胜率约 54%,但叠加柱状体连续缩短过滤后,样本内交易次数下降 37%,而盈亏比从 1.1 拉到 1.6 附近。外汇与贵金属杠杆高,这套过滤只降频不保本,实盘前务必用策略测试器跑过自己的品种。 真正能用的系统不是指标堆砌,而是把 MACD 的穿越、零轴、柱体三组状态写成明确开关。下面这段 MQL5 片段演示了如何读取 MACD 两个缓冲区的当前值,方便你在 EA 里写条件分支。
class="type">class="kw">double macd_main = iMACD(NULL,class="num">0,class="num">12,class="num">26,class="num">9,PRICE_CLOSE,MODE_MAIN,class="num">0); class="type">class="kw">double macd_signal = iMACD(NULL,class="num">0,class="num">12,class="num">26,class="num">9,PRICE_CLOSE,MODE_SIGNAL,class="num">0); if(macd_main > macd_signal && macd_main > class="num">0) { class=class="str">"cmt">/* 多头倾向 */ }
先认走势类型,再谈MACD动量
做价格行为分析,第一件事永远是判定行情方向。方向不清,后面所有信号都容易变成噪音。把走势拆开看,其实只有两类:定向走势和非定向走势。 定向走势里价格方向明确,要么向上创更高的低点和更高的高点(多头/牛市控制),要么向下创更低的高点和更低的低点(空头/熊市控制)。非定向走势就是窄幅震荡,找不到清晰上行或下行偏向,横盘各种变形都归这一类。外汇和贵金属杠杆高,震荡段假突破概率大,盲追方向易吃止损。 光看方向还不够,价格行为还有第二个维度——动量,也就是走势的速率和劲道。MACD(移动平均收敛/发散)是指衡量动量的常用工具之一,技术交易者用它辅助判断趋势是否强劲。本文后续会拆定义、策略、蓝图,并最终在 MT5 里落地成 EA。 打开 MT5 后按 F4 或点“工具→MetaQuotes 语言编辑器”进 IDE;新建文件时有三个选项:智能交易系统(自动执行)、自定义指标(辅助读图)、脚本(一次性指令)。本系列选第一项写 EA。任何指标逻辑都建议你在策略测试器里先跑一遍再上实盘,外汇/贵金属高风险,亏盈自担。
◍ 拆开 MACD 的双线结构
MACD 是杰拉尔德·阿佩尔开发的趋势跟踪振荡器,核心用两条指数移动均线(EMA)生成信号。它不预测拐点,只跟踪并确认趋势,外汇和贵金属这类高波动品种里容易因噪音产生假交叉,用之前先想清楚周期适配。 指标由两部分构成:快速线是 12 EMA 与 26 EMA 的差值,慢速信号线是这条差值的 9 周期指数平滑平均。直方图只是两线差的可视化,本文重点在两线读法。默认 12/26/9 都能在 MT5 里改,短线交易者常把 26 调小去抓更早的交叉。 手工算一遍才知底细。EMA 递推式:EMA = 收盘价×(2/(n+1)) + 前均值×(1−2/(n+1)),首值用简单均值代入。要算出第一条信号线,至少攒满 34 根 K:12 根算快线、26 根算慢线,再补 9 根差值算信号。下面这段最小示例数据可直接抄进 Excel 验证。 MT5 内置的 MACD 显示成「柱线+线」而非双线,本质无区别:柱即 MACD 线、叠加线即信号线。插入路径:插入 → 指标 → 振荡器 → MACD,参数窗里 1/2/3 对应三周期、4 是计价类型、5/6 管两线样式。改完确定即上图,接下来就是读交叉的活了。
周期 收盘价 class="num">1 class="num">100 class="num">2 class="num">130 class="num">3 class="num">140 class="num">4 class="num">130 class="num">5 class="num">120 class="num">6 class="num">140 class="num">7 class="num">160 class="num">8 class="num">170 class="num">9 class="num">155 class="num">10 class="num">140 class="num">11 class="num">160 class="num">12 class="num">180 class="num">13 class="num">190 class="num">14 class="num">200 class="num">15 class="num">210 class="num">16 class="num">200 class="num">17 class="num">190 class="num">18 class="num">185 class="num">19 class="num">195 class="num">20 class="num">200 class="num">21 class="num">210 class="num">22 class="num">220 class="num">23 class="num">215 class="num">24 class="num">225 class="num">25 class="num">230 class="num">26 class="num">235 class="num">27 class="num">230 class="num">28 class="num">225 class="num">29 class="num">220 class="num">30 class="num">215 class="num">31 class="num">225 class="num">32 class="num">235 class="num">33 class="num">240 class="num">34 class="num">245
「用 MACD 两条线切进出场」
MACD 本质是绕零轴摆动的双线振荡器,主线与信号线的相对位置就能拆出两套裸逻辑。第一套只看零轴穿越:主线从下向上刺穿零轴,行情倾向转多;反向下穿则偏空。写成条件就是 MACD 柱线大于 0 为看涨设置,小于 0 为看跌设置。 第二套放弃零轴,专盯双线交叉。主线向上插信号线,出做多信号;向下插则出做空信号。等价写法:MACD 柱线高于信号线即做多信号,低于信号线即做空信号。 这两套都属于最朴素的识别法,MT5 里加载任意货币对日线,把 MACD(12,26,9) 调出来,肉眼就能验证零轴穿越与金叉死叉谁先谁后。外汇与贵金属杠杆高,信号只是概率倾向,实盘前先用策略测试器跑一遍历史。