TriZone Semafor Pro
- 指标
-
Ahmed Hamed Hamed Eadwan
CHINESE TRANSLATION — 中文
============================
TITLE:
MQL5 开发者与交易者 | R protocols 创始人
ABOUT:
您好,我是 Ahmed,来自阿拉伯联合酋长国的交易者和 MQL5 开发者,
R protocols 的创始人。
我自 1984 年开始编写代码,自 2006 年开始交易市场。
多年来,我为自己开发交易工具,通过真实市场经验不断完善它们。
现在,我将这些工具与 MQL5 社区分享。 - 版本: 1.0
- 激活: 5
如果您需要机构级的多层枢轴点检测,结合自动化的市场结构分析、供求重叠区域、实时图表 Dashboard 分析以及 EA 自动化集成,TriZone Semafor Pro 是 MetaTrader 5 终端的旗舰解决方案。
Pro 版本核心功能
基于独特的 3 层 ZigZag 引擎(快速周期 5,中速周期 13,慢速周期 34),TriZone Semafor Pro 通过严格的独占优先级机制(级别 3 覆盖级别 2,级别 2 覆盖级别 1)在三个独立的周期级别上绘制确认的反转点。
- ATR 自适应偏差: 基于 ATR 的动态枢轴点过滤会自动根据市场波动性进行扩展与收缩,而非固定硬性点数。同时仍保留手动固定点数模式。
- 市场结构引擎: 实时自动检测每个时间帧级别的 BOS(结构突破)和 CHoCH(性质改变),并标示 HH / HL / LH / LL 波段标签。
- 供求重叠区域 (Supply & Demand): 在多个 ZigZag 级别达成一致的位置自动绘制机构订单块区域,具备强度等级划分(L1, L2+L3, L1+L2+L3)及突破与极性反转逻辑。
- 支撑与阻力射线: 从已确认的波段高低点延伸出动态水平射线,并按结构级别分类样式。
- 独占信号优先级: 毎根 K 线永远由最高级别胜出。无堆叠、无重复计数 — 每个方向只绘制一条干净的信号箭号。
- 实时图表 Dashboard 面板: 显示当前多级别市场统计、活动信号级别、当前区域、结构事件、各级别趋势以及系统运行状态。
- 完整的通知套件: 弹窗、手机 Push 推送通知、电子邮件和声音警报 — 每个新确认的枢轴点仅触发一次。
- 100% 无重绘 (Anti-Repaint) 模式: 信号仅在设定的确认窗口关闭后发布。箭号遵循与 EA 缓冲区完全相同的严格无重绘基准。
- EA 自动化缓冲区 (Buffer 6): 提供专门的 EA 信号强度缓冲区(+1.0 = 买入,-1.0 = 卖出,0.0 = 中立),仅需单次 iCustom 调用即可无缝集成。
- 多实例安全运行: 独特的对象命名空间、碰撞防护以及自动清理图表对象和终端全局变量。
- 零外部依赖: 原生 MetaTrader 5 代码,适用于任何品种和时间帧,无需导入 DLL。
官方链接与文档
用户手册与设置指南: https://www.mql5.com/en/blogs/post/773880
MQL5 官方频道: https://www.mql5.com/en/channels/rprotocols
无重绘与 EA 契约 (Buffer 6)
Buffer 6 为自动交易 EA 提供多级别信号强度(+1.0 = 买入,-1.0 = 卖出,0.0 = 中立/冲突):
- 独占等级: Buffer 6 反映独占机制处理后的层级关系 (L3 > L2 > L1)。
- 无重绘 K 线偏移契约: 在 Anti-Repaint 开启时,在安全 K 线偏移量读取的值是最终确定的,绝不修改。精确的最小安全 K 线偏移量通过全局变量 ( TZP_<Hash8>_MinShift ) 暴露。
透明度与性能
- 回测优化: 在策略测试器进行优化期间,警报会自动关闭以保持回测高效。
- Headless 无界面模式: 在 EA 中启用 HeadlessMode = 1 可隐藏 Dashboard 视觉元素,获得极致的执行速度。
- 全局变量清理: 启动与卸载时会自动清理残留的全局变量。
如果 TriZone Semafor Pro 对您的交易有所帮助,请留下诚挚的评价与评分。感谢您的支持!
iCustom 参考表 — 输出缓冲区
| 缓冲区索引 | 信号 | 描述 |
|---|---|---|
| 0 (BufLow1) | 买入 (BUY) | 级别 1 低点价格 — 快速 ZigZag |
| 1 (BufHigh1) | 卖出 (SELL) | 级别 1 高点价格 — 快速 ZigZag |
| 2 (BufLow2) | 买入 (BUY) | 级别 2 低点价格 — 中速 ZigZag |
| 3 (BufHigh2) | 卖出 (SELL) | 级别 2 高点价格 — 中速 ZigZag |
| 4 (BufLow3) | 买入 (BUY) | 级别 3 低点价格 — 慢速 ZigZag |
| 5 (BufHigh3) | 卖出 (SELL) | 级别 3 高点价格 — 慢速 ZigZag |
| 6 (BufSignal) | 买入 / 卖出 | EA 信号强度:买入为 +1/+2/+3 (L1/L2/L3),卖出为 -1/-2/-3 (L1/L2/L3),0 = 无 |
iCustom 代码示例
文件名: "TriZone_Semafor_Pro" (请勿加 .ex5 后缀)。在 EA 内部请务必设置 HeadlessMode = 1 。
//+------------------------------------------------------------------+ //| iCustom handle — TriZone_Semafor_Pro v1.0 | //+------------------------------------------------------------------+ int g_tzsHandle = INVALID_HANDLE; int OnInit() { g_tzsHandle = iCustom( _Symbol, PERIOD_CURRENT, "TriZone_Semafor_Pro", // Level 1: Fast 5, 1, 3, 159, 159, 2, // Level 2: Medium 13, 8, 5, 108, 108, 3, // Level 3: Slow 34, 21, 12, 108, 108, 4, // Instance "EA1", 0, 1, // Anti-Repaint 1, 0, // Alerts & Dashboard 0, 0, 0, 0, 0, "alert.wav", 0, 20, 30, clrDodgerBlue, clrOrangeRed, C'20,20,30', 9 ); if(g_tzsHandle == INVALID_HANDLE) { PrintFormat("[EA] TriZone_Semafor_Pro handle failed: err=%d", GetLastError()); return INIT_FAILED; } return INIT_SUCCEEDED; } void OnTick() { int safeShift = 4; double sigBuf[1]; if(CopyBuffer(g_tzsHandle, 6, safeShift, 1, sigBuf) != 1) return; int sigValue = (int)sigBuf[0]; if(sigValue > 0) { PrintFormat("检测到买入信号!级别 %d,K线偏移量 %d", sigValue, safeShift); } else if(sigValue < 0) { PrintFormat("检测到卖出信号!级别 %d,K线偏移量 %d", MathAbs(sigValue), safeShift); } } void OnDeinit(const int reason) { if(g_tzsHandle != INVALID_HANDLE) { IndicatorRelease(g_tzsHandle); g_tzsHandle = INVALID_HANDLE; } }
通过全局变量自动检测 EA MinShift
指标通过全局变量公开其最小安全读取 K 线偏移量,以便 EA 进行自动检测:
// EA: 通过全局变量自动检测安全 K 线偏移量 int GetMinShift(string instanceID) { string hash = HashToHex8(instanceID); string gvName = "TZP_" + hash + "_MinShift"; if(GlobalVariableCheck(gvName)) return (int)GlobalVariableGet(gvName); return 4; // 默认备用值 }

