Mt4 Fim do apoio. - página 19

 
Alexey Viktorov:

Um conselho de uma pessoa autodidata:

Para facilitar a transição para mql5, é desejável usar não variáveis de período int em mql4, mas a partir do enumero ENUM_TIMEFRAMES

Resolverei o problema do meu próprio jeito. O principal é que a função deve funcionar bem e não retardar o programa e ser utilizada em ambos os terminais. O resto depende de mim.
 
Dmitry Fedoseev:

Por quê?


Porque ao implementar tal coisa através de outros idiomas, tenho dificuldade para descobrir como entrar no terminal. Ele pode abrir qualquer coisa e tudo, e se for implementado através do µl, então você também pode colocar bots nele através de botões.

E você também pode colocar um banco de dados, depois mais algum software, e carregar todas as suas coisas em um ícone
 
Alexander Puzanov:

Estou feliz em acreditar que seus problemas não podem ser resolvidos sem eles. Você tem que entrar nos detalhes para não acreditar :)


Spin

Agora em um só tique, temos que determinar a nova barra em H1, M5 e D1. Ou seja, nos primeiros 1 hora e 5 minutos o Expert Advisor dorme e somente à 1:05 de um novo dia ele tem que acordar e fazer alguma coisa.

Isso serão 3 variáveis globais? E se precisarmos fazer a mesma coisa em 2-3-7 Expert Advisors? Quantas mais variedades de nomes de variáveis globais devemos criar?

 
Реter Konow:
Resolverei a tarefa do meu próprio jeito. O principal - a função deve funcionar bem e não retardar o programa e ser utilizada em ambos os terminais. O resto depende de mim.

Sua procrastinação em fornecer uma solução é uma resposta eloqüente. Porque com o OOP o problema é resolvido de forma simples e padronizada, sem nenhuma reflexão.

 
Реter Konow:
Resolverei o problema do meu próprio jeito. O principal é que a função deve funcionar bem e não retardar o programa e ser utilizada em ambos os terminais. Deixe o resto a meu critério.
Ninguém está impondo nada. Era apenas uma opinião.
 
Dmitry Fedoseev:

Sua procrastinação em fornecer uma solução é uma resposta eloqüente. Porque com o OOP o problema é resolvido de forma simples e padronizada, sem nenhuma reflexão.

Eu não estou engajado no comércio, portanto, esta tarefa não é padrão para mim. Não perturbe.
 
Alexander Puzanov:

Estou feliz em acreditar que seus problemas não podem ser resolvidos sem eles. Você tem que entrar em detalhes para acreditar nisso :)

Tenho ouvido muitas pessoas reclamarem que "trabalhar com indicadores no MT5 é muito mais complicado do que no MT4".

Bem, a abordagem OOP permite unificar este trabalho para que o Consultor Especialista não esteja interessado em qual plataforma ele está rodando.

Tenho-o organizado desta maneira.

Se precisarmos de um indicador (digamos, o MA) - o Expert Advisor tem que declarar o objeto CMA_IParams:public CIndicatorParamsI, no qual ele armazena todos os parâmetros do MA que precisamos. Em seguida, passe um ponteiro para esta estrutura para o Provedor de Dados, na função GetIndicator(). Esta função devolverá o ponteiro para a interface virtual do CIndicator. É isso aí. Esta interface tem todos os dados necessários sobre o chamado indicador.

Se você precisar de qualquer outro indicador, o objeto derivado da interface CIndicatorParamsI é declarado, todos os parâmetros do indicador são escritos nele e são passados ao provedor de dados, em vez disso, o ponteiro parao indicador criado é devolvido.

Quando um novo indicador é necessário - seu código portátil é escrito para o provedor de dados, então novamente - qualquer usuário pode solicitar um novo indicador do provedor de dados, passando seus parâmetros para o provedor de dados.

Como resultado - digamos, se um Expert Advisor trabalha "para voltar ao meio" - torna-se muito fácil mudar esse mesmo meio, por exemplo, pegar o meio do Canal Price em vez de MA - apenas mudando o objeto parâmetro.

Como isto será organizado para os fãs da abordagem processual?

 
George Merts:

As pessoas freqüentemente reclamam que "trabalhar com indicadores no MT5 é muito mais complicado do que no MT4".

Assim, a abordagem OOP permite unificar este trabalho, de modo que o Consultor Especialista, mais uma vez, não está nem mesmo interessado em qual plataforma ele está rodando.

Tenho-o organizado desta maneira.

Se precisarmos de um indicador (digamos, o MA) - o Expert Advisor tem que declarar o objeto CMA_IParams:public CIndicatorParamsI, no qual ele armazena todos os parâmetros do MA que precisamos. Então o ponteiro para esta estrutura deve ser passado para o Provedor de Dados na função GetIndicator(). Esta função devolverá o ponteiro para a interface virtual do CIndicator. Esta interface contém todos os dados necessários sobre o indicador chamado.

Se você precisar de qualquer outro indicador, o objeto derivado da interface CIndicatorParamsI é declarado, todos os parâmetros do indicador são escritos nele e são passados ao provedor de dados, o ponteiro parao indicador criado é devolvido em seu lugar.

Quando um novo indicador é necessário - seu código portátil é escrito para o provedor de dados, então novamente - qualquer usuário pode solicitar um novo indicador do provedor de dados, passando seus parâmetros para o provedor de dados.

Como resultado - digamos, se um Expert Advisor trabalha "para voltar ao meio" - torna-se muito fácil mudar esse mesmo meio, por exemplo, pegue o meio do Canal Price em vez de MA - apenas mudando o objeto parâmetro.

Como isto será organizado para os fãs da abordagem processual?

É melhor não começar com isso. Isto é o que afasta o medo. Até eu, um apoiante do OOP que o conhece mal, tropeçei por causa deste texto. ...não entendeu nada. É por isso que eu tento explicar a diferença no nível mais baixo.
 

Sinto muito, tenho que ir embora. Os pedidos chegaram... Se você não se importa, continuaremos amanhã.

 
Alexey Viktorov:

Sinto muito, tenho que ir embora. Os pedidos chegaram... Se você não se importa, continuaremos amanhã.

Há uma ordem para ele ir para o oeste?