多周期趋势共振指标
日线/4H/1H 的 EMA7-14-34-65 排列一致时,右上角显示多头绿、空头红、震荡灰
MT5 真机运行截图 · 服务器把编译好的 EX5 挂到黄金 H1 图表上截的,你装上去看到的就是这个样子
#property copyright "XAUOF 指标工坊"
#property version "1.01"
#property description "日线 / 4小时 / 1小时 四条 EMA 多周期共振状态面板"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//--- 本指标只做状态面板,不画线,用一个空缓冲区占位
#property indicator_type1 DRAW_NONE
#property indicator_label1 "Resonance"
//==================== 可调参数 ====================
input int EMA_Fast = 7; // EMA 快线周期(默认 7,数值越小反应越快)
input int EMA_Mid1 = 14; // EMA 次快线周期(默认 14)
input int EMA_Mid2 = 34; // EMA 中线周期(默认 34)
input int EMA_Slow = 65; // EMA 慢线周期(默认 65,代表大趋势)
input int BoxX = 20; // 面板距图表右边缘的距离(像素,建议 10-60)
input int BoxY = 20; // 面板距图表上边缘的距离(像素,建议 20-80)
input int BoxWidth = 190; // 面板宽度(像素,字大就调大)
input int BoxHeight = 64; // 面板高度(像素,建议 60-90)
input int FontSize = 12; // 面板文字大小(建议 11-16)
input bool ShowAlert = true; // 共振状态发生变化时是否弹窗提醒
//==================== 内部变量 ====================
double DummyBuffer[]; // 占位缓冲区(不绘图)
//--- 三个周期 × 四条均线的句柄,索引 0=EMA7 1=EMA14 2=EMA34 3=EMA65
int hD1[4], hH4[4], hH1[4];
//--- 三个周期当前的均线数值
double emaD1[4], emaH4[4], emaH1[4];
string lastSignal = ""; // 上一次的共振状态,用于判断是否变化
已显示前 35 行,共 254 行。完整源码仅对 xauusd.team VIP 开放查看与复制。
开通 VIP 查看完整源码作品说明
OBJPROP_BORDER_SIZE 在 MQL5 不存在,矩形标签的边框粗细用 OBJPROP_WIDTH,OBJPROP_BORDER_TYPE 的值必须是 BORDER_FLAT。另外顺手修了三处会导致显示异常的问题:不能对 SetIndexBuffer 绑定的缓冲区调 ArrayResize;CORNER_RIGHT_UPPER 下 XDISTANCE 本身就是离右边的距离,不用减图表宽度;MT5 的 OBJ_LABEL 不支持 \n,改成两行独立标签。
使用说明
- 把
MultiTimeframeResonance.mq5放进MQL5/Indicators,在 MetaEditor 按 F7 编译,然后从导航器拖到图表上。 - 第一次加载请先在 MT5 里把该品种的 D1、H4、H1 历史数据下载完整(切换一遍周期即可),否则面板会短暂空白。
- 面板位置用
BoxX/BoxY调,字太小就加大FontSize并同步放大BoxWidth/BoxHeight。 - 绿色「多头共振」= 三个周期的 EMA7>14>34>65;红色「空头共振」= 三个周期全部反向排列。
- 灰色「震荡」时第二行会显示
日↑ 4H↓ 1H-这样的明细,可以看出哪个周期还没跟上。 - 共振状态切换时弹窗提醒,不需要可把
ShowAlert设为 false。 - 本指标只给方向,不画入场箭头、不带止损止盈,实际交易请自行配合回调入场点和风控。
- 面板读的是未收盘 K 线的均线值,状态可能在收盘前反复跳动,建议以 K 线收盘后的状态为准。
✅ 自动修复后已通过服务器编译校验(共修 1 轮)。
AI 解读根据源码逐行分析写成,供参考,以实际运行为准
这是什么
这是一个挂在图表右上角的状态面板,同时监控日线、4小时、1小时三个周期的 EMA 排列。当三个周期的 7、14、34、65 四条均线全部多头排列(7>14>34>65)时显示绿色"多头共振",全部空头排列时显示红色"空头共振",方向不一致时显示灰色"震荡"并标注各周期状态。适合需要多周期确认才入场的趋势交易者。
逻辑原理
指标为三个周期(日线、4小时、1小时)各创建四个 EMA 句柄(周期分别为参数里设置的快线、次快线、中线、慢线,默认 7/14/34/65),每个 tick 读取最新一根 K 线上的均线值。判断每个周期是否多头排列(EMA7 > EMA14 > EMA34 > EMA65)或空头排列(EMA7 < EMA14 < EMA34 < EMA65)。只有三个周期全部多头排列才算多头共振,全部空头排列才算空头共振,否则算震荡。
面板背景矩形用 OBJ_RECTANGLE_LABEL 绘制,文字用两个 OBJ_LABEL 分两行显示。多头共振时背景绿色,空头共振时背景暗红色,震荡时灰色。震荡状态下第二行会显示三个周期各自的方向(↑ 向上、↓ 向下、- 混乱),方便判断哪个周期还没跟上。
状态从上次记录切换到新状态时,如果 ShowAlert 为 true 会弹窗提醒。读的是当前未收盘 K 线的均线值,所以收盘前可能反复跳动。
参数说明
- EMA_Fast(默认 7):快线周期,数值越小对价格反应越快,调小会让共振更灵敏但假信号也更多
- EMA_Mid1(默认 14):次快线周期,介于快线和中线之间
- EMA_Mid2(默认 34):中线周期,代表中期趋势
- EMA_Slow(默认 65):慢线周期,代表大趋势,数值越大越平滑但滞后也越严重
- BoxX(默认 20):面板距图表右边缘的像素距离,建议 10-60
- BoxY(默认 20):面板距图表上边缘的像素距离,建议 20-80
- BoxWidth(默认 190):面板宽度,字体大就同步调大
- BoxHeight(默认 64):面板高度,建议 60-90
- FontSize(默认 12):文字大小,建议 11-16,调大后需同步放大面板宽高
- ShowAlert(默认 true):共振状态切换时是否弹窗提醒,不需要改成 false
怎么用
把 .mq5 文件放进 MT5 数据文件夹的 MQL5/Indicators 目录,在 MetaEditor 按 F7 编译通过后,从导航器窗口拖到图表上即可。第一次使用前务必在 MT5 里把该品种的日线、4小时、1小时历史数据下载完整(切换一遍周期让 MT5 自动下载即可),否则面板会短暂空白或均线句柄创建失败。
面板固定在图表右上角,共振时背景变色并显示状态文字。绿色表示三个周期都是多头排列,可以找回调做多;红色表示都是空头排列,可以找反弹做空;灰色表示方向不一致,不建议按趋势方向开仓。面板不画箭头、不提示具体入场点,交易者需自行结合价格行为、支撑阻力或其他指标确定入场时机。
适用场景
适合波动较大、趋势明显的品种,例如黄金(XAUUSD)、原油、主要货币对的日线或 4 小时图。多周期共振后沿大周期方向在小周期回调入场,可以提高胜率并减少逆势单。默认参数(7/14/34/65)偏向中长线趋势,适合 H4 及以上周期;如果用在 M15、M30 等小周期,建议把四条均线周期同步缩小(例如 5/10/20/40),否则均线会过于平滑导致信号严重滞后。
不适合窄幅震荡、频繁假突破的品种或时段(例如亚洲盘的欧系货币对),因为均线本身就滞后,震荡行情下三个周期很难同时排列整齐,大部分时间会显示灰色,参考价值有限。也不适合重大消息发布前后,因为价格跳空或急速反转时均线来不及转向。
风险提示
均线是滞后指标,共振信号出现时趋势往往已经走了一段,如果直接追单可能买在阶段高点或卖在低点。建议等共振出现后在小周期找回调或反弹的二次入场机会,而不是看到绿色就直接市价做多。
代码读取的是当前未收盘 K 线的均线值,K 线收盘前价格波动会导致均线值和面板状态反复变化,尤其是在 H1、H4 K 线即将收盘的几分钟。建议以 K 线收盘后的状态为准,避免在收盘前几分钟看到颜色变化就急着开仓。
弹窗提醒只在状态切换瞬间触发一次,如果当时不在电脑前就会错过。代码里没有历史信号记录功能,无法回测过去某个时刻是什么状态。面板也没有做多周期数据同步失败的容错处理,如果某个周期的历史数据缺失或网络卡顿导致 CopyBuffer 失败,面板会保持上一次的状态不变,可能与实际行情脱节。
指标本身不包含止损止盈逻辑,也不限制仓位和风险敞口。交易者必须自行设置止损、控制单笔风险在账户的 1-2% 以内,并根据账户规模和品种波动率调整手数。
常见问题
- 这个指标会重绘吗
- 不会。指标读取的是已经计算好的 EMA 值,不会回头修改历史 K 线上的状态。但当前未收盘 K 线的状态会随价格波动实时变化,建议以 K 线收盘后为准。
- 可以用在 XAUUSD 以外的品种吗
- 可以。代码里没有限制品种,任何 MT5 支持的品种都能用。但建议选波动大、趋势明显的品种(黄金、原油、主要货币对),窄幅震荡的品种大部分时间会显示灰色。
- MT4 能用吗
- 不能。这是 MQL5 代码,MT4 不支持。MT4 需要用 MQL4 重写,函数名和对象属性都不一样。
- 参数默认值适合什么周期
- 默认的 7/14/34/65 适合 H4 和日线级别的中长线趋势交易。如果用在 M15、M30 等小周期,建议把四条均线周期同步缩小(例如 5/10/20/40),否则信号会严重滞后。
- 为什么面板一直显示空白或灰色
- 首次加载时需要确保日线、4小时、1小时的历史数据已下载完整,否则均线句柄无法计算。切换一遍这三个周期让 MT5 自动下载数据即可。如果数据完整但仍显示灰色,说明三个周期的均线排列方向不一致,这是正常的震荡状态。
Multi-Timeframe EMA Resonance Panel for MT5
Displays bullish (green), bearish (red), or neutral (gray) signal in the top-right corner when EMA7-14-34-65 alignment across D1, H4, and H1 timeframes matches. Alerts on resonance state changes.
A short source preview is shown above for visitors; full source, copy and compiled EX5 files are available to VIP members.
评论
还没有人评论,来抢个沙发。