Erros, bugs, perguntas - página 2821
![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
a normalização não é arredondada
Eu tenho um A+ em teoria, como trabalhar com o dobro e assim por diante. O algoritmo NormalizeDouble contém um erro. O tema levantado está apenas indirectamente relacionado com a comparação de duplas.
Repito a minha pergunta.
A imagem mostra o valor da variável não normalizada n e da variável normalizada m e como são diferentes. Mas se quiser comparar tangas, essa é a sua preferência.
Conheço a teoria, como trabalhar com o dobro e coisas do género numa escala A+. O algoritmo NormalizeDouble contém um erro. O tema levantado está apenas indirectamente relacionado com a comparação de duplas.
O algoritmo NormalizeDouble contém um erro.
sim
Penso que o A100 escreveu sobre isso
mas os criadores desde a MQL têm-se agarrado a esta "característica", infelizmente
Se o corrigirem, o erro desaparecerá.
Penso que aparecerão outros bugs e haverá muito ruído ))))
Não o farão, porque quase todos comparam até mesmo as dobras normalizadas através da normalização. Ou seja, colocam-no onde quiserem.
A normalização adequada deve ser sempre verdadeira nesta condição.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Erros, bugs, perguntas
fxsaber, 2020.08.10 11:37
Esta é a única verificação de que a normalização está correcta. Se der sempre verdade, nada se quebrará.
NormalizeDouble é apenas um certo algoritmo que se aplica a um número duplo. Infelizmente, há um erro. Se corrigido, o erro desaparecerá. Todas as outras duplas representações não mudarão em resultado disso.
Penso que não se trata da função, mas que as constantes não são normalizadas pelo compilador (embora devam ser).
Então as mesmas constantes em DLL e MQL não corresponderão.
Então as mesmas constantes em DLL e MQL não corresponderão.
Também é verdade. Além disso, qualquer normalização é uma perda de precisão, por isso provavelmente estou a exagerar com uma normalização constante.
Basta afinar o actual algoritmo de normalização.
Basta afinar o actual algoritmo de normalização.
Nem sequer sei se se trata de um bug no algoritmo.
Apenas o arredondamento não é feito utilizando a ronda(), ceil(), chão() padrão, uma vez que também devolvem o dobro.Realmente, não se podem comparar as duplas. Apenas uma regra difícil.
Ou, como diz Slava, através do epsilon ou através da multiplicação (por exemplo, por 1/_Ponto) com conversão para int com arredondamento.
Ou através destes, especialmente porque trabalham mais rapidamente do que os normais:
Mais fácil e mais rápido, é claro, através do epsilon: