Discussão do artigo "Guia passo a passo para iniciantes para escrever um Expert Advisor no MQL5" - página 3

 

Após algumas dificuldades, o testador funcionou completamente e produziu resultados que coincidem com os resultados declarados no artigo.

Sobre as dificuldades. O download do histórico levou muito tempo (55 minutos a 8 Mbps), com várias interrupções, e tive que reiniciar o testador duas vezes. No final, o testador travou. Fechei o MT 5, mas não consegui abri-lo novamente. Tive que reiniciar completamente o sistema. Depois disso, o MT5 foi inicializado silenciosamente e, surpreendentemente, o testador funcionou completamente (cerca de 2 minutos) e apresentou todos os resultados indicados no artigo (especifiquei os parâmetros de teste exatamente como indicado no artigo). E os testes adicionais em diferentes períodos de tempo continuaram sem nenhum problema.

Resumo. O artigo é legal. O Expert Advisor é viável. Vou me aprofundar mais.

 
Gostaria de saber por que as chamadas ArraySetAsSeries estão no corpo de OnTick() e não em OnInit()?
Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
Операции с массивами / ArraySetAsSeries - Документация по MQL5
 
Также это лучшее место для получения хэндлов технических индикаторов, которые будут использоваться (в нашем случае это индикаторы ADX e Média Móvel).

Por que não dizer aqui qual é o identificador dos indicadores técnicos?

O que é? Um identificador de indicador?

 
vas:

Por que não dizer aqui qual é a função dos indicadores técnicos?

O que é um identificador de indicador?

O identificador do indicador é o identificador do thread no qual o indicador é calculado. Ao chamar o identificador, você se dirige ao fluxo de dados.

E a função que retorna o identificador cria (inicia) esse mesmo thread. É por isso que os desenvolvedores não recomendam acessar o fluxo imediatamente após sua criação, pois ele ainda pode estar no processo de cálculo de dados.

 

Ótimo artigo! Estruturado de forma clara e de fácil compreensão.

Tenho dúvidas sobre a expressão de retorno na primeira condição "if" do "OnInit()". Talvez o parâmetro deva ser -1, qualquer que seja, mas não 0, ou a condição if é redundante.

 

Tentei implementar o especialista do artigo https://www.mql5.com/pt/articles/100 em classes da biblioteca padrão.

Estou postando o que obtive.

Infelizmente, a negociação idêntica não funcionou, pois o código do artigo contém erros.

O arquivo ExpertADX-MA.mq5 deve ser colocado em Experts\Advisors. -Este é o Expert Advisor

Oarquivo SignalADX-MA.mqh deve ser colocado em Include\Expert\Signal - essa é a classe de sinais de negociação.

O arquivo TrailingFixedPips.mqh deve ser colocado em Include\Expert\Trailing(com substituição) - é um arquivo da entrega padrão com algumas pequenas alterações.

O arquivo Expert.mqh deve ser colocado emInclude\Expert (com substituição). -arquivo da entregapadrão. arquivo da entrega padrão com pequenas alterações

As alterações da entrega padrão serão feitas na próxima compilação.

PS: O Trawl está "parafusado" no Expert (por solicitação dos funcionários).

Para "desparafusá-lo", você precisa comentar a linha:

      if(!ExtExpert.InitTrailing(new CTrailingFixedPips)) return(-3);

no arquivo ExpertADX-MA.mq5.

Пошаговое руководство по написанию MQL5-советников для начинающих
Пошаговое руководство по написанию MQL5-советников для начинающих
  • 2010.06.09
  • Samuel
  • www.mql5.com
Написание советников на MQL5 проще чем кажется, вы легко можете этому научиться. В этом руководстве вы познакомитесь с основными моментами, необходимыми для написания простого советника на основе конкретной торговой стратегии. Рассмотрена структура советника, использование встроенных технических индикаторов и торговых функций, вопросы отладки и тестирования советника на исторических данных.
Arquivos anexados:
 

Os erros no código do EA no artigo Guia passo a passo para escrever Expert Advisors MQL5 para iniciantes foram corrigidos.

Faça o download da versão atualizada do código do Expert Advisor.
 

No código do EA acima.

Amatriz dinâmica double maVal[] é declarada no escopo global.

e não na área da função void OnTick().

Suponha que o Expert Advisor esteja sendo executado há 24 horas.

Pergunta: O que acontecerá com a memória alocada para a matriz dinâmica? Com que rapidez ela será entupida com lixo?

Ou, em outras palavras, formularei a pergunta: Há um vazamento de memória nesse caso?

 

Obrigado por seu artigo!

 
Estou muito grato por este artigo, que me ajudou muito. Depois de escrever os códigos para meu EA, pressionei o botão de depuração e fui informado de que havia 10 erros. Em seu artigo não há nenhuma informação para corrigir esses erros. Então, como faço para resolver esse problema? Por favor, me responda o mais rápido possível.