OnStart

Die Funktion wird aufgerufen, wenn das Ereignis Start eintritt. Diese Funktion wird in einem Skript einmal aufgerufen und ausgeführt. Es gibt zwei Versionen dieser Funktion.

Die Version gibt ein Ergebnis zurück

int  OnStart(void);

Rückgabewert

Der Rückgabewert vom Typ int wird im Journal-Tab angezeigt.

Der Eintrag "Skript Skript-Name wurde entfernt (Ergebniscode N)" wird im Journal des Terminals geschrieben, nachdem die Skriptausführung abgeschlossen ist. Hier ist N ein Wert, der von der Funktion OnStart() zurückgegeben wird.

Der Eintrag "service Dienst_Name stopped (Ergebniscode N)" wird im Journal des Terminals angelegt, nachdem sich die Ausführung eines Dienstes beendet hat. Hier ist N ein Wert, der von der Funktion OnStart() zurückgegeben wird.

Der Aufruf von OnStart(), der das Ausführungsergebnis zurückgibt, wird zur Verwendung empfohlen, da er nicht nur eine Skript- oder Dienstausführung ermöglicht, sondern auch einen Fehlercode oder andere nützliche Daten zur Analyse des Ergebnisses der Programmausführung zurückgibt.

Die Version ohne Ergebnisrückgabe wird nur aus Kompatibilitätsgründen mit alten Codes belassen. Ein Verwenden wird nicht empfohlen.

void  OnStart(void);

Hinweis

OnStart() ist die einzige Funktion zur Behandlung von Ereignissen in Skripten und Diensten. An diese Programme werden keine weiteren Ereignisse gesendet. Das Ereignis Start wird wiederum nicht an EAs und nutzerdefinierte Indikatoren übergeben.

Beispielskript

//--- Makros für die Arbeit mit Farben
#define XRGB(r,g,b)    (0xFF000000|(uchar(r)<<16)|(uchar(g)<<8)|uchar(b))
#define GETRGB(clr)    ((clr)&0xFFFFFF)
//+------------------------------------------------------------------+
//| Script Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Setzen der Farbe der Abwärtskerzen
   Comment("Set a downward candle color"); 
   ChartSetInteger(0,CHART_COLOR_CANDLE_BEAR,GetRandomColor());
   ChartRedraw(); // Chart sofort aktualisieren ohne auf einen neuen Tick zu warten
   Sleep(1000);   // Warte 1 Sekunde, um alle Änderungen zu sehen
//--- Setzen der Farbe der Aufwärtskerzen
   Comment("Set an upward candle color"); 
   ChartSetInteger(0,CHART_COLOR_CANDLE_BULL,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Hintergrundfarbe
   Comment("Set the background color"); 
   ChartSetInteger(0,CHART_COLOR_BACKGROUND,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Farbe der Ask-Linie
   Comment("Set color of Ask line"); 
   ChartSetInteger(0,CHART_COLOR_ASK,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Farbe der Bid-Linie
   Comment("Set color of Bid line"); 
   ChartSetInteger(0,CHART_COLOR_BID,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);    
//--- Setzen der Farbe einer Abwärtsbar und des Rahmens der Abwärtskerze
   Comment("Set color of a downward bar and a downward candle frame"); 
   ChartSetInteger(0,CHART_COLOR_CHART_DOWN,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Farbe der Chartlinie und der Doji-Kerzen
   Comment("Set color of a chart line and Doji candlesticks"); 
   ChartSetInteger(0,CHART_COLOR_CHART_LINE,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Farbe einer Aufwärtsbar und des Rahmens einer Aufwärtskerze  
   Comment("Set color of an upward bar and an upward candle frame"); 
   ChartSetInteger(0,CHART_COLOR_CHART_UP,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Farben der Achsen, des Maßstabes und der Linien OHLC
   Comment("Set color of axes, scale and OHLC line"); 
   ChartSetInteger(0,CHART_COLOR_FOREGROUND,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Gitterfarbe
   Comment("Set a grid color"); 
   ChartSetInteger(0,CHART_COLOR_GRID,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Farbe des letzten Preises
   Comment("Set Last price color"); 
   ChartSetInteger(0,CHART_COLOR_LAST,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Farben von Stop-Loss und Take-Profit
   Comment("Set color of Stop Loss and Take Profit order levels"); 
   ChartSetInteger(0,CHART_COLOR_STOP_LEVEL,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- Setzen der Farbe des Volumens und des Markteintritts
   Comment("Set color of volumes and market entry levels"); 
   ChartSetInteger(0,CHART_COLOR_VOLUME,GetRandomColor());
   ChartRedraw();
  }
//+------------------------------------------------------------------+
//| Rückgabe einer zufällig gewählten Farbe                          |
//+------------------------------------------------------------------+
color GetRandomColor()
  {
   color clr=(color)GETRGB(XRGB(rand()%255,rand()%255,rand()%255));
   return clr;
  }

Siehe auch

Ereignisbearbeiter, Durchführung der Programme, Ereignisse des Client-Terminals