欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

用于多货币 EA 交易和指标的“MCM 控制面板” - MetaTrader 5 的 Expert

author emer | 555 人阅读 | 0 人评论 |

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

MQL5 语言的优点之一是可以使用多货币指标和 Expert Advisor。看多货币 OnTickMarketWatch 刻度事件处理程序在 MQL5 中代码库

使用脚本中提出的概念并不方便。例如,在许多事件的情况下,有可能是事件队列溢出。

这是来自的注释MQL5 参考:

客户端添加出现 事件到事件队列。所以事件是在一个接一个的过程中被处理的 按照收到的顺序。有一个例外 NewTick 事件。如果队列已经有这样的事件或者这个事件 正在处理,新的 NewTick 事件未入队。

事件队列限制在 尺寸。队列溢出时,旧事件将被删除而不进行处理 以允许接收新事件。因此,它是 推荐编写高效的事件处理程序,不推荐 使用无限循环(脚本有一个例外,它处理 仅开始事件)。

此外,有时只有在新柱出现时才需要重新计算指标值。另一种情况是,如果您需要在多货币 EA 交易中禁用某些交易品种的“即时”交易,以更改某些交易品种或其他内容的时间范围。

“其他东西”可能是外部数据。 MCM(多货币模式)控制面板就是基于这个想法。

顺便说一句,它也可以用于单一货币交易。

“MCM控制面板”(竞赛版)具有以下特点:

它具有在 EA 交易和指标中使用多货币模式所需的最少功能:

使用“MCM 控制面板”您可以添加自己的功能。详情请参阅下文。

此版本不支持保存/恢复控制面板设置。

可以通过多种方式启动“MCM 控制面板”: 

在第三种情况下,面板将加载我们的 EA 交易或指标并附加到图表上。

您的 EA 交易应具有 OnChartEvent() 事件处理程序来处理 MCM 控制面板事件。

用户界面很简单,它是作为菜单实现的。菜单的大小和颜色可以通过输入参数进行配置。

它看起来如下:

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5
 

该面板用于配置多货币 EA 交易和指标的事件。

面板的大小和位置取决于图表大小和字体大小(在输入参数中定义)。为了释放工作空间,可以最小化面板。

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5
 

可以通过更改输入参数中的字体大小来更改面板的大小(默认情况下字体大小=10):

 "MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

您可以设置任何您想要的颜色。

例如,粉红方案:

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

EMO计划:

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5
 

菜单直观,易于使用。

“MCM 控制面板”按钮包含附加功能(不包含在此版本中):

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5

使用“图表”按钮,您可以轻松更改当前交易品种和时间范围,只需选择它:

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5
 

“事件”允许您“即时”启用/禁用某些交易品种的事件(无需重新启动 EA 交易或指标)并指定所需的事件。这些事件可以在 Expert Advisor 或 Indicator 的 OnChartEvent() 函数内进行处理。交易品种菜单仅包含从“市场观察”中选择的交易品种。您可以组合任何事件,所有事件都将被处理。

例如,不必担心时间范围上交易品种新的价格变动/条形的出现,面板引擎将发送事件:

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5
  

这是“帮助”:

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5
 

专有技术及其实施

我的解决方案发布于多货币 OnTickMarketWatch 刻度事件处理程序,但该面板还有一些附加功能:

有关事件和警报的信息

面板有一个状态栏来显示事件。

MCM控制面板的安装

将存档文件 mcm_control_panel.zip 解压到客户端文件夹中。之后会出现以下文件:

接下来,编译指标、脚本和 Expert Advisor。

启动 MCM 控制面板

MCM 控制面板的推出将 iControl 面板 MCM.mq5 指标附加到任何图表。

该面板可以从 EA 交易启动,只需将“exControl panel MCM”EA 交易附加到图表即可:

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5
 

作为多货币的示例,我编写了 MultiTrend Expert Advisor。该指标根据 4 个货币对的分析绘制美元趋势:

这是代码:

//+------------------------------------------------------------------+
//|                                                   多趋势.mq5 |
//|                                            版权所有 2010,Liza |
//|                            https://www.mql5.com/ru/users/Lizar |
//+------------------------------------------------------------------+
#定义版本      “1.00 版本 2(2010 年 12 月 9 日)” 
#财产版权  “版权所有 2010,利扎尔”
#属性链接        “https://www.mql5.com/ru/users/Lizar”
#属性版本     版本
#属性描述“此 EA 交易使用 MCM 控制面板”
输入 颜色背景颜色=灰色的;        // 菜单颜色
输入 颜色字体颜色=盖恩斯伯勒;// 文字颜色
输入 颜色选择颜色=黄色的// 选定的文本颜色
输入 整数字体大小=10;        // 字体大小
#include <控制面板 MCM.mqh>//<--- 包含文件
//+------------------------------------------------------------------+
//|专家初始化函数                                   |
//+------------------------------------------------------------------+
整数 初始化时()
  {    //--- MCM 控制面板初始化。    
//--- 不需要设置颜色,如果不指定,将使用默认颜色。         InitControlPanelMCM(bg_color,font_color,select_color,font_size);//---      返回0);   
  }//+------------------------------------------------------------------+
//|专家去初始化函数                                 |
//+------------------------------------------------------------------+
空白 解初始化常量 整数原因)
  {
   DeinitControlPanelMCM();  //<--- MCM 控制面板取消初始化    }//+------------------------------------------------------------------+
//| OnChartEvent 事件处理程序。                                      |
//|有关详细信息,请参阅 MQL5 参考。                                  |
//|可与 MCM 控制面板一起使用进行多币种交易 |
//+------------------------------------------------------------------+
空白 图表事件常量 整数ID,// 事件标识符:                                                        // 如果 id-CHARTEVENT_CUSTOM==0 - 初始化事件(当 prev_calculated==0 时)                 // if id-CHARTEVENT_CUSTOM!=0 - “市场报价”窗口中的交易品种索引                   常量 长的&   lparam,// 大体时间                 常量 双倍的&d参数,// 价格                    常量 细绳& 垃圾邮件  // 象征                  )
  {
  如果(id>=CHARTEVENT_CUSTOM)
     {
      打印字符串时间时间当前(),TIME_SECONDS),“-> id=”, ID-CHARTEVENT_CUSTOM,
                        “:  ”,斯帕姆,” “,事件描述(lparam),“价格=”,d参数);
     }
  }//+------------------------------------------------------------------+

OnChartEvent() 参数。

控制面板生成自定义事件。这些事件可以使用 OnChartEvent() 事件处理程序在 EA 交易或指标中进行处理。

输入参数:

MCM 控制面板中支持的事件列表

使用 lparam 参数,控制面板可以在符号上发送最多 64 个不同的自定义事件。在此版本中支持以下事件: 

由 EventDescription() 返回的事件描述显示在括号中(初始化、tick、Mxx 等)。 EventDescription 函数可以在控制面板 MCM.mqh 中找到(位于 ENUM_CHART_EVENT_SYMBOL 枚举之后)。

当 prev_calculated=0 时生成“初始化”事件,可用于准备数据,例如可以重新计算指标值。

要设置所需的事件,请单击“事件”按钮,选择交易品种和事件类型。所选事件以黄色(或指标输入参数中的所选颜色)显示。您可以选择一个或多个事件,所有这些事件都可以由我们的多货币 Expert Advisor 处理。要应用更改,请单击“启用/禁用事件”按钮。

可以对所有必要的符号执行相同的过程。

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5
 

以下是“专家”选项卡中的日志: 

"MCM Control Panel" for Multicurrency Expert Advisors and Indicators - expert for MetaTrader 5
 


附件下载

📎 code_215.zip

Source: MQL5 #215

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录