Definindo fechamento da minha posição baseado nos pontos obtidos de gain ou loss

Maurício Júnior  

Boa noite

Estou verificando no meu código pela quantidade de pontos que andou a favor para o gain ou contra para o loss

No gain ele está funcionando normalmente, porém no loss ele não está funcionando, podem me ajudar

Quanto ativa o sinal de venda, gravo o preço da entrada

     m_PrecoEntrada = NormalizeDouble(m_trade.RequestPrice(),0);

Depois fico verificando se atingiu o pontos desejados para gain ou loss e tenta fechar a posição

m_PrecoAtual = NormalizeDouble(PrecoAtual(),0);

 if ((m_PrecoAtual <= (m_PrecoEntrada - m_pontosalvo)) || ((m_PrecoAtual >= m_PrecoEntrada + m_pontosalvo)))

 {

           m_trade.PositionClose(m_symbol,m_deviation);

}

Preço atual é gerado através da função PrecoAtual()

double CEngine::PrecoAtual(void)

{

 double last= SymbolInfoDouble(Symbol(),SYMBOL_LAST);

   int digits =(int)SymbolInfoInteger(Symbol(),SYMBOL_DIGITS);

   last=NormalizeDouble(last,digits);

   return last;

}

A verificação quando caminha a favor do gain funciona normalmente, porém quando caminha para o loss não é executado

Podem me ajudar

Razão: