![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
Ajuda, plz fazendo um EA no MEditor5, compilando, colocando num gráfico e este (o EA) aparece, ou seja, o ícone aparece e desaparece.
Isto significa que não há erro do testador ou do ambiente de execução do MQL5, mas há um erro explícito do programador.
Hm. O programador detectou um comportamento inesperado do programa, detectou a essência deste comportamento, reproduziu-o explicitamente, deu um exemplo simples, levando-o ao absurdo(Dormir com valores negativos) e o programador diz que é um erro do programador :) Embora "erro do programador" signifique, por exemplo, uma declaração explícita de que a função do sono no testador não funciona.
Decorre das explicações acima que os criadores acreditam que é aceitável usar valores negativos na função Sleep(). Embora a partir da descrição da função ("...atrasa a execução do Expert Advisor actual ou script para um determinado intervalo") não podemos supor que o intervalo de atraso possa ser calculado com números negativos. Por falar em erros, considere a minha afirmação de que o terminal deveria ter impedido a utilização de valores negativos na função Sleep() como tal.
Hm. O programador detectou um comportamento inesperado para ele, detectou a essência deste comportamento, reproduziu-o explicitamente, deu um exemplo simples, levando-o ao absurdo(Dormir com valores negativos) e o programador diz que é um erro do programador :) Embora "erro do programador" signifique, por exemplo, uma declaração explícita de que a função do sono no testador não funciona.
Decorre das explicações acima que os criadores acreditam que é aceitável usar valores negativos na função Sleep(). Embora a partir da descrição da função ("...atrasa a execução do Expert Advisor actual ou script para um determinado intervalo") não podemos supor que o intervalo de atraso possa ser calculado com números negativos. Por falar em erros, considere a minha afirmação de que o terminal deveria ter impedido a utilização de valores negativos na função Sleep() como tal.
Yedelkin, como imagina que o compilador controla os parâmetros das funções? E há dezenas de tais funções que devem ter os valores dos parâmetros sob controlo.
Há aqui uma de duas coisas - ou velocidade de compilação ou controlo paranóico total.
Escolhemos a primeira via. Neste caso o subsistema de tempo de execução não salta parâmetros errados em tempo de execução ao gerar um código de erro, que podemos obter utilizando a função GetLastError.
Bem-vindo ao mundo da programação real.
E deve ter esperado sair de Sleep antes de entrar nele com um valor negativo?
A suposição sobre as expectativas está errada.
Trabalhar com valores negativos não foi de todo pretendido. Ver o meu post acima:"a partir da descrição da função ("...atrasa a execução da actual EA ou script para um determinado intervalo") é difícil assumir que o intervalo de atraso pode ser contado em números negativos". E não se trata do que "poderia esperar", trata-se do facto de que, de facto, a função SLeep permite trabalhar com valores negativos. Quando isto foi descoberto - enviou uma mensagem. Se considerar aceitável tal operação da função Sleep(), ela continuará a sê-lo.
mas que, de facto, a função SLeep lhe permite trabalhar com valores negativos.
A hipótese de expectativa está errada.
Não se destinava a trabalhar com valores negativos. Ver o meu post acima:"a partir da descrição da função ("...atrasa a execução da actual EA ou script para um determinado intervalo") é difícil assumir que o intervalo de atraso pode ser contado em números negativos". E não se trata do que "poderia esperar", trata-se do facto de que, de facto, a função SLeep permite trabalhar com valores negativos. Quando isto foi descoberto - enviou uma mensagem. Se considerar tal operação de Sleep() aceitável, continua a sê-lo.
Evidentemente, a representação interna não está assinada.
É possível alterar o tipo de parâmetro para uint.
Yedelkin, como imagina que o compilador controla os parâmetros das funções? E há dezenas de tais funções que devem ter os valores dos parâmetros sob controlo.
Há aqui uma de duas coisas - ou velocidade de compilação ou controlo paranóico total.
Escolhemos a primeira via. Neste caso, o subsistema de tempo de execução não salta parâmetros incorrectos na fase de execução, gerando um código de erro, que podemos obter utilizando a função GetLastError.
Sim cavalheiros, estou sempre do vosso lado! :) E sei programar apenas uma pequena parte do que sabem (sou guiado apenas pela Referência MQL5). Mas se eu vejo alguns pontos que não são claros para mim pessoalmente - escrevo sobre isso. Tento dar um exemplo vívido do "momento pouco claro", se possível. Assim, se acreditar que o "alarme é falso", então acontece que ou entendi mal o material de referência, ou o material de referência não reflecte toda a informação necessária para compreender o momento. Neste caso, bastar-me-ia ter uma indicação (aviso) na secção "Função de sono" que (1) "o compilador não controla o valor do parâmetro da função, pelo que a função pode trabalhar com valores negativos" e (2) "Função de sono() é totalmente suportada pelo testador".
Não tenho ideia de como funciona o compilador. Procedendo do paradigma descrito do trabalho do compilador, tenho um impulso: reflectir nas notas de dezenas de funções que os valores dos seus parâmetros não são controlados pelo terminal.