TerminalClose

Envoie au terminal l'ordre sur l'achèvement du travail.

bool  TerminalClose(
   int ret_code      // code de retour du terminal de client
   );

Paramètres

ret_code

[in]  Le code de retour rendu par le procès du terminal de client à l'achèvement du travail.

La valeur rendue

Rend true en cas du succès, autrement false.

Note

La fonction TerminalClose() ne produit pas l'arrêt immédiat du travail du terminal, elle envoie simplement au terminal la commande sur l'achèvement.

Dans le code du conseiller qui a appelé TerminalClose(), on doit faire toutes les préparations pour l'achèvement immédiat du travail (par exemple, tous les fichiers auparavant ouverts doivent être fermés). Après l'appel de cette fonction va l'opérateur return.

Le paramètre ret_code permet d'indiquer le code de retour nécessaire pour l'analyse des raisons de la cessation du travail de programme du terminal à son lancement de la ligne d'instruction.

Exemple:

//--- input parameters
input int  tiks_before=500; // quantité de ticks avant l'achèvement
input int  pips_to_go=15;   // distance aux pips 
input int  seconds_st=50;   // combien de secondes donnons-nous à l'expert
//--- globals
datetime   launch_time;
int        tick_counter=0;
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print(__FUNCTION__," reason code = ",reason);
   Comment("");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   static double first_bid=0.0;
   MqlTick       tick;
   double        distance;
//---
   SymbolInfoTick(_Symbol,tick);
   tick_counter++;
   if(first_bid==0.0)
     {
      launch_time=tick.time;
      first_bid=tick.bid;
      Print("first_bid = ",first_bid);
      return;
     }
//--- marche du prix dans les points
   distance=(tick.bid-first_bid)/_Point;
//--- montrons le message pour surveiller au travail de conseiller 
   string comm="Après le moment du lancement :\r\n\x25CF a passé des secondes: "+
               IntegerToString(tick.time-launch_time)+" ;"+
               "\r\n\x25CF ticks reçues: "+(string)tick_counter+" ;"+
               "\r\n\x25CF prix a passé dans les points: "+StringFormat("%G",distance);
   Comment(comm);
//--- section de la vérification des conditions de la clôture du terminal
   if(tick_counter>=tiks_before)
      TerminalClose(0);    // sortie selon le compteur des ticks 
   if(distance>pips_to_go)
      TerminalClose(1);    // ont passé en haut aux pips_to_go pips 
   if(distance<-pips_to_go)
      TerminalClose(-1);   // ont passé en bas aux pips_to_go pips
   if(tick.time-launch_time>seconds_st)
      TerminalClose(100);  // achèvement du travail selon le timeout
//---
  }

Voir aussi

L'exécution des programmes, Les erreurs de l'exécution, Les raisons de la déinitialisation