Obter o número de casas decimais de quaisquer números (não apenas citações) contornando Dígitos() em MQL4 e MQL5 - página 9
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
Não era nada disso que eu estava falando. A idéia de converter um duble em uma corda para que você possa então contar os caracteres da corda é um completo absurdo. Não importa o que você faça.
Qual é o problema? Até agora, esta opção é a mais rápida, mais funcional e correta garantida. Quais são suas opções?
Sim, minha variante provavelmente não é a melhor, mas como nunca encontrei nada sobre ela antes, é a melhor que encontrei por conta própria, comentei acima, embora você não tenha sugerido sua própria variante.
Eu comparei estas variantes:
A variante de cordas é ligeiramente mais rápida, e não está limitada a 8 dígitos como d(). E a garantia de exatidão está contando pela forma como o terminal exibe o número.
Eu escolho a variante com conversão em string.
Qual é o problema? Até agora, esta opção é a mais rápida, a mais funcional, garantida de ser a opção certa. Quais são suas opções?
Você pode citar pelo menos um caso de aplicação do algoritmo acima?
Você pode citar pelo menos um caso de aplicação do algoritmo acima?
Houve um caso em que o painel de negociação produziu o tamanho do lote com o número correto de casas decimais no campo de texto. Este é o único caso.
Houve um caso em que o painel de negociação produziu o tamanho do lote com o número correto de casas decimais na caixa de texto. Este é o único caso.
Isto é, produz "1" no caso de 1 lote e "0,01" no caso de 0,01 lote?
Então, ele produz "1" no caso de 1 lote e "0,01" no caso de 0,01 lotes?
Não exatamente. Depende do lote mínimo e do passo do lote. Se o lote mínimo for 0,01, então 1 é exibido como 1,00
Na verdade, não. Dependendo do lote mínimo e do incremento do lote. Se o lote mínimo for 0,01, então 1 é exibido como 1,00
O.o.
Então acontece que você não está usando sua função, mas ainda exibindo algo como DoubleToString(LotSize, <algum valor constante>), não?
O.o
Então acontece que você não usa sua função, mas ainda produz algo como DoubleToString(LotSize, <algum valor constante>), não?
Sim. Mas é preciso saber quantas casas decimais para produzir.
Sim. Mas é preciso saber quantas casas decimais para produzir.
Em outras palavras, você usa o lote mínimo (ou incremento de lote) inserido pelo usuário para determinar quantas casas decimais esse valor tem, e depois o guarda para normalizar os valores futuros?
Ou seja, você determina a partir do lote mínimo (ou incremento de lote) digitado pelo usuário quantos dígitos após o ponto decimal há nesse valor, e depois o salva para normalizar os valores futuros?
O que você não entende? O preço tem dígitos(), enquanto o volume não tem. É assim que é calculado.
Por que você precisa de dígitos de volume? Pela mesma razão que precisamos dos dígitos do preço!