Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Experts

"Painel de Controle MCM" Expert Advisors Multi-moedas e indicadores - expert para MetaTrader 5

Visualizações:
6334
Avaliação:
(41)
Publicado:
2014.01.15 08:57
Atualizado:
2016.11.22 07:33
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

A um dos benefícios da linguagem MQL5 é a possibilidade de utilizar os indicadores de múltiplas moedas e os Expert Advisors. Veja Manipulador de eventos tick Multicurrency OnTickMarketWatch na Base de Código em MQL5.

A utilização do conceito proposto no script não é conveniente. Por exemplo, no caso de muitos eventos, pode haver excesso na fila de eventos.

Aqui está a nota da Referência MQL5:

O terminal do Cliente adiciona eventos aparecendo na fila de eventos. Assim, os eventos são processados ​​um após o outro de acordo com a ordem em que foram recebidos. Há uma exceção para o evento NewTick. Se a fila já tem um evento como esse ou esse evento está sendo processado, o novo evento NewTick não é enfileirado.

A fila de eventos é limitada em tamanho. Quando há sobrecarregamento da fila, os eventos antigos são removidos, sem ser processados, de modo a permitir a recepção de novos eventos. Portanto, recomenda-se escrever manipuladores de eventos eficientes, e não é recomendado o uso de loops infinitos (há uma exceção de scripts, que manipulam apenas o evento Iniciar).

Além disso, às vezes é necessário executar o recálculo dos valores do indicador somente quando a nova barra tenha aparecido. O outro caso é se você precisar desativar a negociação "on the fly" em algum símbolo do Expert Advisor multi-moedas, para alterar o período gráfico de algum símbolo ou qualquer outra coisa.

O "qualquer outra coisa" pode ser dados externos. O Painel de Controle MCM (Modo multi-moeda) se baseia nesta ideia.

A propósito, ele também pode ser usado em uma única negociação de moeda.

O "Painel de Controle MCM" (versão competição) apresenta as seguinte características:

Ele tem um número mínimo de funções, necessário para utilizar o modo de várias moedas em Expert Advisors e Indicadores:

  • Adicione/Remova símbolos para analisar e negociar.
  • Ele permite rastrear os eventos "novo tick" e "nova barra" para qualquer símbolo e período.
  • Todas as configurações podem ser mudadas "on the fly" sem reiniciar o Expert Advisor ou o indicador.
  • O Painel pode ser utilizado com nossos Expert Advisors e indicadores.
  • Também podem ser incluídos em seu código, ele será carregado com eles.
  • Ele é transparente. Você não precisa adicionar o código do Painel de Controle MCM a seus Expert Advisors ou Indicadores.

Usando o "Painel de Controle MCM", você pode adicionar suas próprias características. Veja abaixo para mais detalhes.

O save / restore das configurações do Painel de Contole não é compatível com esta versão.

Iniciando o Painel de Controle MCM

O lançamento do "Painel de controle MCM" pode ser feito de várias maneiras:

  • Anexe o "painel MCM iControl" no gráfico.
  • Inicie o script "scControl painel MCM". O script carrega o indicador "iControl painel MCM".
  • Carregue o Painel do seu Expert Advisor ou Indicator. Consulte o "Painel MCM Excontrol" para detalhes.

No terceiro caso, o Painel será carregado com o nosso Expert Advisor ou Indicador e anexado ao gráfico.

O seu Expert Advisor deve ter o manipulador de eventos OnChartEvent() para prosseguir os eventos do painel de controle MCM.

Interface

A interface de usuário é simples, ele é implementado como um menu. O tamanho e as cores do menu pode ser configurado por meio de parâmetros de entrada.

Parece como se segue:


Design

O painel é usado para configurar os eventos para os Expert Advisors multi-moedas e Indicadores.

O tamanho e a posição do painel depende do tamanho do gráfico e da fonte (definida nos parâmetros de entrada). Para liberar espaço da área de trabalho, o Painel pode ser minimizado.


 

O tamanho do painel pode ser alterado, mudando o tamanho da fonte nos parâmetros de entrada (tamanho da fonte = 10 por padrão):

 

Você pode definir qualquer cor que você desejar.

Por exemplo, o esquema rosa:


O esquema EMO:


 

Fácil de usar

O menu é intuitivo, é fácil de usar.

O botão "Painel de Controle MCM" contém recursos adicionais (não incluídos nesta versão):


Usando o botão "Chart" você pode facilmnte mudar o símbolo atual e o seu tempo gráfico, basta escolher o que:


Os "Events" permite ativar / desativar eventos "on the fly" (sem reinício do Expert Advisor ou indicador) por algum símbolo e especificar o evento necessário. Estes eventos podem ser processados ​​dentro da função OnChartEvent() do Expert Advisor ou indicador. O menu de símbolos contém apenas símbolos selecionados a partir do "Market Watch". Você pode combinar todos os eventos, todos eles serão processados.

Por exemplo, não é necessário se preocupar com o aparecimento de um novo tick / barra para os símbolos nos tempos gráficos, o painel enviará os eventos:


Aqui está o "Help":


Know How e sua Implementação

Minha solução foi publicada em Manipulador de eventos tick Multicurrency OnTickMarketWatch, mas esta Painel tem algumas características adicionais:

  • O "Painel de controle MCM", fornece a interface não implementada diretamente no terminal do cliente. Ele permite que você use o modo de múltiplas moedas através do manipulador de eventos OnChartEvent(). Ele permite que você use o modo de múltiplas moedas através do manipulador de eventos OnChartEvent().
  • Para gerar os eventos do manipulador de eventos OnChartEvent() o Painel de Controle MCM usa seus próprios "agentes" (indicadores lançados pelo Painel de Controle MCM em algum símbolo), fornecendo o evento para a negociação de várias moedas.
  • O painel pode ser incluído em Expert Advisors ou Indicadores.
  • O painel de controle MCM proporciona novas possibilidades desenvolvedores em MQL5.
  • O Painel IMHO é um exemplo de uma nova estrutura de Expert Advisors e Indicadores. Vou dar alguns exemplos mais tarde.

Informações sobre eventos e alertas

O painel tem uma barra de status para mostrar os eventos.

Instalação do Painel de Controle MCM

Descompacte o arquivo mcm_control_panel.zip na pasta do terminal cliente. Após isso, os seguintes arquivos aparecerão:

  • /mql5/experts/exControl panel MCM.mq5 - exemplo do Expert Adivor;
  • /mql5/scripts/scControl panel MCM.mq5  - exemplo do Script;
  • /mql5/indicators/iControl panel MCM.mq5 - indicador, o principal mecânismo do "Painel de Controle MCM";
  • /mql5/indicators/Spy Control panel MCM.mq5 - indicador, o agente do "painel de controle MCM"
  • /mql5/include/Control panel MCM.mqh - um conjunto de classes e funções do "Painel de Controle MCM".

EM seguida, compile os indicadores, Script e o Expert Advisor.

Iniciando o Painel de Controle MCM

Para iniciar o Painel de Controle MCM anexe o indicador MCM.mq5 para qualquer gráfico.

O painel pode ser iniciado a partir do Expert Advisor, basta anexar o Expert Advisor "painel MCM Excontrol" ao gráfico:


Como exemplo de várias moedas, eu escrevi o Expert Advisor MultiTrend. O indicador traça a tendência de USD, com base na análise de 4 pares de moedas:

Aqui está o código:

//+------------------------------------------------------------------+ 
//|                                                   MultiTrend.mq5 | 
//|                                            Copyright 2010, Lizar | 
//|                            https://www.mql5.com/ru/users/Lizar | 
//+------------------------------------------------------------------+ 
#define VERSION       "1.00 Build 2 (09 Dec 2010)" 
#property copyright   "Copyright 2010, Lizar"
#property link        "https://www.mql5.com/ru/users/Lizar"
#property version     VERSION
#property description "Este Expert Advisor usa o Painel de Controle do MCM"
input color bg_color=Gray;        // cor do Menu
input color font_color=Gainsboro; // cor do texto 
input color select_color=Yellow// cor do texto selecionado
input int font_size=10;          // tamanho da fonte 
#include <Control panel MCM.mqh> //<--- arquivo de inclusao 
//+------------------------------------------------------------------+ 
//| Função de inicialização do Expert                                | 
//+------------------------------------------------------------------+ 
int OnInit()
  {    //--- Inicialização Painel de Controle MCM.     
//--- Não é necessário definir as cores, se não for especificado, as cores padrão será usado.      
   InitControlPanelMCM(bg_color,font_color,select_color,font_size);
//---    
  return(0);   
  } 
//+------------------------------------------------------------------+ 
//| Função de desinicialização do Expert                             | 
//+------------------------------------------------------------------+ 
void OnDeinit(const int reason)
  {
   DeinitControlPanelMCM();   //<--- desinicialização do Painel de Controle MCM  
  }
//+------------------------------------------------------------------+ 
//| Manipulador de eventos OnChartEvent.                                      | 
//| Veja a Referência MQL5 para maiores detalhes.                                  | 
//| Pode ser usado com o painel de controle MCM para negociação em várias moedas     | 
//+------------------------------------------------------------------+ 
void OnChartEvent(const int id, // identificador de evento:                                      
                  // se id-CHARTEVENT_CUSTOM==0 - inicialização evento (quando prev_calculated == 0)
                  // se id-CHARTEVENT_CUSTOM!=0 - índice do símbolo na janela "Market Watch" 
                  const long&   lparam, // período 
                  const double& dparam, // preço    
                  const string& sparam  // símbolo 
                  )
  {
   if(id>=CHARTEVENT_CUSTOM)
     {
      Print(TimeToString(TimeCurrent(),TIME_SECONDS)," -> id=", id-CHARTEVENT_CUSTOM,
                         ":  ",sparam," ",EventDescription(lparam)," price=",dparam);
     }
  }
//+------------------------------------------------------------------+ 

Parâmetros do OnChartEvent().

O Painel de Controle gera eventos personalizados Estes eventos podem ser processados ​​em Expert Advisor ou Indicador usando o manipulador de eventos OnChartEvent().

Os parâmetros de entrada:

  • id - id do evento:
          se id-CHARTEVENT_CUSTOM !=0 - ele é igual ao índice do símbolo na janela "Market Watch";
  • lparam; - flag do evento. Veja a enumeração ENUM_CHART_EVENT_SYMBOL no Painel de Controle MCM.mqh.
  • dparam - preço tick ou preço da nova barra em algum período de tempo de abertura.
  • sparam - nome do símbolo

Lista de eventos, apoiado no painel de controle MCM

Usando o parâmetro lparam, o Painel de Controle pode enviar até 64 eventos personalizados diferentes no símbolo. Nesta versão os seguintes eventos suportados:

  • "Inicialização" do evento (Inicialização);
  • "Novo tick" de evento (tick);
  • "Nova barra" do evento no gráfico M1 (M1);
  • "Nova barra" do evento no gráfico M2 (M2);
  • "Nova barra" do evento no gráfico M3 (M3);
  • "Nova barra" do evento no gráfico M4 (M4);
  • "Nova barra" do evento no gráfico M5 (M5);
  • "Nova barra" do evento no gráfico M6 (M6);
  • "Nova barra" do evento no gráfico M10 (M10);
  • "Nova barra" do evento no gráfico M12 (M12);
  • "Nova barra" do evento no gráfico M15 (M15);
  • "Nova barra" do evento no gráfico M20 (M20);
  • "Nova barra" do evento no gráfico M30 (M30);
  • "Nova barra" do evento no gráfico H1 (H1);
  • "Nova barra" do evento no gráfico H2 (H2);
  • "Nova barra" do evento no gráfico H3 (H3);
  • "Nova barra" do evento no gráfico H4 (H4);
  • "Nova barra" do evento no gráfico H6 (H6);
  • "Nova barra" do evento no gráfico H8 (H8);
  • "Nova barra" do evento no gráfico H12 (H12);
  • "Nova barra" do evento no gráfico D1 (D1);
  • "Nova barra" do evento no gráfico W1 (W1);
  • "Nova barra" do evento no gráfico MN1 (MN1);

A descrição do evento, retornado por EventDescription() é apresentado entre parênteses (Inicialização, tick, Mxx etc). A função EventDescription pode ser encontrado no Painel de controle MCM.mqh (seguindo a enumeração ENUM_CHART_EVENT_SYMBOL).

O evento de "inicialização" gerado quando prev_calculated = 0 pode ser usado para preparar os dados, por exemplo, é possível recalcular os valores do indicador.


Definindo Eventos

Para definir os eventos necessários, clique no botão "Event", selecione o símbolo e o tipo de evento. Os eventos selecionados são mostrados na cor amarela (ou selecionada a cor nos parâmetros de entrada do indicador). Você pode escolher um ou mais eventos, todos eles estarão sendo processados ​​pelo nosso Expert Advisor multi-moedas. Para aplicar as alterações, clique no botão "Ativar / Desativar eventos".

O mesmo processo pode ser feito por todos os símbolos necessários.


Aqui está um log da guia "Experts":


Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/215

SpudsStochastic SpudsStochastic

8 osciladores Estocásticos (%K 6, 9, 12, 14, 16, 19, 21, 24).

2 ou mais Ativos no Gráfico 2 ou mais Ativos no Gráfico

O indicador mostra um segundo gráfico sobre o principal usando o ponto de referência.

XRSX_BB_HTF XRSX_BB_HTF

Este indicador é uma versão modificada do RSI, que pode ser colocado sobre um gráfico com um período de tempo diferente. Ele também permite que os usuários alterem o RSI e a linha de sinal do algoritmo de suavização.

XLineRegression XLineRegression

XLineRegression cria níveis baseados no algoritmo de regressão linear.