CheckClose

Vérifie les conditions de clôture d'une position.

virtual bool  CheckClose()

Valeur de retour

vrai si l'opération a été éxécutée, sinon faux.

Note

  1. Cette fonction vérifie les conditions de sortie (Stop Out) de l'Expert Advisor (méthode CheckClose() de l'objet money management). Si la condition est satisfaite, cette fonction ferme la position et supprime tous les ordres (CloseAll(...)) et sort.
  2. Elle vérifie les conditions pour fermer une position longue ou courte (méthodes CheckCloseLong() ou CheckCloseShort()) et si la position est fermée, elle supprime tous les ordres (méthode DeleteOrders()).

Implémentation

//+------------------------------------------------------------------+
//| Vérif. pour fermer une position ou supprimer un ordre limite/stop|
//| ENTREE : aucune. |
//| SORTIE : vrai si réalisé avec succès, faux sinon. |
//| REMARQUE : aucune.                                                      |
//+------------------------------------------------------------------+
bool CExpert::CheckClose()
  {
   double lot;
//--- la position doit être sélectionnée avant l'appel
   if((lot=m_money.CheckClose(GetPointer(m_position)))!=0.0)
      return(CloseAll(lot));
//--- vérifie le type de position
   if(m_position.PositionType()==POSITION_TYPE_BUY)
     {
      //--- vérifie la possibilité de fermer la position longue / supprimer les ordres en attente d'achat
      if(CheckCloseLong())
        {
         DeleteOrders();
         return(true);
        }
     }
   else
     {
      //--- vérifie la possibilité de fermer la position courte / supprimer les ordres en attente de vente à découvert
      if(CheckCloseShort())
        {
         DeleteOrders();
         return(true);
        }
     }
//--- retour sans traitement
   return(false);
  }