CheckClose

Controlla condizioni per chiudere la posizione.

virtual bool  CheckClose()

Valore di ritorno

true se è stata eseguita un'operazione di trade, altrimenti false.

Nota

  1. Controlla le condizioni di Stop Out dell' Expert Advisor (CheckClose () metodo dell'oggetto di gestione del denaro) . Se la condizione è soddisfatta, chiude la posizione ed elimina tutti gli ordini (CloseAll()) ed esce.
  2. Controlla le condizioni per chiudere una posizione long o short (metodi CheckCloseLong() o CheckCloseShort()) e se la posizione è chiusa, elimina tutti gli ordini (metodo DeleteOrders()).

Implementazione

//+------------------------------------------------------------------+
//| Controlla per la posizione chiusa o eliminazione di ordini limit/stop |
//| INPUT:  no.                                                      |
//| OUTPUT: true-se l'operazione di trade è stata elaborata, altrimenti false.      |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CExpert::CheckClose()
  {
   double lot;
//--- la posizione dev'essere selezionata prima della chiamata
   if((lot=m_money.CheckClose(GetPointer(m_position)))!=0.0)
      return(CloseAll(lot));
//--- controllo del tipo di posizione
   if(m_position.PositionType()==POSITION_TYPE_BUY)
     {
      //--- controllo della possibilità di chiusura della posizione long / eliminazione ordini pendenti per buy
      if(CheckCloseLong())
        {
         DeleteOrders();
         return(true);
        }
     }
   else
     {
      //--- controllo della possibilità di chiusura della posizione short / eliminazione ordini pendenti per sell
      if(CheckCloseShort())
        {
         DeleteOrders();
         return(true);
        }
     }
//--- ritorno senza operazioni
   return(false);
  }