CloseAll

Realiza el cierre parcial de las posiciones.

virtual bool  CloseAll(
   double    lot    // lote
   )

Parámetros

lot

[in] Número de lotes con que reducir la posición.

Valor devuelto

true si la operación se ha ejecutado; en caso contrario false.

Nota

En el modo de "compensación" del registro de posiciones, el cierre se produce con los métodos CExpertTrade::Buy o CExpertTrade::Sell. En el modo de "cobertura", con el método CTrade::PositionClose, que también se puede usar en las cuentas con el sistema de compensación. Para eliminar todas las órdenes pendientes, se utiliza el método DeleteOrders().

Implementación

//+------------------------------------------------------------------+
//| Cierre de la posición y borrado de órdenes                                 |
//| ENTRADA:  lote - volumen de cierre.                                  |
//| SALIDA: true si la operación se procesa; false en caso contrario.      |
//| OBSERVACIONES: no.                                                      |
//+------------------------------------------------------------------+
bool CExpert::CloseAll(double lot)
  {
   bool result;
//--- comprueba el cierre de las operaciones
   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);
  }