![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
Tudo vem aos poucos. Primeiro é preciso lembrar que as frases são escritas em letras maiúsculas e que o estilo de verso cortado não é de forma alguma adequado para um fórum. Em seguida, ela funcionará por si mesma com a normalização e indexação do zero.
Tenho estado esperando por este comentário )))))
não há nada mais natural do que digitar rápido em um chat room style - uma linha
é tão natural quanto contar a partir de 1.
e arredondando um número para que seja arredondado da mesma forma.
Vamos lá, onde está seu fluxo de comentários sarcásticos cheios de formalismo?
A vida é mais do que pontos e vírgulas devidamente espaçados e formatos binários.
é o fluxo da sensação e é suposto ser bonito.
é liberdade e criatividade.
qual é a sua resposta a isto?
Vocês estão todos gozando comigo, não estão?
Eu só precisava digitar um número fracionário sem lixo
e você está provando que estou errado.
O mql não é um fim em si mesmo, é uma ferramenta.
Acho que há algumas coisas óbvias, como - se você colocar um número em uma variável, você imprime como você coloca...
não importa como é organizado internamente ou como o número é armazenado, é o nível do sistema
e é óbvio que essas caudas são um disparate e uma falha no nível de aplicação - não amigável
Mas aqui novamente temos uma piada de programador: "isto não é um bug, isto é uma característica".
estas piadas não apareceram para nada, não para nada ))))))))
NormalizeDouble() é necessário ao enviar os parâmetros calculados como preços em ordens comerciais. Você pode enviar os preços Ask e Bid sem normalização, pois já estão normalizados para a capacidade de dígitos necessária. Se você calcular os preços, por exemplo para um Bid-stopLoss*Point, então esta expressão requer normalização. Os preços dos pedidos pendentes também são os mesmos: você os calcula de antemão, portanto, eles devem ser normalizados.
Quando você compara dois números reais, você precisa comparar sua diferença normalizada com zero ou com o valor mínimo.
Quando você quiser ver o que calculou, use DoubleToString() com a precisão que você deseja. IntegerToString() com os parâmetros que você deseja.
Isto é algo que você deve entender e aprender.
não há nada mais natural do que digitar rápido em um chat room style - uma linha
é tão natural quanto contar a partir de 1.
e arredondando um número para que seja arredondado da mesma forma.
Vamos lá, onde está seu fluxo de comentários sarcásticos cheios de formalismo?
A vida é mais do que pontos e vírgulas devidamente espaçados e formatos binários.
é o fluxo de sentimento e é suposto ser bonito.
é liberdade e criatividade.
o que você diz a isso?
A liberdade... e alguém está te segurando à força?
Criatividade ... crie, escreva você mesmo seus próprios invólucros para todas as funções MK e desfrute da beleza.
NormalizeDouble() é necessário ao enviar os parâmetros calculados como preços em ordens comerciais. Você pode enviar os preços Ask e Bid sem normalização, pois eles já estão normalizados para a capacidade de dígitos requerida. Se você calcular os preços, por exemplo para um Bid-stopLoss*Point, então esta expressão requer normalização. Os preços dos pedidos pendentes também são os mesmos: você os calcula de antemão, portanto, eles devem ser normalizados.
Quando você compara dois números reais, você precisa comparar sua diferença normalizada com zero ou com o valor mínimo.
Quando você quiser ver o que calculou, use DoubleToString() com a precisão que você deseja. IntegerToString() com parâmetros que você precisa.
Isto é algo que você deve entender e assimilar melhor.
Sim, eu entendo muito bem, você não pode enviar um pedido 1,234567 se a cotação for um número de 5 dígitos.
sobre a comparação de números duplos eu vi referências a..... e é terrível
mas tanto quanto sei é seguro comparar A>B, desde que A e B sejam visivelmente diferentes
somente se se verificar que se, por exemplo, eu definir explicitamente A=1,23456 e B=1,23456 e se(A==B) der falso, então isso já é um crime
NormalizeDouble() é necessário ao enviar os parâmetros calculados como preços em ordens comerciais. Você pode enviar os preços Ask e Bid sem normalização, já que eles já estão normalizados para a capacidade de dígitos requerida. Se você calcular os preços, por exemplo para um Bid-stopLoss*Point, então esta expressão requer normalização. Os preços dos pedidos pendentes também são os mesmos: você os calcula de antemão, portanto, eles devem ser normalizados.
Quando você compara dois números reais, você precisa comparar sua diferença normalizada com zero ou com o valor mínimo.
Quando você quiser ver o que calculou, use DoubleToString() com a precisão que você deseja. IntegerToString() com parâmetros que você precisa.
Isto é algo que você deve entender e aprender.
O que me incomoda é que quando calculo um número fracionário, o normalizo, o escrevo em uma variável, depois o leio e o normalizo novamente, recebo caudas
por exemplo
basis[0]=NormalizeDouble(sum_A,2);
GlobalVariableSet("Equity-"+portfolio_id,basis[0]);
...
current=NormalizeDouble(GlobalVariableGet("Equity-"+portfolio_id),2);
text = "Positions synchronized at " + current + " for portfolio: " + portfolio_name;
if(!automatic) MessageBox(text,""); else Print(text);
Agora eu mudei para
text = "Positions synchronized at " + DoubleToStr(current,2) + " for portfolio: " + portfolio_name;
if(!automatic) MessageBox(text,""); else Print(text);
e não parece haver caudas, ufa, ufa, ufa...
mais precisamente - na versão original, era (string)corrente
ou seja, a conversão de um número normalizado de caudas esquerdas
às vezes (nem sempre)
o problema de comparar duas duplas surge se, por exemplo, um número é uma constante e o outro é calculado dividindo/multiplicando
De qualquer forma, obrigado novamente por perder seu tempo com um humanitário sem esperança, se estou incomodando alguém, desculpe novamente, estou apenas dizendo o que penso sem malícia.
Entretanto, boas notícias.