- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnChartEvent
La fonction est appelée dans les indicateurs et les EA lorsque l'évènement ChartEvent se produit. La fonction permet de gérer les changements du graphique opérés par l'utilisateur ou par un programme MQL5.
void OnChartEvent()
|
Parameters
id
[in] Identifiant de l'évènement issu de l'énumération ENUM_CHART_EVENT.
lparam
[in] Paramètre de l'évènement de type long
dparam
[in] Paramètre de l'évènement de type double
sparam
[in] Paramètre de l'évènement de type string
Valeur de Retour
Aucune valeur de retour
Note
Il existe 13 types d'évènements pouvant être gérés avec la fonction prédéfinie OnChartEvent(). 65535 identifiants de CHARTEVENT_CUSTOM à CHARTEVENT_CUSTOM_LAST inclus sont fournis pour les évènements personnalisés. Pour générer un évènement personnalisé, utilisez la fonction EventChartCustom().
Descriptions courtes des évènements de l'énumération ENUM_CHART_EVENT :
- CHARTEVENT_KEYUP se produit lorsqu'une touche du clavier est relâchée, à condition que la fenêtre du graphique ait le focus d'entrée ;
- CHARTEVENT_KEYDOWN appui d'une touche du clavier lorsque le focus est sur la fenêtre du graphique ;
- CHARTEVENT_MOUSE_MOVE déplacement de la souris et clics sur l'un des boutons de la souris (si CHART_EVENT_MOUSE_MOVE=true pour le graphique) ;
- CHARTEVENT_OBJECT_CREATE création d'un objet graphique (si CHART_EVENT_OBJECT_CREATE=true pour le graphique) ;
- CHARTEVENT_OBJECT_CHANGE changement des propriétés d'un objet via la fenêtre des propriétés ;
- CHARTEVENT_OBJECT_DELETE suppression d'un objet graphique (si CHART_EVENT_OBJECT_DELETE=true pour le graphique) ;
- CHARTEVENT_CLICK clic sur le graphique ;
- CHARTEVENT_OBJECT_CLICK clic de souris sur un objet graphique appartement au graphique ;
- CHARTEVENT_OBJECT_DRAG déplacement d'un objet graphique avec la souris ;
- CHARTEVENT_OBJECT_ENDEDIT fin de l'édition d'un texte dans une zone de saisie d'un objet graphique (OBJ_EDIT) ;
- CHARTEVENT_CHART_CHANGE changement de graphique ;
- CHARTEVENT_CUSTOM+n identifiant d'un évènement personnalisé, où n est dans l'intervalle 0 à 65535. CHARTEVENT_CUSTOM_LAST contient le dernier identifiant possible pour un évènement personnalisé (CHARTEVENT_CUSTOM+65535).
Tous les programmes MQL5 fonctionnent dans des threads différents du thread principal de l'application. Le thread principal de l'application est responsable de la gestion de tous les messages systèmes de Windows et à son tour, génère des messages Windows pour sa propre utilisation. Par exemple, le déplacement de la souris sur le graphique (évènement WM_MOUSE_MOVE) génère plusieurs messages systèmes pour faire le rendu sur la fenêtre de l'application, et envoie aussi des messages internes aux experts et aux indicateurs lancés sur le graphique. Une situation peut se produire où le thread principal de l'application n'a pas encore traité le message système WM_PAINT (et n'a donc pas encore redessiné le graphique modifié), alors qu'un EA ou un indicateur a déjà reçu l'évènement du mouvement de la souris. Dans ce cas, la propriété CHART_FIRST_VISIBLE_BAR du graphique ne sera changée le rafraîchissement du graphique.
Pour chaque type d'évènement, les paramètres d'entrée de la fonction OnChartEvent() ont certaines valeurs nécessaires pour traiter cet évènement. Le tableau liste les évènements et les valeurs passées via les paramètres.
Evènement |
Valeur du paramètre 'id' |
Valeur du paramètre 'lparam' |
Valeur du paramètre 'dparam' |
Valeur du paramètre 'sparam' |
|---|---|---|---|---|
Événement de libération d'une touche |
CHARTEVENT_KEYUP |
Code de la touche relâchée |
Le nombre de répétitions d'événements est toujours de 1 |
Une valeur de textuelle du masque de bits décrivant l'état des touches de modification.. Voir le message WM_KEYUP |
Evènement d'appui sur une touche |
CHARTEVENT_KEYDOWN |
Code de la touche enfoncée |
Le nombre de répétitions de l'événement tant que la touche reste enfoncée |
Une valeur de textuelle du masque de bits décrivant l'état des touches de modification.. Voir le WM_KEYDOWN message |
Evènements souris (si CHART_EVENT_MOUSE_MOVE=true pour le graphique) |
CHARTEVENT_MOUSE_MOVE |
Coordonnée X |
Coordonnée Y |
Valeur sous forme d'une chaîne de caractères du masque de bits, qui décrit le statut des boutons de la souris |
Evènement de la molette de la souris (si CHART_EVENT_MOUSE_WHEEL=true pour le graphique) |
CHARTEVENT_MOUSE_WHEEL |
Flags des états des touches et des boutons de la souris, les coordonnées X et Y du curseur. Voir la description dans l'exemple |
La valeur Delta du défilement de la molette de la souris |
|
Création d'un objet graphique (si CHART_EVENT_OBJECT_CREATE=true pour le graphique) |
CHARTEVENT_OBJECT_CREATE |
|
|
Nom d'un objet graphique créé |
Changement des propriétés d'un objet via la fenêtre des propriétés |
CHARTEVENT_OBJECT_CHANGE |
|
|
Nom d'un objet graphique modifié |
Suppression d'un objet graphique (si CHART_EVENT_OBJECT_DELETE=true pour le graphique) |
CHARTEVENT_OBJECT_DELETE |
|
|
Nom d'un objet graphique supprimé |
Clic de la souris sur un graphique |
CHARTEVENT_CLICK |
Coordonnée X |
Coordonnée Y |
|
Clic de la souris sur un objet graphique |
CHARTEVENT_OBJECT_CLICK |
Coordonnée X |
Coordonnée Y |
Nom d'un object graphique sur lequel l'évènement s'est produit |
Déplacement d'un objet graphique avec la souris |
CHARTEVENT_OBJECT_DRAG |
|
|
Nom de l'objet graphique déplacé |
Fin d'édition du texte dans la zone de saisie de l'objet graphique Champ d'Edition |
CHARTEVENT_OBJECT_ENDEDIT |
|
|
Nom de l'objet graphique Champ d'Edition dans lequel l'édition du texte est terminée |
Changement de la taille du graphique ou modification des propriétés du graphique via la boîte de dialogue des propriétés |
CHARTEVENT_CHART_CHANGE |
|
|
|
Evènement personnalisé avec le nombre N |
CHARTEVENT_CUSTOM+N |
Valeur définie par la fonction EventChartCustom() |
Valeur définie par la fonction EventChartCustom() |
Valeur définie par la fonction EventChartCustom() |
Exemple de listener d'évènement du graphique :
//+------------------------------------------------------------------+
|
Voir également
EventChartCustom, Types d'évènements graphiques, Fonctions de gestion des évènements, Exécution du programme, Evènements du terminal client