MetaTrader 5 / 脚本

基于相似性的市场观察符号映射脚本 - MetaTrader 5脚本

Enrique Enguix
239
(4)

本脚本是一个代码参考,旨在帮助 MetaTrader 5 开发人员和用户解决一个常见问题:配置的符号名称与经纪商提供的实际名称不匹配。

作为一名开发人员,我在开发可配置智能交易系统(EA),尤其是处理多符号策略的 EA 时遇到过这一难题。常见的情况是,用户没有 按照经纪商的约定设置符号名称,导致 EA 无法正常工作。例如,如果在 EA 设置中指定了 "EURUSD",但经纪商使用的是 "EURUSD.i "或 "EURUSD.m",那么 EA 将找不到正确的符号,无法进行交易。

该代码使用莱文斯坦距离算法 从市场观察窗口中的所有可用符号中找出与用户指定的符号最相似的符号。

虽然我不是专家,但根据我的个人经验,这个解决方案被证明是有效的,对其他开发人员来说也可能是一个有用的工具。


主要应用和用途:

  • 集成到可配置的 EA 中: 本脚本可作为集成到需要自动适应经纪商符号名称的 EA 或脚本中的参考。
  • 适应自定义经纪商: 如果经纪商为其符号使用特定名称,该方法有助于正确映射它们并避免配置错误。
  • 配置验证: 这可用作开发和测试阶段的验证工具,以确保 EA 的稳健性和适应性。
  • 教育和学习: 对于学习 MQL5 的人员,该代码展示了如何使用数组、字符串和动态函数(如计算字符串之间的距离)。


重要警告:

本代码基于我的个人经验,是我的项目中行之有效的解决方案。不过:

  • 我不是 MQL5 的专家,而且此解决方案可能不是最有效或最适合所有情况的。
  • 根据每个用户或项目的需求,可能会有更先进或特定的方法。

我邀请用户和开发人员尝试使用这些代码,根据自己的情况进行调整,如有必要,还可以研究其他可能更合适的替代方案。


集成实例:

假设您开发了一个交易 "欧元兑美元 "的 EA。在用户环境中,经纪商将该符号设置为 "EURUSD.i"。通过将此代码集成到 EA 中:

  • 用户将可以输入 "EURUSD "作为基本配置。
  • 代码将自动搜索 Market Watch 并映射正确的符号("EURUSD.i")。
  • EA 将顺利运行,无需进行精确的手动配置。



结论

该脚本不仅有助于确保 EA 在不同环境下的功能,还可作为开发更高级解决方案的起点。

虽然还有其他方法可以解决这个问题,但我希望这个实现方法能成为其他 MetaTrader 5 开发人员和用户的宝贵工具。

由MetaQuotes Ltd译自西班牙语
原代码: https://www.mql5.com/es/code/54553