CheckClose

Prüft die Notwendigkeit aus dem Markt zu gehen.

virtual bool  CheckClose()

Rückgabewert

Gibt true zurück wenn eine Operation ausgeführt ist, ansonsten gibt false zurück.

Hinweis

  1. Prüft die Notwendigkeit aus dem Markt durch Software-Stop-Out (Aufruf der CheckClose()-Methode des Kapitalmanagement-Objekts) zu gehen. Wenn die Bedingung erfüllt ist, schließen wir die Position, löschen wir alle Ordern (Aufruf der CloseAll ()-Methode) und verlassen.
  2. Prüft die Notwendigkeit eine Long- oder Short-Position zu schließen (Aufruf von CheckCloseLong() oder CheckCloseShort()) und wenn die Position geschlossen ist, löscht alle Ordern (Aufruf vonDeleteOrders()).

Implementierung

//+------------------------------------------------------------------+
//| Check for position close or limit/stop order delete              |
//| INPUT:  no.                                                      |
//| OUTPUT: true-if trade operation processed, false otherwise.      |
//| REMARK: no.                                                      |
//+------------------------------------------------------------------+
bool CExpert::CheckClose()
  {
   double lot;
//--- position must be selected before call
   if((lot=m_money.CheckClose(GetPointer(m_position)))!=0.0)
      return(CloseAll(lot));
//--- check for position type
   if(m_position.PositionType()==POSITION_TYPE_BUY)
     {
      //--- check the possibility of closing the long position / delete pending orders to buy
      if(CheckCloseLong())
        {
         DeleteOrders();
         return(true);
        }
     }
   else
     {
      //--- check the possibility of closing the short position / delete pending orders to sell
      if(CheckCloseShort())
        {
         DeleteOrders();
         return(true);
        }
     }
//--- return without operations
   return(false);
  }