Forçar ordem a abrir somente com a quantidade de pontos determinado ?

 

Salve galera. 

Estou criando uma estratégia para que meu EA abra ordens conforme uma quantidade determinada de pontos, e somente se for maior abra essa ordem, nem msm maior ou igual é permitido.

Para isso, criei um método que verifica a distancia da ultima ordem para a proxima e se for permitido então a proxima ordem é aberta. 

Isso já esta funcionando, com exceção de que as vezes a ordem é aberta com a quantidade menor de pontos que foi determinada, por exemplo,

o usuario determinou que somente pode abrir ordens quando for maior de 100 pontos desde a ultima aberta.

Geralmente, isso acontece, de abrir uma ordem com menos pontos quando o mercado está com muita volatilidade, quando esta calmo é respeitado 

a condição.

Minha pergunta é, como posso forçar para abrir uma nova ordem se, e somente se, atingir a quantidade de pontos determinada ?


Estou tentando assim.


/**
   verifica se pode abrir uma nova ordem após um determinado numero de pontos
   
   mn = magic number
   dio = distance orders
   
*/
bool isOpenNextOrder(int mn, double dio){      
   double _points = 0;   
   int _ticket = getLastTicketOrder(mn);   
   
   if(OrderSelect(_ticket, SELECT_BY_TICKET)){
      RefreshRates();
      
      
         if(OrderType() == OP_BUY){
            _points = NormalizeDouble((OrderOpenPrice() - OrderClosePrice()) / Point, Digits);            
            if(_points > dio){
               return true;
            }
         }      
           
         if(OrderType() == OP_SELL){
            _points = NormalizeDouble((OrderClosePrice() - OrderOpenPrice()) / Point, Digits);            
            if(_points > dio){
               return true;
            }
         }      
           
   }
      
   return false;
}
Razão: