TerminalClose

Sendet dem Teminal den Befehl, Operation zu beenden.

bool  TerminalClose(
   int ret_code      // Abschlusskode des Client-Terminals 
   );

Parameter

ret_code

[in]  Rückgabewert, der vom Prozess des Client-Terminals beim Operationsabschluss zurückgegeben wird.

Rückgabewert

Gibt  true beim Erfolg zurück, sonst false.

Hinweis

Funktion TerminalClose() stoppt die Terminalsoperation nicht sofort, sie sendet dem Terminal den Befehl, Arbeit abzuschliessen.

Im Ratgeberkode, der  TerminalClose() aufgerufen hat,muessen alle Vorbereitungen gemacht werden, um Operation sofort zu beenden (ZB alle früher geoeffnete Dateien muessen routinemäßig gesclossen werden). Sofort nach Aufruf dieser Funktion muss die Anweisung return .

Parameter ret_code ermöglicht  den notwendigen Rückgabekode anzugeben, um Gruende des Programmabschlusses der Terminalsoperation zunanalysieren, wenn das Teminal aus der Befehlszeile gestartet wird.

Beispiel:

//--- input parameters
input int  tiks_before=500; // Zahl der Ticks bis Abschluss
input int  pips_to_go=15;   // Distanz in Pips  
input int  seconds_st=50;   // Zahl der Sekunden gegeben dem Experten 
//--- 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;
     }
//--- Preisgang in Punkten
   distance=(tick.bid-first_bid)/_Point;
//--- Gebenwir die Meldung aus, um Arbeit des Experten zu befolgen
   string comm="Vom Start:\r\n\x25CF vergang es Sekunden: "+
               IntegerToString(tick.time-launch_time)+" ;"+
               "\r\n\x25CF erhaltene Ticks: "+(string)tick_counter+" ;"+
               "\r\n\x25CF Preis ging in Punkten: "+StringFormat("%G",distance);
   Comment(comm);
//--- Abschnitt für Pruefung der Bedingungen für Terminalabschluss
   if(tick_counter>=tiks_before)
      TerminalClose(0);    // Ende nach Tickcounter 
   if(distance>pips_to_go)
      TerminalClose(1);    // gehen oben um Pipszahl  pips_to_go 
   if(distance<-pips_to_go)
      TerminalClose(-1);   // gehen unten um Pipszahl pips_to_go 
   if(tick.time-launch_time>seconds_st)
      TerminalClose(100);  // Beenden laut Timeout
//---
  }

Sehen Sie auch

Programmausführung, Ausführungsfehler, Deinitialisierungsguende