Camovia Tray™

Blog · 精选推荐

如何使用MQL4语言编写外汇分形指标

Camovia Tray 团队 · 2026-09-12

你是否曾盯着MetaTrader 4图表,看着价格在近期高点附近徘徊,心里琢磨:这究竟是真正的反转点,还是仅仅是市场噪音?正是这个问题,驱使众多交易者去了解分形指标——由Bill Williams提出的一种工具,用于识别市场中潜在的反转点。

然而,仅仅知道如何在图表上阅读分形只是成功的一半。真正的优势在于,你能用MQL4将它们编写到自己的智能交易系统或自定义指标中。如果你一直在寻找关于如何使用MQL4操作外汇分形指标的实用指南,那么本文将带你进入实战环节。

理解分形指标

分形指标概念简单,但含义深远。它能精确定位出暗示潜在反转的特定K线组合。在MetaTrader 4中,该指标固定半径为2,即它会寻找一根最高价(或最低价)相较于左右各两根K线都更高(或更低)的K线。

你可以把它想象成一座由五根K线组成的小山。如果出现一个峰值,中间K线的最高价高于前两根和后两根K线的最高价,就形成了“上分形”(看跌信号)。反之,如果出现一个谷底,中间K线的最低价低于其相邻K线的最低价,就形成了“下分形”(看涨信号)。

在MQL4代码中使用iFractals函数

要在MQL4中以编程方式使用分形,你需要依赖一个核心函数:iFractals()。该函数直接从图表数据中提取指标值。

其结构比你想象的要简单:

double iFractals(
   string symbol,      // 品种名称(NULL表示当前品种)
   int timeframe,      // 时间周期(0表示当前周期)
   int mode,           // MODE_UPPER 或 MODE_LOWER
   int shift           // K线索引(0表示当前K线)
);

参数详解

首先,你需要指定要操作的品种和时间周期。如果你正在为当前活动图表编写智能交易系统,传入 NULL 作为品种、0 作为时间周期即可。

mode 参数是识别分形类型的关键:

  • MODE_UPPER 用于检测卖出的上分形(看涨峰值)
  • MODE_LOWER 用于检测买入的下分形(看跌谷底)

当某根K线上存在分形时,iFractals() 会返回该分形的价格水平(MODE_UPPER返回最高价,MODE_LOWER返回最低价);如果不存在分形,则返回 0

简单实例

假设你想检测上一根已完成的K线是否形成了上分形,代码大致如下:

double fractalValue = iFractals(NULL, 0, MODE_UPPER, 2);

if(fractalValue > 0) {
   // 在偏移为2的K线上存在上分形
   // 你可以在此处添加逻辑:避免买入,或考虑卖出
}

许多交易者会在循环中使用该函数来扫描最近的分形。你可以遍历最近若干根K线以查找最新的分形,或者检查不同时间周期上多个分形是否重合——即多周期共振。

常见陷阱及规避方法

关于分形,有一点需要特别注意:它存在重绘问题。一个正式的分形只有在“右侧”K线完成后才能被确认。虽然内置的 iFractals() 函数能正确处理历史数据,但请记住,在当前未完成的K线上,信号并非最终结果。一些自定义指标会添加非重绘确认逻辑,以避免在实时交易中出现虚假信号。

Camovia Tray 在工作流程中的作用

你已经用MQL4构建了一套扎实的分形检测逻辑,正在回测、调参,甚至将其部署为智能交易系统。但有一个实际挑战常常被忽略:你的工作流程。

当你全神贯注地在MetaEditor和MetaTrader中编码和测试时,终端窗口必须保持打开状态。你需要查看图表、监控日志、观察EA的运行情况。但当你需要暂时离开、查看其他系统,或者只是想整理桌面时,关闭MT4就意味着失去实时感知能力。而让MT4一直敞开着放在桌面上,既不便利,也可能缺乏私密性。

这时,Camovia Tray 提供了一个简单的解决方案。它能将你的MT4/MT5终端变成一个系统托盘工具。你可以将整个MT4窗口完全隐藏,而不必让它占据屏幕空间或显示在任务栏中。

当你的EA正在运行,而你又想在不打开完整MT4界面的情况下,关注最新价格走势或持仓情况时,只需将鼠标悬停在Camovia Tray图标上。它会显示你所选品种的实时报价。如果你运行的是基于分形的EA,你可以直接从托盘中查看是否有新的分形触发了交易,并监控你的持仓情况,包括当前的盈亏状况概览。

这些数据直接从你的本地终端读取,且完全保存在你的计算机上,无需经过任何外部服务器,从而确保你的隐私安全。这是一种实用的方式,让你既能与交易环境保持连接,又能保持桌面整洁、操作低调。

总结

用MQL4编写分形指标,为你提供了一种系统化的方法来识别反转位,无需反复猜测。通过掌握 iFractals() 函数并理解其局限性,你可以构建出更稳健的智能交易系统和自定义指标。

同时请记住,在你完善代码逻辑的过程中,像Camovia Tray这样的工具能让你的日常操作更加流畅——从而让你更专注于交易本身。

MT5 / MT4 都能变成托盘工具

悬停看行情,管理持仓,一键隐藏。

下载 Camovia Tray

常见问题

需要安装 MT5/MT4 吗?需要终端一直开着吗?

需要。Camovia Tray 从你本地运行的 MT5/MT4 终端读取行情与持仓数据,所以终端需要安装、运行并处于登录状态。MT5 免 EA 直连;MT4 需挂载一次随附的桥接 EA(设置里一键复制 + 导航器双击即可,见文档)。

我的行情和持仓数据会被上传吗?

不会。行情与持仓数据 100% 从本地 MT5/MT4 终端读取,不离开你的电脑。详见隐私政策。

支持哪些系统和终端?

Windows 10 / 11,终端为 MetaTrader 5 或 MetaTrader 4(需安装并登录;MT4 需挂载一次桥接 EA)。

MT4 挂载桥接 EA 安全吗?需要开启什么?

安全。桥接 EA 是本应用随附的本地桥(CamoviaBridge),只在本机读取行情/持仓并执行平仓指令,无任何 DLL、不上传数据。平仓功能需要点亮 MT4 工具栏的「自动交易」(AutoTrading) 按钮。

热门品种交易时段速查

开盘收盘时间、周末休市与实时开闭市状态: