Erro ao enviar ordens

 

Boa noite pessoal.

Estou tendo erros nas ordens que meu EA esta enviando, erros de preço invalido, basicamente o que tenho feito é isso.

mrequest.price = NormalizeDouble(Variavel de preço,_Digits);


Se alguem puder me dar uma ajuda, agradeço.


sds,


Nilson

 
NFONSECA:

Boa noite pessoal.


Olá,

pode ser porque o price não está de acordo com Tick Size do instrumento.


double m_tick_size;
SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_SIZE,m_tick_size);

mrequest.price=NormalizeDouble(MathRound(price/m_tick_size)*m_tick_size,_Digits)
 
Rogerio Giannetti Torres:

Olá,

pode ser porque o price não está de acordo com Tick Size do instrumento.


Bom dia Rogerio.

Obrigado pela ajuda, só mais uma duvida, price neste caso é a minha variável de preço certo?

E o stoploss e Take profit, eu devo tambem fazer da mesma forma?

Obrigado

 
NFONSECA:


Obrigado pela ajuda, só mais uma duvida, price neste caso é a minha variável de preço certo?

---  Sim

E o stoploss e Take profit, eu devo tambem fazer da mesma forma?

--- Sim

 
Ficaria assim  mrequest.sl = NormalizeDouble(MathRound(Price/m_tick_size)*m_tick_size - Stop_Loss_C,_Digits);   ??
 
NFONSECA:
Ficaria assim  mrequest.sl = NormalizeDouble(MathRound(Price/m_tick_size)*m_tick_size - Stop_Loss_C,_Digits);   ??

Não, não é assim, vou dar um exemplo para compra

price =  BID - Stop_Loss_C; 

mrequest.sl=NormalizeDouble(MathRound(price /m_tick_size)*m_tick_size,_Digits)

 

Entendi, criei uma variavel fiz os calculos na função de envio de ordem passo assim.

NormalizeDouble(MathRound(STP/m_tick_size)*m_tick_size,_Digits);


Rogério, muito obrigado pela paciência.

Abraço,

Razão: