Discussão do artigo "Introdução ao MQL5 (Parte 7): Guia para Iniciantes na Criação de Expert Advisors e Utilização de Código Gerado por IA no MQL5"

 

Novo artigo Introdução ao MQL5 (Parte 7): Guia para Iniciantes na Criação de Expert Advisors e Utilização de Código Gerado por IA no MQL5 foi publicado:

Descubra o guia definitivo para iniciantes na criação de Expert Advisors (EAs) com MQL5 em nosso artigo abrangente. Aprenda passo a passo como construir EAs utilizando pseudocódigo e aproveite o poder do código gerado por IA. Seja você novo no trading algorítmico ou esteja buscando aprimorar suas habilidades, este guia oferece um caminho claro para criar EAs eficazes.

Aprender todos os detalhes do MQL5 de uma só vez pode ser esmagador. Em vez disso, focar em projetos pode tornar o processo de aprendizagem mais gerenciável e agradável. Comece dominando conceitos fundamentais, como variáveis, loops, condições, funções e todos os outros conceitos básicos discutidos em artigos anteriores. Uma vez que você tenha uma compreensão sólida desses conceitos, comece a explorar projetos que lhe interessam, como a construção de Expert Advisors ou indicadores personalizados. Cada projeto em que você trabalha apresentará novos desafios e ensinará lições valiosas. Por meio da aprendizagem baseada em projetos, você pode aplicar seu conhecimento teórico em cenários do mundo real, o que ajuda a entender melhor as complexidades da programação MQL5. Você gradualmente adquirirá o conhecimento e as habilidades necessárias para lidar com a complexidade da programação MQL5 à medida que trabalha em uma variedade de projetos. 

Adotar esse método de aprendizagem permite que você avance como programador de forma constante e confiante. Em vez de se sentir intimidado pela vastidão do MQL5, você o abordará projeto por projeto, aumentando gradualmente sua proficiência. Portanto, aceite a jornada de aprendizado baseada em projetos; é a maneira mais confiável de dominar o MQL5. Eu decidi usar a aprendizagem baseada em projetos ao longo desta série por causa de sua eficácia. Em vez de lançá-lo de cabeça nas complexidades do MQL5, vamos focar em projetos práticos que permitem aprender pela experiência. Trabalhar em projetos do mundo real o ajudará a entender melhor o tópico e desenvolver habilidades úteis que melhorarão suas estratégias de trading.

Começaremos com projetos básicos, adequados para iniciantes, e progrediremos para projetos mais complexos. Seguindo essa abordagem metódica, você pode garantir que tenha uma compreensão sólida da programação MQL5 antes de avançar para tópicos mais complexos. Você aprenderá novas habilidades e conceitos com cada projeto, o que o ajudará a melhorar gradualmente. O projeto em que vamos trabalhar neste artigo será um exemplo prático do procedimento sequencial para gerar Expert Advisors no MQL5. Também analisaremos como otimizar os benefícios do código gerado por IA no contexto do MQL5.

Autor: Israel Pelumi Abioye

 
Clemence Benjamin #:

Informações esclarecedoras, senhor, muito obrigado.

Não tem de quê.
 

Lições muito úteis. Estou ansioso para ver a continuação da série com projetos adicionais e uma progressão aprofundada para aprender mais sobre programação MQL. É difícil encontrar uma introdução passo a passo à linguagem e como aplicá-la com eficácia.

Obrigado por seu excelente trabalho

 
Oscar Hayman projetos adicionais e uma progressão aprofundada para aprender mais sobre programação MQL. É difícil encontrar uma introdução passo a passo à linguagem e como aplicá-la com eficácia.

Obrigado por seu excelente trabalho

Olá, Oscar. Obrigado por suas palavras gentis.
 
Olá! Primeiramente, obrigado por este guia. Eu o vi no início desta semana e o analisei em busca de uma maneira rápida e simples de conhecer a MQL5, e seu trabalho foi muito útil. Tenho uma tarefa muito específica a fazer, e agora estou procurando uma maneira de concluí-la. Conheço minha estratégia de negociação, sei como gostaria de agilizar minha negociação com automação, sei o que meu algoritmo/robô/ EA deve fazer e decompus todo o processo em etapas simples, portanto, sei como traduzi-lo em MQL5. Quero programá-lo eu mesmo (em vez de pagar alguém para fazê-lo ou pedir ao GPT para escrevê-lo para mim) porque quero saber como alterar o código sempre que precisar. Tentarei escrever isso, mas parece que em várias ocasiões terei algumas perguntas específicas. Existe um fórum sobre MQL5? Ou alguma outra plataforma em que os usuários troquem ideias? Muito obrigado
 
Rece_w_kieszeniach estratégia de negociação, sei como gostaria de agilizar minha negociação com automação, sei o que meu algoritmo/robô/ EA deve fazer e decompus todo o processo em etapas simples, portanto, sei como traduzi-lo em MQL5. Quero programá-lo eu mesmo (em vez de pagar alguém para fazê-lo ou pedir ao GPT para escrevê-lo para mim) porque quero saber como alterar o código sempre que precisar. Tentarei escrever isso, mas parece que em várias ocasiões terei algumas perguntas específicas. Existe algum fórum sobre MQL5? Ou alguma outra plataforma em que os usuários troquem ideias? Muito obrigado
OK, estou vendo o fórum MQL5, há algum outro, algo digno de nota? Muito obrigado!
 
Rece_w_kieszeniach #:
OK, estou vendo o Fórum MQL5, há algum outro, algo digno de nota? Obrigado!
Olá Rece, fico feliz que tenha achado o artigo útil. Se você quiser escrever o programa por conta própria, o melhor lugar para obter respostas às suas perguntas ainda é o fórum MQL5. Se tiver algum problema com seu EA, sinta-se à vontade para entrar em contato comigo.
 
Tenho acompanhado sua série e devo dizer que as explicações são ótimas e estou ansioso para aprender mais com artigos baseados em projetos como este
 
Oluwatosin Mary Babalola projetos como este

Olá Oluwatosin, estou ansioso para compartilhar a próxima parte com você. Se tiver alguma dúvida sobre o artigo, sinta-se à vontade para entrar em contato comigo.

 

E por que um guia para iniciantes os ensinaria imediatamente a codificar de forma incorreta?

Em primeiro lugar, há problemas de eficiência que se tornarão perceptíveis assim que a pessoa começar a escrever algo um pouco mais complexo e realista (mas continuar a usar a mesma técnica). Em cada tick, uma conversão StringToTime das mesmas cadeias de caracteres é chamada três vezes. Seria possível fazer uma limpeza para a IA - fazer a conversão uma vez em variáveis globais:

input string Alarm1 = "00:00:00"; // Valor padrão para o primeiro alarme
input string Alarm2 = "00:00:00"; // Valor padrão para o segundo alarme
input string Alarm3 = "00:00:00"; // Valor padrão para o terceiro alarme
input string Sound = "alert.wav"; // Arquivo de som padrão

// Definir globais para valores persistentes
datetime first_Alarm, second_Alarm, third_Alarm;

int OnInit()
{
   // Função de inicialização, executada uma vez quando o EA é iniciado
   // Fazer conversões apenas uma vez por entrada
   first_Alarm = StringToTime(Alarm1);
   second_Alarm = StringToTime(Alarm2);
   third_Alarm = StringToTime(Alarm3);
   return 0; // Retorna 0 para indicar uma inicialização bem-sucedida
}

void OnTick()
{
   // Obter a hora local atual
   datetime Time = TimeLocal();

   // Verificar se a hora atual corresponde a alguma das horas de alarme
   if(first_Alarm == Time || second_Alarm == Time || third_Alarm == Time) // outro erro lógico aqui (veja abaixo)
   {
      // Reproduzir som se qualquer hora de alarme for atingida
      PlaySound(Sound);
   }
}

Em segundo lugar, não há garantia de que os tempos de tique coincidirão com os tempos de alerta fornecidos - muito provavelmente esse código os perderá nos tempos de if. E mesmo que tivéssemos feito verificações no manipulador OnTimer, isso não garantiria que "pegaríamos" os momentos necessários, porque todos os eventos (OnTick, OnTimer etc.) vêm da fila, que é esvaziada o mais rápido possível, mas pode ficar mais lenta se algum outro programa estiver fazendo cálculos pesados. Portanto, a condição de verificação da ocorrência de alertas deve ser reescrita minuciosamente e, pelo menos, sem variáveis adicionais, não é possível (no futuro, sugere-se refazer os alertas em classes, mas é claro que não neste artigo).