在 MQL5 市场获取: MACD Intraday Trend PRO
风险提示。 交易存在亏损风险。本指标在单独窗口中衡量价格的动量;它不预测市场,不下单交易,也不保证任何结果。请结合您自己的分析和风险管理使用,并先在模拟账户上进行测试。

MACD Intraday Trend PRO 是一款受经典 MACD 启发、专为日内交易调校的日内动量指标。它在单独窗口中绘制四色柱状图和一条信号线,用于显示日内行情何时增强、何时放缓以及何时转向。PRO 版本增加了 Detection Speed 设置、六个可配置的警报以及供智能交易系统(EA)使用的缓冲区。所有警报和所有事件缓冲区均在已收盘的K线上计算。它适用于任何交易品种、任何经纪商和任何时间周期,支持K线图和 Renko 图表。
1. 安装与首次启动
- 在 MQL5 市场购买或租用本指标,并在终端的 Market 选项卡中安装(Toolbox → Market → Purchased → Install)。
- 打开一个图表,从导航器(Indicators → Market)中将 MACD Intraday Trend PRO 拖到图表上。
- 保留默认输入参数或进行调整(第 8 节),然后点击 OK。
指标会在价格图表下方的独立窗口中打开。该窗口名称后面显示柱状图(MACD)和 SIGNAL 线的当前值。所用价格在 Parameters 选项卡的 Apply to 中选择(默认 Close)。
指标需要一定的历史数据才能显示数值:图表左侧最初的若干根K线属于预热期;在历史数据很少的图表上,窗口会保持空白,直到有更多K线可用。请在图表上保留至少几百根K线的历史数据(工具 → 选项 → 图表 → 图表中最大柱数)。
2. 指标窗口图例

| 指标窗口中的元素 | 含义 |
|---|---|
| 深绿柱 | 看涨动量正在增强。 |
| 浅绿柱 | 看涨动量正在放缓(上涨行情中的回调)。 |
| 深红柱 | 看跌动量正在增强。 |
| 浅红柱 | 看跌动量正在放缓(下跌行情中的反弹)。 |
| 零轴上方 / 下方的柱 | 柱状图为正 / 为负。 |
| 线的绿色部分 | 信号线上升。 |
| 线的红色部分 | 信号线下降。 |
| 线的黑色部分 | 信号线与前一根K线相比没有变化(少见)。在黑色背景下,请在 Colors 选项卡中更改此颜色。 |
| 窗口名称后的数值 | 鼠标所在K线或最后一根K线的柱状图(MACD)和 SIGNAL 值。同样的两个值也显示在数据窗口(Ctrl+D)中。 |
所有颜色都可以在 Colors 选项卡中更改:HISTOGRAM COLORS 的四种颜色(依次为深绿、深红、浅绿、浅红)和 SIGNAL 的三种颜色(上升、下降、不变)。本指标不在价格图表上绘制任何对象。
3. 数值刻度
数值的刻度取决于各交易品种的价格刻度(货币对上数值很小,指数上则大得多)。请关注符号、方向和颜色,而不是绝对值,也不要在不同品种之间比较数值水平。
4. 解读柱状图

- 位置(零轴上方 / 下方)。 在零轴上方时动量为正;在零轴下方时动量为负。穿越零轴表示动量已经转换方向。
- 颜色组。 绿色柱(深或浅)表示看涨动量,红色柱(深或浅)表示看跌动量。颜色组的变化是新一轮动量波动最早的颜色信号。
- 深色或浅色。 深色柱表示动量仍在扩张;浅色柱表示动量正在减弱。在一长串深色柱之后出现一系列浅色柱,通常标志着推动结束,或在延续之前的暂停。
- 背离。 当价格创出更高的高点而柱状图形成更低的高点时(或价格创出更低的低点而柱状图形成更高的低点时),行情正在失去动量。本指标不会自动检测背离;平滑的柱状图只是让背离更容易被看出。

正在形成的K线在每个报价(tick)时都会重新计算,与任何 MACD 一样:其高度和颜色在收盘前可能会变化。已收盘的K线之后不会再被更改。
5. 信号线与 Detection Speed

Detection Speed 设置信号线跟随柱状图的紧密程度,共五种模式:FASTEST(默认)、FAST、NORMAL、SLOW 和 SLOWEST。
- 较快的设置紧跟柱状图:颜色变化和交叉出现得更早,但次数更多。
- 较慢的设置则带来更少、更晚、更平滑的变化。
- Detection Speed 会改变信号线、颜色以及所有警报,但不会改变柱状图本身。
6. 事件
以下六个事件是六个警报(第 7 节)和事件缓冲区 12-17(第 9 节)背后的条件。它们只在已收盘的K线上计算:加载指标时对历史中每根已收盘的K线进行计算,之后在每根K线收盘、下一根K线开盘时进行计算。
6.1 MACD 回调至信号线(警报 1)

上涨趋势回调(+1)/ 下跌趋势回调(−1)。
新一轮动量波动已经开始(信号线正在转向,但尚未穿越零轴),柱状图向信号线做一次小幅回调,然后沿同一方向继续运行。

6.2 MACD 穿越信号线(警报 2)
当柱状图在前一根K线位于信号线上或下方之后收于信号线上方时为 +1;当它在位于信号线上或上方之后收于信号线下方时为 −1。

6.3 MACD 穿越零轴(警报 3)
当柱状图在位于零轴或其下方之后收于零轴上方时为 +1;当它在位于零轴或其上方之后收于零轴下方时为 −1。
6.4 信号线穿越零轴(警报 4)
同样的规则应用于信号线。它出现在柱状图穿越零轴之后的几根K线,具体多少取决于 Detection Speed。

6.5 MACD 改变趋势颜色(警报 5)
当柱状图从红色柱(深或浅)变为绿色柱(深或浅)时为 +1;从绿色变为红色时为 −1。
6.6 信号线改变趋势颜色(警报 6)
当信号线从下降(红色)转为上升(绿色)时为 +1;从上升转为下降时为 −1。两者之间的持平(黑色)K线不算作变化。
7. 警报
| 输入参数 | 触发条件 | 消息 |
|---|---|---|
| MACD Pulback | 上涨 / 下跌趋势回调(6.1) | Pullback UP TREND! / Pullback DOWN TREND! |
| MACD Cross Signal | 柱状图穿越信号线(6.2) | MACD Cross UP Signal Line! / MACD Cross DOWN Signal Line! |
| MACD Cross Line 0 | 柱状图穿越零轴(6.3) | MACD Cross UP Level 0! / MACD Cross DOWN Level 0! |
| Signal Cross Line 0 | 信号线穿越零轴(6.4) | Signal Cross UP Level 0! / Signal Cross DOWN Level 0! |
| MACD Change Trend Color | 柱状图改变颜色组(6.5) | MACD change to UP TREND! / MACD change to DOWN TREND! |
| Signal Change Trend Color | 信号线改变颜色(6.6) | Signal change to UP TREND! / Signal change to DOWN TREND! |
每个警报可设为 NONE(关闭)、POPUP、SOUND、NOTIFICATION(智能手机)、POPUP_SOUND、NOTIFICATION_SOUND、POPUP_NOTIFICATION 或 POP_SOUND_NOTIFICATION。所有警报默认关闭。每个警报都有自己的 Sound Type,可从终端的 13 种声音中选择:alert(默认)、alert2、connect、disconnect、email、expert、news、ok、request、stops、tick、timeout、wait。

消息文本包含产品名称、交易品种和时间周期,例如 MACD Intraday Trend PRO: EURUSD | PERIOD_M15 | MACD Cross UP Signal Line! 。警报在事件之后下一根K线开盘时发送,绝不会在K线进行中发送。每种警报每根K线最多触发一次;多种警报可以在同一根K线上触发。加载指标时,或终端重新计算指标时,不会为过去的K线发送警报。如果两次更新之间有多根K线收盘(例如重新连接之后),则会为其中每根K线发送警报,每根K线一次。声音会排队播放,大约每 1.5 秒播放一个,以免连续的声音重叠;等待期间终端不会被阻塞。推送通知需要在 工具 → 选项 → 通知 中设置 MetaQuotes ID。没有电子邮件选项。策略测试器中不显示弹窗、不播放声音也不发送通知。
8. 输入参数

TREND CONFIG
| 输入参数 | 默认值 | 说明 |
|---|---|---|
| Detection Speed | FASTEST | 信号线的反应速度:FASTEST、FAST、NORMAL、SLOW、SLOWEST(第 5 节)。 |
ALERT 1 CONFIG
| 输入参数 | 默认值 | 说明 |
|---|---|---|
| MACD Pulback | NONE | 回调事件的警报模式(6.1)。 |
| MACD Pulback Sound Type | alert | 带声音的模式所使用的声音。 |
ALERT 2 CONFIG
| 输入参数 | 默认值 | 说明 |
|---|---|---|
| MACD Cross Signal | NONE | 柱状图 / 信号线交叉的警报模式(6.2)。 |
| MACD Cross Signal Sound Type | alert | 带声音的模式所使用的声音。 |
ALERT 3 CONFIG
| 输入参数 | 默认值 | 说明 |
|---|---|---|
| MACD Cross Line 0 | NONE | 柱状图穿越零轴的警报模式(6.3)。 |
| MACD Cross Line 0 Sound Type | alert | 带声音的模式所使用的声音。 |
ALERT 4 CONFIG
| 输入参数 | 默认值 | 说明 |
|---|---|---|
| Signal Cross Line 0 | NONE | 信号线穿越零轴的警报模式(6.4)。 |
| Signal Cross Line 0 Sound Type | alert | 带声音的模式所使用的声音。 |
ALERT 5 CONFIG
| 输入参数 | 默认值 | 说明 |
|---|---|---|
| MACD Change Trend Color | NONE | 柱状图颜色变化的警报模式(6.5)。 |
| MACD Change Trend Color Sound Type | alert | 带声音的模式所使用的声音。 |
ALERT 6 CONFIG
| 输入参数 | 默认值 | 说明 |
|---|---|---|
| Signal Change Trend Color | NONE | 信号线颜色变化的警报模式(6.6)。 |
| Signal Change Trend Color Sound Type | alert | 带声音的模式所使用的声音。 |
Parameters 选项卡 — Apply to(默认 Close):指标所使用的价格。
9. 供智能交易系统 / 仪表盘使用的缓冲区
指标通过缓冲区 0-17 提供其数值,所有缓冲区均可通过 iCustom + CopyBuffer 读取。缓冲区 5、6 和 12-17 是供智能交易系统使用的接口。即使警报关闭,事件缓冲区也会被填充。数据窗口中只显示 MACD 和 SIGNAL;其他缓冲区通过代码读取。
| 缓冲区 | 名称 | 数值 | 时机 | 空值 |
|---|---|---|---|---|
| 5 | MACD(柱状图) | 柱状图数值 | 每根K线;正在形成的K线随每个报价变化 | — |
| 6 | 信号线 | 信号线数值 | 同缓冲区 5 | — |
| 12 | 警报 1 — MACD 回调 | +1 上涨趋势回调, -1 下跌趋势回调 | 写在收盘完成该事件的K线上,适用于历史中每根已收盘的K线,之后在下一根K线开盘时写入;正在形成的K线始终为 0 | 0 |
| 13 | 警报 2 — MACD 穿越信号线 | +1 向上穿越, -1 向下穿越 | 同缓冲区 12 | 0 |
| 14 | 警报 3 — MACD 穿越零轴 | +1 向上穿越, -1 向下穿越 | 同缓冲区 12 | 0 |
| 15 | 警报 4 — 信号线穿越零轴 | +1 向上穿越, -1 向下穿越 | 同缓冲区 12 | 0 |
| 16 | 警报 5 — MACD 改变趋势颜色 | +1 变为绿色, -1 变为红色 | 同缓冲区 12 | 0 |
| 17 | 警报 6 — 信号线改变趋势颜色 | +1 转为上升, -1 转为下降 | 同缓冲区 12 | 0 |
其他可读取的缓冲区:4 为柱状图颜色( 0 深绿, 1 深红, 2 浅绿, 3 浅红),7 为信号线颜色( 0 上升, 1 下降, 2 不变)。缓冲区 0-3 和 8-11 用于绘图和内部用途。
事件缓冲区与历史数据。 缓冲区 12-17 针对每根已收盘的K线计算,包括加载指标时已存在于历史中的K线;当终端重新计算整个指标时(例如下载历史数据之后)会重新填充。如果两次更新之间有多根K线收盘,它们都会被填充。因此,EA 可以直接读取过去的事件,例如缓冲区 13 的最近 100 个值。实盘决策时,请在新K线的第一个报价上读取 shift 1。在策略测试器中,事件在测试过程中逐根K线生成。
预热。 在历史数据过少的图表上, BarsCalculated() 保持为 0 ;请等待其大于零。
加载。 市场版本安装在 MQL5\Indicators\Market\ 中;请在导航器中确认准确的文件名。名称后不带参数时使用默认输入参数。如需更改输入参数,请按第 8 节的顺序传递。每个 input group 标题也是一个参数:请在其位置传递空字符串 "" ,否则后面的所有值都会错位。末尾省略的输入参数保持默认值。Detection Speed 以其数字代码传递(FASTEST 0 、FAST 1 、NORMAL 2 、SLOW 3 、SLOWEST 4 ),警报模式为 0 (NONE)到 7 (POP_SOUND_NOTIFICATION),声音为 0 (alert)到 12 (wait)。
```mql5 // 每个 input group 对应一个 "" 参数;Detection Speed 代码:0-4 int h = iCustom(_Symbol, PERIOD_M15, "Market\MACD Intraday Trend PRO", "", 2, // TREND CONFIG: Detection Speed NORMAL "", 0, 0, // ALERT 1 CONFIG: 模式 NONE,声音 alert "", 0, 0, // ALERT 2 CONFIG "", 0, 0, // ALERT 3 CONFIG "", 0, 0, // ALERT 4 CONFIG "", 0, 0, // ALERT 5 CONFIG "", 0, 0); // ALERT 6 CONFIG if (h == INVALID_HANDLE) return(INIT_FAILED);
// 简写形式 iCustom(..., "", 8) 结果相同:省略的输入参数保持默认值
double macd[1], sig[1], cross[1], color5[1]; if (BarsCalculated(h) > 0) { if (CopyBuffer(h, 5, 1, 1, macd) == 1 && CopyBuffer(h, 6, 1, 1, sig) == 1) Print("histogram ", macd[0], " signal ", sig[0]); if (CopyBuffer(h, 13, 1, 1, cross) == 1 && cross[0] != 0.0) Print("MACD crossed the signal line ", (int)cross[0]); // +1 / -1 if (CopyBuffer(h, 16, 1, 1, color5) == 1 && color5[0] != 0.0) Print("histogram colour changed ", (int)color5[0]); } ```
注意:通过 iCustom 创建的指标在其警报模式不为 NONE 时会发送自己的警报——在 EA 调用中请保持关闭。首次读取前请等待 BarsCalculated(h) > 0 (历史数据可能仍在加载)。Detection Speed 只能使用上述五个代码。
10. Renko 图表

MetaTrader 5 没有内置的 Renko 图表;Renko 图表由 Renko 工具以自定义交易品种的形式生成。像在其他图表上一样将指标加载到该图表即可。
- 每块砖就是一根K线,因此相同幅度的行情在任何市场速度下都会得到相同的读数。
- 颜色、交叉和警报在砖块收盘时计算,也就是下一块砖出现时。
- 如果 Renko 工具在一次更新中添加了多块砖,则每块已收盘砖块的事件都会被填充,并发送相应警报。如果它重建了历史数据,事件缓冲区会针对所有砖块重新计算,但不会为过去的砖块发送警报。
- 砖块大小会改变指标的节奏:使用小砖块时,建议从较慢的 Detection Speed 开始;使用大砖块时,默认值通常就足够了。
11. 免费版与 PRO 版
| MACD Intraday Trend(免费) | MACD Intraday Trend PRO | |
|---|---|---|
| 日内 MACD 柱状图和信号线 | 有 | 有 |
| Detection Speed(5 种模式) | — | 有 |
| 6 个可配置警报(弹窗、声音、推送) | — | 有 |
| 供智能交易系统使用的事件缓冲区(12-17) | — | 有 |
| MetaTrader 4 版本 | MACD Intraday Trend MT4 | MACD Intraday Trend PRO MT4 |
免费版是了解柱状图在您的交易品种上如何解读的好方法。当您希望用警报代替盯盘、调整信号线或在智能交易系统中使用事件时,可以升级到 PRO 版。
12. 使用技巧
- 日内交易: M5 到 H1 是常用的时间周期。在第二个图表上从更高的时间周期(例如 H1)判断方向,并在 M5 或 M15 上跟踪颜色变化。
- 零轴: 在 Levels 选项卡中添加 0 水平线,以便清楚地看到零轴穿越。
- 深色背景: 更改 SIGNAL 的第三种颜色(默认黑色),使信号线的持平段保持可见。
- 减少警报: 使用较慢的 Detection Speed,或只开启零轴穿越(警报 3 和 4),它们是出现频率最低的事件。
- 确认: 等待同一方向上的两个事件——例如柱状图颜色变化(警报 5)和信号线交叉(警报 2)——与只依据单个事件操作相比,读数更少、过滤更充分。
- 两种速度: 指标不绘制任何对象,因此可以在同一图表上运行两个副本,例如在两个窗口中分别使用 FASTEST 和 SLOW。只在其中一个副本上启用警报,以免重复。
13. 常见问题与故障排除
- 会重绘吗? 已收盘的K线之后不会被更改。正在形成的K线与任何 MACD 一样随每个报价变动,其颜色在收盘前可能会变化;警报和事件缓冲区只使用已收盘的K线。
- 它能预测价格走向吗? 不能。它描述的是过去价格的动量。颜色变化或交叉之后,行情也可能向相反方向运行。
- 为什么不同品种之间的数值差别这么大? 它们取决于各品种的价格刻度(第 3 节)。
- 窗口左侧看起来不一样。 图表最初的若干根K线是预热期。
- 窗口是空的。 图表上的历史数据过少;请加载更多K线(工具 → 选项 → 图表 → 图表中最大柱数)。
- 没有警报。 所有警报默认均为 NONE。警报在下一根K线开盘时到达,而不是在K线进行中。推送通知需要 MetaQuotes ID。
- EA 能读取过去的事件吗? 能。缓冲区 12-17 针对历史中每根已收盘的K线计算(第 9 节)。
- 信号线有断开的地方。 那是以黑色绘制的持平段;请在 Colors 选项卡中更改颜色。
- 策略测试器。 在可视化和非可视化模式下均可工作;测试器中不会发送弹窗、声音和通知。
附录 A. MetaTrader 4 版本

MACD Intraday Trend PRO MT4(MQL5 市场产品 67986,版本 2.01)基于 MT5 源代码重写:相同的行为、相同的输入参数和 Detection Speed 模式(FASTEST、FAST、NORMAL、SLOW、SLOWEST)、相同的六个警报及七种通知类型,以及相同的缓冲区编号(5 MACD,6 信号线,12-17 警报 1-6,取值 +1 / 0 / -1 )。免费的 MT4 版本为 MACD Intraday Trend MT4(产品 67981)。区别如下:
- 声音: MetaTrader 4 没有 request 声音,因此每个 Sound Type 提供 12 种声音:alert(默认)、alert2、connect、disconnect、email、expert、news、ok、stops、tick、timeout、wait。
- 安装: 在 MetaTrader 4 中打开 终端(Ctrl+T)→ Market → Purchased → Install;指标会出现在导航器的 Indicators → Market 下。
- 读取缓冲区: MQL4 每次调用读取一个值,缓冲区编号和偏移量(shift)作为最后两个参数。它们之前不传输入参数时使用默认值;如需更改输入参数,请按输入参数窗口中的顺序传递。请在导航器中确认准确的文件名。
mql4 // 缓冲区 13 = MACD 穿越信号线,shift 1 = 最后一根已收盘的K线 double cross = iCustom(NULL, 0, "Market\\MACD Intraday Trend PRO MT4", 13, 1); if (cross != 0.0) Print("MACD crossed the signal line ", (int)cross);
技术支持:请在 MQL5 上向作者发送私信。


