CloseAll

Esegue chiusura parziale o totale della posizione.

virtual bool  CloseAll(
   double    lot    // lotto
   )

Parametri

lot

[in] Numero di lotti per ridurre la posizione.

Valore di ritorno

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

Nota

Nella modalità "netting", una posizione viene chiusa con i metodi CExpertTrade::Buy o CExpertTrade::Sell. Nella modalità "hedging", viene utilizzato il metodo CTrade::PositionCloseByTicket. Il metodo DeleteOrders() viene utilizzato per eliminare gli ordini.

Implementazione

//+------------------------------------------------------------------+
//| Chiusura posizione ed eliminazione ordini                                 |
//| INPUT:  lotti - volume da chiudere.                                  |
//| OUTPUT: true-se l'operazione di trade è stata eseguita, altrimenti false.      |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CExpert::CloseAll(double lot)
  {
   bool result=false;
//--- controllo per chiusura operazioni
   if(m_margin_mode==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)
      result=m_trade.PositionCloseByTicket(m_position.Identifier());
   else
     {
      if(m_position.PositionType()==POSITION_TYPE_BUY)
         result=m_trade.Sell(lot,0,0,0);
      else
         result=m_trade.Buy(lot,0,0,0);
     }
   result|=DeleteOrders();
//---
   return(result);
  }