- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnBookEvent
La fonction est appelée dans les indicateurs et les EA lorsque l'évènement BookEvent apparaît. Il est prévu pour gérer les changements dans le Depth of Market.
void OnBookEvent(
|
Parameters
symbol
[in] Nom du symbole pour lequel le BookEvent est arrivé
Valeur de Retour
Aucune valeur de retour
Note
Pour récupérer les évènements BookEvent pour n'importe quel symbole, abonnez-vous simplement pour les recevoir pour ce symbole en utilisant la fonction MarketBookAdd(). Pour annuler un abonnement pour recevoir le BookEvent pour un symbole donné, appelez la fonction MarketBookRelease().
Le BookEvent est diffusé dans le graphique entier. Ceci signifie que si une application sur un graphique souscrit à BookEvent avec la fonction MarketBookAdd, tous les autres indicateurs et EA lancés sur le même graphique et ayant la fonction OnBookEvent() recevront également cet évènement. Il est donc nécessaire d'analyser le nom du symbole passé à la fonction OnBookEvent() dans le paramètre symbol.
Différents compteurs de BookEvent triés par symboles sont fournis pour toutes les applications en cours d'exécution sur un même graphique. Cela signifie que chaque graphique peut avoir plusieurs abonnements à différents symboles et un compteur est fourni pour chaque symbole. S'abonner et de désabonner aux changements BookEvent ne modifie le compteur d'abonnements que pour les symboles spécifiés dans un seul graphique. En d'autres termes, deux graphiques adjacents peuvent co-éxister pour le même symbole mais avec des valeurs différentes des compteurs d'abonnement.
La valeur initiale du compteur d'abonnement est zéro. A chaque appel à MarketBookAdd(), le compteur d'abonnement pour un symbole spécifié sur le graphique est augmenté de 1 (le symbole du graphique et le symbole de MarketBookAdd() n'ont pas besoin de correspondre). Lors de l'appel à MarketBookRelease(), le compteur d'abonnements pour un symbole spécifié dans le graphique est réduit de 1. Les évènements BookEvent pour n'importe quel symbole sont diffusés dans le graphique jusqu'à ce que le compteur soit égal à zéro. Il est donc important que chaque programme MQL5 contenant MarketBookAdd () appelle se désabonnent correctement des évènements pour chaque symbole en utilisant MarketBookRelease () à la fin de son travail. Pour cela, le nombre d'appels à MarketBookAdd() et à MarketBookRelease() doivent être égaux pour chaque appel pendant le cycle de vie entier du programme MQL5. L'utilisation de flags ou de compteurs d'abonnements personnalisés dans le programme vous permet de travailler en toute sécurité avec les événements BookEvent et empêche de désactiver les abonnements pour obtenir cet événement dans des programmes tiers dans le même graphique.
Les évènements BookEvent ne sont jamais ignorés et sont toujours placés dans une queue, même si le traitement du BookEvent précédent n'est pas encore terminé.
Exemple
//+------------------------------------------------------------------+
|
Voir également
MarketBookAdd, MarketBookRelease, MarketBookGet, OnTrade, OnTradeTransaction, OnTick, Fonctions de gestion des évènements, Exécution du programme, Evènements du terminal client