Como usar códigos MQL4 personalizados no EA Wizard

O EA Wizard contém muitas funções úteis que podem ser facilmente utilizadas e permite que você construa rapidamente seu próprio consultor especializado. Se você precisa de uma função que não está presente, você não está preso. Em tal cenário, você pode usar a função personalizada do EA Wizard.

O uso deste recurso requer que você seja capaz de entender linhas de código simples do código MQL4. Se você não está familiarizado com nenhuma linguagem de programação, você ainda deve ser capaz de completar uma solução simples, como mostramos neste tutorial.

Neste tutorial mostraremos a você como simplesmente calcular o número de barras que fecharam acima de um indicador de média móvel para um determinado número de barras no período anterior. Este processo requer um loop que retrocede e verifica cada barra usando uma simples comparação entre o preço de fechamento de uma barra e o valor médio móvel.

Esta função pode ser muito útil quando desejamos avaliar uma tendência no mercado. Se todas as barras avaliadas em um determinado período fecharem acima do valor médio móvel, podemos considerar que o mercado está em uma tendência de alta. O oposto será verdadeiro para uma tendência de queda.

Ok, vamos começar com a própria função personalizada.

Criação de funções MQL4 personalizadas no EA Wizard

Todas as funções personalizadas que você deseja usar em seus projetos do EA Wizard precisam ser colocadas no arquivo CustomFunctions.mq4 localizado na pasta de instalação do EA Wizard sob a pasta de código.

Uma vez instalada sua cópia do MetaTrader4 em seu computador, você poderá editar este arquivo usando a ferramenta MetaEditor.

Abra o arquivo CustomFunctions.mq4

Para contar barras que fecharam acima do indicador de média móvel, usaremos esta simples função personalizada:

int getBarCloseAcima da média(int barsPeriod, int maPeriod) {


contador int = 0;


para (int i = 1; i <= barPeriodo; i++) {


if (Fechar[i] > iMA(NULL, 0, maPeriod, 0, MODE_EMA, PRICE_CLOSE, i))


contador++;


}


contador de retorno; }

Vamos rever cada linha e explicar com mais detalhes o que cada linha representa.

int getBarCloseAcima da média(int barsPeriod, int maPeriod) { - esta linha define nossa função personalizada. O tipo de retorno é definido como "int", o que significa que a função retornará um número inteiro, ou seja, o número de barras que fecharam acima de nossa média móvel. A função também contém dois parâmetros - barsPeriod que é um número inteiro que representa o número de barras que comparamos com a média móvel e maPeriodo que representa um período que será utilizado como duração da mudança. O nome destas variáveis é importante apenas dentro da própria função. Dentro do EA Wizard podemos usar nomes diferentes para valores de entrada, como você verá mais adiante.

contador int = 0; - esta linha define um contador. Ele armazenará a soma das barras que satisfazem nossos critérios, ou seja, barras que fecharam acima da linha média móvel.

para (int i = 1; i <= barPeriodo; i++) { - esta linha inicia o loop. A variável "i" representa o índice de barras que estamos avaliando atualmente. Começamos com a barra #1 e continuamos sobre cada barra até que todas as barras (barsPeriod) sejam verificadas. Cada vez que também aumentamos o valor do "i" em 1 (passamos para a barra anterior)

if (Fechar[i] > iMA(NULL, 0, maPeriod, 0, MODE_EMA, PRICE_CLOSE, i)) - esta condição verifica se uma barra fecha mais do que o valor médio móvel. Observe a variável "i" que usamos para referenciar cada barra à medida que o laço progride sobre todas as barras. Também usamos a média móvel exponencial (MODE_EMA) como especificado na ajuda da MQL4 https://docs.mql4.com/indicators/ima

Mesmo que isto possa parecer muito complexo para você, é bastante intuitivo, especialmente se o MetaEditor também o ajudar a completar o código. Veja a captura de tela.

Uma vez concluída a função, podemos salvar nosso trabalho, abrir o EA Wizard e usar a função criada em nosso novo consultor especializado.

Usando funções personalizadas no EA Wizard

Agora vamos criar um simples consultor especializado que utilizará a função criada. O primeiro passo será definir variáveis e inputs. Veja a captura de tela anexada.

Definição de insumos para o consultor especializado

médioPeriodo - esta variável de entrada representa o período médio móvel. Por padrão, nós a definimos para 34

barTrendPeriod - esta variável de entrada representa a quantidade total de barras que contamos. Por padrão, nós a definimos como 20

minBarsUptrend - esta variável de entrada representa as barras mínimas necessárias para estarmos acima da média móvel. Por padrão, nós a definimos para 15

Também definimos takeProfitstopLoss a 20 pips e lotSize a 0,1.

Vamos empacotar tudo isso em uma simples regra comercial que abrirá uma posição longa.

Regras para uma posição longa

Além de nossa função personalizada, a longa condição também inclui uma verificação se não temos nenhuma posição no mercado. A menos que tenhamos uma, podemos abrir uma nova posição. Também nos certificamos de que a regra é avaliada somente quando uma barra fecha (não em cada carrapato) usando o Is Bar Open é Verdadeiro função.

É assim que configuramos a função personalizada e incluímos variáveis definidas no EA Wizard usando Função Personalizada que pode ser encontrada sob a opção Funções menu.

Função Personalizada : getBarCloseAcima da Média(barrasTendPeriod, averagePeriod)

Neste momento, nosso consultor especializado está pronto para usar. O último passo que precisamos fazer é exportar o código para o MetaTrader 4. Eis como fazer isso:

Exportar o código de estratégia

Agora você pode testar o consultor especialista em MetaTrader e graças aos inputs definidos o consultor especialista também está pronto para um processo de otimização. Você pode tentar encontrar as melhores configurações para os valores de entrada ou adicionar regras e filtros adicionais para os sinais comerciais.

Você pode fazer o download do projeto EA Wizard aqui: Barras Fechadas Acima do EMA.sqw

Assine
Notificação de
0 Comentários
Feedbacks em linha
Ver todos os comentários

Continuar lendo