Erros, bugs, perguntas - página 1436

 
Artyom Trishkin:

O engraçado é que o ficheiro ex4 compilado na minha Versão MetaEditor: 5.00 build 1214 12 Nov 2015 não exibe objectos gráficos no terminal da pessoa a quem dou este ficheiro. Tem também terminal MT4, construir 910 e MetaEditor Versão: 5.00 construir 1214 12 Nov 2015.

O ficheiro fonte indicador compilado por ele normalmente cria um executável que funciona correctamente no seu terminal.

Quais são estes erros?

Escrever para Servicedesk (anexar código fonte), vamos tentar reproduzir.
 
Alexander:
Escreva para servicedesk (anexar código fonte), vamos tentar reproduzir.

OK, escrito, em anexo:

Aberto, Iniciado: 2015.11.23 09:41, #1353961
 
Artyom Trishkin:

OK, escrito, em anexo:

Aberto, Iniciado: 2015.11.23 09:41, #1353961
Obrigado
 
Boa tarde a todos. Cheguei ao ponto de escrever EAs. Escrevi o código do exemplo, pressionei compilar e recebi um erro: EX4 Write error. Por favor, ajude-me a resolver este problema. Sei que esta é provavelmente a milésima vez que faço esta pergunta. Encontrei algo na Internet sobre este erro, mas não percebi como corrigi-lo. Quero iniciar o Metatrader com parâmetro /portável ou copiar a pasta MQL4. Estou a tentar pôr a minha mão neste artigo, não sei o que fazer com ele.
 
Mehanik85:
Boa tarde a todos. Cheguei ao ponto de escrever EAs. Escrevi o código do exemplo, pressionei compilar e recebi um erro: EX4 Write error. Por favor, ajude-me a resolver este problema. Sei que esta pode ser a milésima vez que pergunto. Encontrei algo na Internet sobre este erro, mas não percebi como corrigi-lo. Quero iniciar o Metatrader com parâmetro /portável ou copiar a pasta MQL4. Ajude-me, por favor.
Por favor anexar o código do exemplo para reproduzir o problema.
 
Bem, isto acontece com qualquer EA, mesmo que se crie uma nova e se pressione compilar sem código.
 

Erro de compilação: erro de geração de código. #2

void OnStart()
{
        string text = "" + NULL; //при optimize=1
}
 
void OnStart()
{
   double var1=EMPTY_VALUE*2;
   double var2=var1/var1;
   double var3=42; // Any
   Print("var2 больше var3: ",var2 > var3);
   Print("var3 больше var2: ",var3 > var2);
}

 
Ilya Malev:

Por favor, leia a documentação

Algumas operações de coprocessador matemático podem resultar num número real inválido, que não pode ser utilizado em operações matemáticas e de comparação porque o resultado de realizar operações sobre números reais inválidos é indefinido.

Agora preste atenção à pergunta: qual é o valor de EMPTY_VALUE*2?

 
Slawa:

Ler documentação

Agora preste atenção à pergunta: Qual é o valor de EMPTY_VALUE*2?

1. Porquê em MT4 e MT5 este código leva a um resultado diferente (mais lógico em MT4)?

2. Como posso determinar em tempo de execução se o número é válido ou não (por exemplo, para que o algoritmo de ordenação não faça loop por causa dele)?

Razão: