OnStart

La fonction est appelée dans les EA lorsque l'évènement Start apparaît. La fonction est prévue pour l'exécution unique d'actions implémentées dans le script. Il y a 2 types de fonctions.

Version retournant un résultat

int  OnStart(void);

Valeur de Retour

La valeur de type int affichée dans l'onglet Journal.

L'entrée "script nom_du_script removed (result code N)" est créée dans le journal du terminal après la fin de l'exécution du script. Ici N est une valeur retournée par la fonction OnStart().

L'entrée "service nom_du_service stopped (result code N)" est créée dans le journal du terminal après la fin de l'exécution du service. Ici N est une valeur retournée par la fonction OnStart().

Il est recommandé d'utiliser l'appel OnStart() retournant le résultat de l'exécution puisqu'il permet non seulement l'exécution d'un script ou d'un service, mais retourne également un code d'erreur et d'autres données utiles pour analyser le résultat de l'exécution du programme.

La version sans retour de résultat n'est utilisé que pour la compatibilité avec les anciens codes. Il n'est pas recommandé de l'utiliser

void  OnStart(void);

Note

OnStart() est la seule fonction pour gérer des évènements dans les scripts et dans les services. Aucun autre évènement n'est envoyé à ces programmes. A son tour, l'évènement Start n'est pas passé aux EA et aux indicateurs personnalisés.

SCript exemple :

//--- macros utilisant les couleurs
#define XRGB(r,g,b)    (0xFF000000|(uchar(r)<<16)|(uchar(g)<<8)|uchar(b))
#define GETRGB(clr)    ((clr)&0xFFFFFF)
//+------------------------------------------------------------------+
//| Fonction de démarrage du script                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- définit la couleur des bougies baissières
   Comment("Définit la couleur des bougies baissières"); 
   ChartSetInteger(0,CHART_COLOR_CANDLE_BEAR,GetRandomColor());
   ChartRedraw(); // met à jour le graphique immédiatement sans attendre un nouveau tick
   Sleep(1000);   // effectue une pause d'1 seconde pour voir les changements
//--- définit la couleur des bougies haussières
   Comment("Définit la couleur des bougies haussières"); 
   ChartSetInteger(0,CHART_COLOR_CANDLE_BULL,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur d'arrière plan
   Comment("Définit la couleur d'arrière plan"); 
   ChartSetInteger(0,CHART_COLOR_BACKGROUND,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur de la ligne Ask
   Comment("Définit la couleur de la ligne Ask"); 
   ChartSetInteger(0,CHART_COLOR_ASK,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur de la ligne Bid
   Comment("Définit la couleur de la ligne Bid"); 
   ChartSetInteger(0,CHART_COLOR_BID,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);    
//--- définit la couleur d'une barre baissière et du contour d'une bougie baissière
   Comment("Définit la couleur d'une barre baissière et du contour d'une bougie baissière"); 
   ChartSetInteger(0,CHART_COLOR_CHART_DOWN,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur de la ligne du graphique en courbre et des bougies Dojo
   Comment("Définit la couleur de la ligne du graphique en courbre et des bougies Dojo"); 
   ChartSetInteger(0,CHART_COLOR_CHART_LINE,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur d'une barre haussière et du contour d'une bougie haussière  
   Comment("Définit la couleur d'une barre haussière et du contour d'une bougie haussière"); 
   ChartSetInteger(0,CHART_COLOR_CHART_UP,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur des axes, des échelles et de la ligne OHLC
   Comment("Définit la couleur des axes, des échelles et de la ligne OHLC"); 
   ChartSetInteger(0,CHART_COLOR_FOREGROUND,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur de la grille
   Comment("Définit la couleur de la grille"); 
   ChartSetInteger(0,CHART_COLOR_GRID,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur du prix Last
   Comment("Définit la couleur du prix Last"); 
   ChartSetInteger(0,CHART_COLOR_LAST,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur des niveaux des ordres Stop Loss et Take Profit
   Comment("Définit la couleur des niveaux des ordres Stop Loss et Take Profit"); 
   ChartSetInteger(0,CHART_COLOR_STOP_LEVEL,GetRandomColor());
   ChartRedraw(); 
   Sleep(1000);   
//--- définit la couleur des volumes et des niveaux d'entrée sur le marché
   Comment("Définit la couleur des volumes et des niveaux d'entrée sur le marché"); 
   ChartSetInteger(0,CHART_COLOR_VOLUME,GetRandomColor());
   ChartRedraw();
  }
//+------------------------------------------------------------------+
//| Retourne une couleur générée aléatoirement                       |
//+------------------------------------------------------------------+
color GetRandomColor()
  {
   color clr=(color)GETRGB(XRGB(rand()%255,rand()%255,rand()%255));
   return clr;
  }

Voir également

Fonctions de gestion des évènements, Exécution du programme, Evènements du terminal client