Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
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

Manipulador de eventos Multi Moedas OnTick(string símbolo) - expert para MetaTrader 5

Visualizações:
2987
Avaliação:
(45)
Publicado:
2014.01.15 08:27
Atualizado:
2016.11.22 07:33
onmultitick.zip (5.38 KB)
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Esta é a nova implementação do modo multi moeda completo no MetaTrader 5. Ele é implementado como um função estendida OnTick(string símbolo).

Benefícios:

  • Ele fornece o modo multi moeda em contras reais e demo;
  • Suas configurações são simples;
  • A lista de eventos para OnTick(string símbolo): pode ser configurado: NewTick e/ou NewBar;
  • A lista de símbolos podem ser configuradas (todos os símbolos do Market Watch ou alguns símbolos especificados);
  • Ao trabalhar com símbolos do Market Watch, é permitido gerir os eventos "on the fly" em OnTick(string símbolo);
  • Não é necessário entender os detalhes de seu funcionamento. Todo o código está contido no arquivo de inclusão;
  • Ela pode ser usada no Strategy Tester.

O template do Expert Advisor é o seguinte:

//+------------------------------------------------------------------+
//|                                        OnTick(string symbol).mq5 |
//|                                            Copyright 2010, Lizar |
//|                            https://www.mql5.com/ru/users/Lizar |
//+------------------------------------------------------------------+
#define VERSION       "1.00 Build 1 (01 Fab 2011)"

#property copyright   "Copyright 2010, Lizar"
#property link        "https://www.mql5.com/ru/users/Lizar"
#property version     VERSION
#property description "Template do Expert Advisor"
#property description "com o manipulador de eventos Multi Moedas OnTick(string símbolo)"

//+------------------------------------------------------------------+
//|                CONFIGURAÇÕES DO MODO MULTI MOEDA                 |
//|           do manipulador de eventos OnTick(string símbolo)       |
//|                                                                  |
//| 1.1 Lista de símbolos necessários para prosseguir nos eventos:   |
#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"
//| 1.2 Se você quiser todos os símbolos do Market Watch use isso:   |
//#define  SYMBOLS_TRADING    "MARKET_WATCH"
//|     Nota: Selecione apenas uma maneira de 1.1 ou 1.2.            |
//|                                                                  |
//| 2.  Tipo de evento para OnTick (string símbolo):                 |
#define  CHART_EVENT_SYMBOL CHARTEVENT_TICK 
//|     Nota: o tipo de evento deve corresponder a                   |
//|                 enumeração ENUM_CHART_EVENT_SYMBOL.              |
//|                                                                  |
//| 3.  arquivo Include:                                             |
#include <OnTick(string symbol).mqh>
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Função de inicialização do Expert                                |
//| Esta função deve ser declarada, mesmo que vazia.                 |
//+------------------------------------------------------------------+
int OnInit()
  {
   //--- Adicione o seu código aqui...
   return(0);
  }
  
//+------------------------------------------------------------------+
//| Função Expert multi tick                                         |
//| Use esta função em vez da funcão OnTick() convecional            |
//+------------------------------------------------------------------+
void OnTick(string symbol)
  {
   //--- Adicione o seu código aqui...
   Print("Novo evento no símbolo: ",symbol);
  }
  
//+------------------------------------------------------------------+
//| Função ChartEvent                                                |
//| Esta função deve ser declarada, mesmo que vazia.                 |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // ID do evento
                  const long& lparam,   // param evento do tipo long
                  const double& dparam, // param evento do tipo double
                  const string& sparam) // param evento do tipo string
  {
   //--- Adicione o seu código aqui...
  }
  
//+------------------------------------------------------------------+
//| Função Expert desinicialização                                   |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   //--- Adicione o seu código aqui...
  }

//+------------------------------ fim -------------------------------+

Algumas características:

1. Configurações

Todas as configurações podem ser definidas usando a diretiva #define. Para o funcionamento correto da função OnTick(string símbolo) você deve especificar apenas dois parâmetros: SYMBOLS_TRADING e CHART_EVENT_SYMBOL. O primeiro (SYMBOLS_TRADING) define a lista de símbolos usados para os eventos. O segundo (CHART_EVENT_SYMBOL) define os tipos de eventos para todos os símbolos.

O SYMBOLS_TRADING contém a lista de símbolos, por exemplo:

#define  SYMBOLS_TRADING    "EURUSD","GBPUSD","USDJPY","USDCHF"

A lista deve ser preparada como strings, separadas por vírgula. A lista termina com o fim da linha.

O SYMBOLS_TRADING pode ser definido como se segue:

#define  SYMBOLS_TRADING    "MARKET_WATCH"

Desta forma, significa que todos os símbolos do Market Watch será usado. Este método pode ser usado para alterar a lista de símbolos "on the fly". Basta adicionar ou remover os símbolos necessários do Market Watch.

O tipo de evento CHART_EVENT_SYMBOL é definido pelo flag ou por sua combinação da enumeração ENUM_CHART_EVENT_SYMBOL. Veja mais detalhes aqui (em Russo).

Aqui estão alguns exemplos dos tipos de eventos:

//--- Exemplo 1. Evento OnTick:
#define  CHART_EVENT_SYMBOL CHARTEVENT_TICK 
//--- Exemplo 2. NewBar M1 e New Bar H1:
#define  CHART_EVENT_SYMBOL CHARTEVENT_NEWBAR_H1|CHARTEVENT_NEWBAR_M1

2.  Arquivo Include.

O #include OnTick(string símbolo).mqh é necessário, este arquivo contém a implementação da função OnTick(string símbolo). Ele fornece uma maneira simples de utilizar todas as funções OnTick(string símbolo). Algumas das funções do padrão devem ser declarados no código do Expert Advisor, mesmo que estejam vazias.

3. Strategy Tester.

Como você sabe (no momento), o OnChartEvent não é suportado pelo Strategy Tester. Para resolver este problema, as variáveis ​​globais são usadas para manipular os eventos. Esta forma é utilizada somente no Strategy Tester, em todos os outros casos (em contas reais/demo) os eventos são processados ​​através do OnChartEvent.

Aqui estão as características. No Strategy Tester a OnTick (string símbolo) irá trabalhar nos ticks dos símbolos especificados nas configurações do Strategy Tester. Em outras palavras, ele funciona como a OnTick(), mas ele é chamado também quando há novos ticks nos outros símbolos selecionados. Para trabalhar com o Strategy Tester o SYMBOLS_TRADING deve ser especificado como uma lista de símbolos.

4. "Espiões".

Ele usa os "espiões" (agentes-indicadores). O arquivo "Painel de Controle Spy MCM.ex5" deve estar localizado na pasta \MQL5\Indicators\.

5. Os arquivos do arquivo devem ser extraídos para a pasta \MQL5. Os arquivos necessários:

    • /MQL5/Experts/OnTick(string símbolo).mq5 - Exemplo do Expert Advisor, o código fonte do template;
    • /MQL5/Experts/OnTick(string símbolo).ex5 - Exemplo do arquivo Expert Advisor compilado;
    • /MQL5/Indicators/Spy Control panel MCM.mq5 - Agente-indicador, código fonte;
    • /MQL5/Indicators/Spy Control panel MCM.ex5 - Agente-indicador, arquivo compilado;
    • /MQL5/Include/OnTick(string símbolo).mqh - arquivo include com todas as funções necessárias para a implementação da função OnTick(string símbolo).

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

CTradeStatistics CTradeStatistics

Classe para o cálculo dos parâmetros de enumeração ENUM_STATISTICS.

eKeyboardTrader eKeyboardTrader

Expert Advisor que permite negociar através do teclado.

BidAskChannel BidAskChannel

O indicador BidAskChannel indicador foi projetado para contabilizar o spread nas sombras das velas.

Zig Zag Não Paramétrico, Caminhada Fora do Preço Zig Zag Não Paramétrico, Caminhada Fora do Preço

Zig Zag Não Paramétrico. A condição de monotonicidade para o segmento ascendente do Zig Zag: a Máxima de qualquer barra subsequente não deve ser menor do que qualquer Mínima do segmento ascendente.