Parar de operar dada uma condição.

Guilherme Guimaraes  

Boa noite,

Estou com um problema, queria que meu robô parasse de enviar ordens quando acontecesse o Cruzamento de Médias, porem o código da forma que escrevi faz ele parar de operar somente no instante que acontece o cruzamento e depois ele volta a enviar ordens. Pensei em colocar o ExpertRemove depois que ele identificasse um cruzamento porém isso faz com que o Backtest pare de rodar.

Alguma dica? 


void OnTick()
{
 if(Cruzamento)
     {
      FechaPosicao();
      DeltaOrdens();
      Print("Cuzamento de Média");
     }
}

bool Cruzamento()
  {

   bool CruzamentoCompra = smaArray[1]>smaLentaArray[1] &&
                           smaArray[2]<smaLentaArray[2];

   bool CruzamentoVenda = smaLentaArray[1]>smaArray[1] &&
                          smaLentaArray[2]<smaArray[2];

   if(CruzamentoCompra || CruzamentoVenda)
     {
      return (true) ;
     }
   else
     {
      return(false);
     }
  }
Razão: