![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
O MT4 é uma caixa escura e eu só posso julgar o que acontece lá testando em condições reais. Inicialmente eu não usava o sono de forma alguma, mas quando eu estava recebendo besteira em algumas barras de hora eu adicionei o sono e o problema desapareceu. Eu não sei em que ordem e como a série cronológica MT4 é atualizada. Não tenho certeza do que fazer com ele, vou usá-lo como uma oportunidade para consertar meu problema e compartilhá-lo com outros.
Eu mesmo tenho vivenciado este problema, tudo está bem no Testador de Estratégia, mas no mercado real não é nada.
Estou dirigindo o Expert Advisor desde segunda-feira e estou surpreso.
Abri várias aberturas lucrativas e depois voltei para comprar em vez de vender, e vice-versa.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Quaisquer perguntas de novatos sobre MQL4 e MQL5, ou quaisquer dicas e discussões sobre algoritmos e códigos
Vitaly Muzichenko, 2021.02.15 21:48
Eu já comecei a trabalhar com a MQL4 para verificar meu algoritmo.
Eu nunca tinha experimentado antes, não saberia como usá-lo desde que estou trabalhando nele há muitos anos e ainda o estou usando como descrevi acima. Código simples, apenas 2 buffers indicadores
O código é muito simples
Eu mesmo já enfrentei isso, tudo está bem no testador, mas no mercado real é um lixo.
Estou dirigindo o EA desde segunda-feira e estou surpreso.
Estou surpreso. Algumas aberturas estão corretas, mas depois disso estou comprando novamente em vez de vender e vice-versa.
O código indicador é simples.
Este é o mesmo problema que eu tinha antes de iniciar esta linha. Eu fiz a função isRefresh() acima. Experimente. Funcionou bem para mim.
E não é um deslize?
O código do indicador é simples
o indicador abre negócios?
as setas são as mesmas - o problema está no código EA
Se você começar a ensinar, então ajude, confirme com código, testes, um link para um tópico do fórum ou documentação. Tudo o resto é apenas masturbação cerebral.
Por favor, esclareça o que ainda não está claro. Após a leitura, parecia que a questão principal estava resolvida e restava discutir o quão obsoleto é o 4).
Não tive problemas após a inserção de tal período de tempo
Se você precisar acessar o período de tempo raramente e irregularmente, você deve (mas não necessariamente se o gráfico estiver aberto) realizar esse carregamento novamente antes de verificar
Isto é a mesma coisa que encontrei antes de abrir este fio. Por alguma razão o terminal fornece dados desatualizados sobre a função real, escrevi isRefresh() acima. Experimente. Funcionou bem para mim.
Mas não é um deslize?
Não, ele abre em uma nova barra 0 e o sinal é procurado na barra fechada, ou seja, 1.
Esta é a situação às vezes quando uma EA não obtém o que é esperado através do iCustom(). Novamente: às vezes, mas não com freqüência.
Aqui está outro - um novo. Eu abri corretamente uma posição de compra de acordo com o sinal e o próximo sinal do indicador é também de compra (seta abaixo). Mas a EA viaiCustom() recebeu um sinal de venda e fechou a posição de compra e abriu a de venda, embora deva haver outra posição de compra aberta.
Algo está errado com as séries cronológicas, eu ainda não entendi, foi encontrado há 4 dias e provavelmente não vou tentar descobri-lo. Eu não vi nenhum problema no testador
Agora mesmo.
--- E eu acabei de encontrar
E também, mas já em vez de uma venda, uma compra está aberta. Como eu disse, não é frequente, mas acontece
O código do indicador é simples - não há complicações
Por favor, esclareça o que ainda não está claro. Depois de ler isto, parecia que a questão principal estava resolvida e ainda precisamos discutir o quão obsoleto é o 4)
Eu não tive nenhum problema depois de inserir os prazos carregados desta maneira
Se você precisar acessar raramente e irregularmente um período de tempo, você deve (mas não necessariamente se o gráfico estiver aberto) fazer esse carregamento novamente antes de verificar, ou tal verificação ajudará
Isto é correto,
isto é da ajuda:
Os dados do indicador e da série temporal são acessados independentemente do fato de que os dados solicitados estejam prontos (o chamado acesso assíncrono). Isto é crítico para o cálculo de indicadores personalizados, portanto, na ausência dos dados solicitados as funções como Copiar...() retornam imediatamente um erro. No entanto, ao acessar de Expert Advisors e scripts, várias tentativas de receber dados são feitas, com uma pequena pausa, que tem como objetivo fornecer o tempo necessário para baixar as séries de tempos necessárias ou para calcular os valores indicadores.
Se forem solicitadas informações de outro gráfico (nome do instrumento e/ou valor do cronograma diferente do atual), a situação pode ocorrer, quando não houver um gráfico apropriado aberto no terminal do cliente e os dados necessários tiverem que ser solicitados ao servidor. Neste caso, o erro ERR_HISTORY_WILL_UPDATED (4066 - dados históricos solicitados em estado de atualização) será colocado na variável _Last_error e a solicitação deverá ser novamente testada após algum tempo (ver ArrayCopySeries() exemplo).
E também, mas já em vez de uma venda, uma compra está aberta. Como eu disse, não é frequente, mas acontece
O código do indicador é simples - não há complexidades
O método mais confiável é escrever o registro. A cada transação, escreva os valores das variáveis-chave no arquivo. Por experiência: a condição não estrita <=0 em vez de <0 introduziu uma curvatura terrível.
Eu mesmo já enfrentei isso, tudo está bem no testador, mas no mercado real é um lixo.
Estou dirigindo o EA desde segunda-feira e estou surpreso.
Estou surpreso. Algumas aberturas estão corretas, mas depois disso estou comprando novamente em vez de vender e vice-versa.
O código indicador é simples
Por que eu acrescentaria 0 a [i + 0] ?
Por favor, esclareça o que ainda não está claro. Depois de ler isto, parecia que a questão principal estava resolvida e ficamos para discutir o quão obsoleto é o 4)
Não tive nenhum problema depois de inserir prazos carregados desta maneira
Se você precisar se referir ao prazo raramente e irregularmente, então esse carregamento deve (mas não necessariamente se o gráfico estiver aberto) ser feito novamente antes da verificação, ou tal verificação ajudaria
Obrigado, essa é a questão. O terminal realmente dá um erro 4066 após acessar uma série cronológica não atualizada através do iTime? Eu encontrei o iClose dando informações não atualizadas em vez de zero.