![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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
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 íconeEstou 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?
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.
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.
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.
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?
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?
Sinto muito, tenho que ir embora. Os pedidos chegaram... Se você não se importa, continuaremos amanhã.
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?