Arredondamento do valor do índice

 
Gostaria de saber como arredonda o índice para um inteiro 0 ou 5 por exemplo o preço médio está 80577,5 como arredondar ara 80575 ou 80580? Vi que  disseram para usar MathMod() e NormalizeDouble() mas não consigo fazer, alguém para dar uma mão?

Valeuuuu
 
alexbuziquia:
Gostaria de saber como arredonda o índice para um inteiro 0 ou 5 por exemplo o preço médio está 80577,5 como arredondar ara 80575 ou 80580? Vi que  disseram para usar MathMod() e NormalizeDouble() mas não consigo fazer, alguém para dar uma mão?

Valeuuuu

Olá,

tem esse post aqui de alguns dias atrás. Pode te ajudar.

At.te

Rogério

Escala de preço dolar
Escala de preço dolar
  • 2018.03.02
  • www.mql5.com
Pessoal estou tentando deixar os valores enviados compra e venda, no dolar, na escala de 0.5. Uso a função: MathRound((pValueToRound / 0.5) * 0...
 
Rogerio Giannetti Torres:

Olá,

tem esse post aqui de alguns dias atrás. Pode te ajudar.

At.te

Rogério

olá Rogério td certo?

tentei tudo que estava lá


requisicao.sl        =  NormalizeDouble(m_symbol.NormalizePrice( MathRound(((PositionGetDouble(POSITION_PRICE_OPEN)+Distance)*_Point)*10/10)),_Digits);


porém ele arredonda por exemplo : 50667,5 para 50668 e naõ para 50670 ou 50665.

o senhor saberia alguma forma?

 
alexbuziquia:

olá Rogério td certo?

tentei tudo que estava lá


requisicao.sl        =  NormalizeDouble(m_symbol.NormalizePrice( MathRound(((PositionGetDouble(POSITION_PRICE_OPEN)+Distance)*_Point)*10/10)),_Digits);


porém ele arredonda por exemplo : 50667,5 para 50668 e naõ para 50670 ou 50665.

o senhor saberia alguma forma?

Olá boa noite!

NormalizePrice

Retorna o valor do preço, normalizado e utilizando as propriedades do símbolo.

double  NormalizePrice(
   double  price   // price
   ) const

Parâmetros

price

[in]  Preço.

Valor de retorno

Preço normalizado.

Observação: O símbolo deve ser selecionado pelo método Name.


m_symbol.name(_Symbol);
m_symbol.Refresh();
..
..
..
..
requisicao.sl = m_symbol.NormalizePrice( PositionGetDouble(POSITION_PRICE_OPEN)+(Distance*_Point ) );
..

At.te

Rogério

 
Rogerio Giannetti Torres:

Olá boa noite!

NormalizePrice

Retorna o valor do preço, normalizado e utilizando as propriedades do símbolo.

double  NormalizePrice(
   double  price   // price
   ) const

Parâmetros

price

[in]  Preço.

Valor de retorno

Preço normalizado.

Observação: O símbolo deve ser selecionado pelo método Name.


At.te

Rogério

Valeu Rogério funcionou aqui muito obrigado me bati nisso hein kkkkkk. 

 

Olá Rogério, sou iniciante, poderia explicar Melhor?

Rogerio Giannetti Torres:

Olá boa noite!

NormalizePrice

Retorna o valor do preço, normalizado e utilizando as propriedades do símbolo.

double  NormalizePrice(
   double  price   // price
   ) const

Parâmetros

price

[in]  Preço.

Valor de retorno

Preço normalizado.

Observação: O símbolo deve ser selecionado pelo método .


At.te

Rogério

 
alexbuziquia:
Gostaria de saber como arredonda o índice para um inteiro 0 ou 5 por exemplo o preço médio está 80577,5 como arredondar ara 80575 ou 80580? Vi que  disseram para usar MathMod() e NormalizeDouble() mas não consigo fazer, alguém para dar uma mão?

Valeuuuu

O meu funciona bem com a seguinte função.


const double ticksize=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_SIZE);  // Função que retorna o valor de cada tick do indice.
double price=0;

price = NormalizeDouble((ticksize*MathRound( LastPrice / ticksize)),_Digits) // LastPrice é o valor que você quer deixar múltiplo de 5.
 
Juliano G.:

Olá Rogério, sou iniciante, poderia explicar Melhor?

Boa tarde Juliano,

na biblioteca de fontes embutida no MT5, consta a classe CTrade.  Nesta classe tem um método de normalização de preços, que ajusta o valor passado como parâmetro para um valor aderente ao tamanho do tick do simbolo.  

Maiores detalhes veja na documentação do MT5.

At.te

Rogério

 
Rogerio Giannetti Torres:

Boa tarde Juliano,

na biblioteca de fontes embutida no MT5, consta a classe CTrade.  Nesta classe tem um método de normalização de preços, que ajusta o valor passado como parâmetro para um valor aderente ao tamanho do tick do simbolo.  

Maiores detalhes veja na documentação do MT5.

At.te

Rogério

Obrigado. Consegui!