Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1294
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
Bom dia a todos!
Estou tentando de mql4 a mql5.
Pergunta: Por que o mql5 calcula e exibe alguma expressão desconhecida para mim, como por exemplo 2,9999999999 - (menos) 05 em vez da diferença entre o preço atual e o valor da variável Hay, que deveria ser <1 (como em mql4)?
Como posso fazer o mql5 calcular corretamente a diferença entre esses valores? Eu normalizo todos os valores usando NormalizeDouble(), mas os valores acima
valores são exibidos inalterados. Isto é estranho para mim, pois ambos os valores são do tipo doble
Obrigado a todos por sua ajuda.
2,999999999999 -(menos)05= 2,99999999999999 / 100000 = 0,00002999999999999. É assim que se faz em matemática.
-(menos)05 é dividir por 10 até a quinta potência.
Olá novamente.
Por favor, preste atenção à pergunta de um novato.
Preciso apontar erros no código, porque no testador, o Assessor Especialista não abre ordens...
O compilador não mostra erros ou avisos e a mesma coisa no diário, não há erros...
Ela não abre porque uma das condições não é cumprida.
É
while(MA_Smoth_B > MA_Smoth_S)
ou isto
if(MA_Simpl_B_Op < MA_Simpl_S_Op && MA_Simpl_B_Cl > MA_Simpl_S_Cl)
Comente os dois flashes // e você verá qual deles. É assim que você vai encontrar o erro.
2,999999999999 -(menos)05= 2,99999999999999 / 100000 = 0,0000299999999999999. É assim que se faz em matemática.
-(menos)05 é dividir por 10 até a quinta potência.
Obrigado pela resposta, mas por que o programa não calcula a diferença entre o preço 1,33671 e Hay 1,33664 em vez da expressão, que deveria ser 0,00007, mas em vez disso produz a expressão?
Ao mesmo tempo, quando substituo a variável Hay por 1,33664 com a constante 1,33664( SymbolInfoDouble(Symbol(),SYMBOL_BID) - 1,33664 ), o programa calcula a diferença real entre estes valores, ou seja, 0,00007. Na verdade, a variável Hay no código toma o valor do preço de abertura do pedido no tick anterior, que é um valor duplo de 1,33664.
Obrigado antecipadamente por sua ajuda.
Obrigado pela resposta, mas por que o programa não calcula a diferença entre o valor do preço 1,33671 e Hay 1,33664 em vez da expressão, que deveria ser 0,00007, mas em vez disso produz a expressão?
Obrigado antecipadamente pela dica.
DoubleToString(). Não se trata de MQL5, trata-se de uma saída incorreta de valores reais no log. Isto é igualmente verdade para a MQL4.
DoubleToString(). E não se trata da MQL5, trata-se da saída incorreta de valores reais no log. Isto também se aplica à MQL4 exatamente na mesma medida.
Entendi. Obrigado. Eu nunca enfrentei tais problemas antes. Agora eu vou saber.
Não sei bem o que significa o formato de precisão em relação ao meu código. Parece-me ser o número de casas decimais.
Mas em MT4, exatamente no mesmo código (exceto OrderSend), se bem me lembro, a função Imprimir sempre produz o valor real da diferença entre dois valores de preço, ou seja, o número inferior a 1 (0,00000) com 5 casas decimais após 0.
Entendi. Obrigado. Eu nunca tinha me deparado com isto antes. Agora eu vou saber.
Ainda não sei bem o que significa o formato de precisão em relação ao meu código. Parece-me ser o número de casas decimais.
Mas em MT4, exatamente no mesmo código (exceto OrderSend), se bem me lembro, a função Imprimir sempre produz o valor real da diferença entre dois valores de preço, ou seja, o número inferior a 1 (0,00000) com 5 casas decimais após 0.
Os valores reais dos dados são impressos em todos os lugares. É apenas um formato diferente de representação de números reais. Se o terminal não especificar o formato de saída, ele decide por si mesmo qual formato é mais conveniente. Naturalmente, isto pressupõe que você conheça todos os formatos de representação numérica.
Tudo isso está na ajuda.
Os valores reais dos dados são exibidos em todos os lugares. É apenas um formato diferente para representar números reais. Se o terminal não for informado sobre o formato de saída, ele decide qual formato é mais conveniente. Naturalmente, isto pressupõe que você conheça todos os formatos de números.
Tudo está na ajuda.
Então, MT4 e MT5 têm formatos diferentes para representação de números reais?
O que devo ler em mql5 Ajuda para lidar com esta pergunta?
Obrigado pela ajuda.
Olá, colegas especialistas. Preciso de sua ajuda para corrigir o indicador. A essência do indicador é a seguinte. Calcule a magnitude do aumento de preço em relação à barra anterior. Para zero leva uma barra estelar. Ou seja, o preço de abertura é igual ao preço de fechamento. Ao compilar sem erros, mas ao testar um erro na linha 80 20 caracteres. A linha de sinal também é desenhada incorretamente. Mas acho que esta é a razão para o cálculo incorreto do tampão principal. Por favor, ajude-me a consertá-lo.
Certo. Parece que apenas alguns poucos conseguem ajuda por aqui.
Certo. Parece que apenas alguns poucos conseguem ajuda por aqui.
Tente isto.
Tente isto.
Obrigado, Vitaly. Mas ainda recebo um erro na linha ExtTempBuffer[i] = NormalizeDouble((close[i]-open[i])/Point(),2); no elemento [i}.