- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnBookEvent
La funzione è chiamata in indicatori ed EA quando si verifica l'evento BookEvent. È pensato per gestire i cambiamenti del Depth of Market.
void OnBookEvent(
|
Parametri
symbol
[in] Nome del simbolo per cui è arrivato BookEvent
Valore di ritorno
Nessun valore di ritorno
Nota
Per ottenere gli eventi BookEvent per qualsiasi simbolo, è sufficiente iscriversi per riceverli per quel simbolo utilizzando la funzione MarketBookAdd(). Per annullare l'iscrizione per la ricezione di BookEvent per un determinato simbolo, chiamare la funzione MarketBookRelease().
Le trasmissioni di BookEvent all'interno dell'intero grafico-chart. Ciò significa che se un'applicazione su un grafico-chart si iscrive a BookEvent utilizzando la funzione MarketBookAdd, tutti gli altri indicatori ed EA lanciati sullo stesso chart e che hanno il gestore OnBookEvent() ricevono anche questo evento. Pertanto, è necessario analizzare ilnome di simbolo passato al gestore di OnBookEvent() come parametro symbol.
Contatori separati di BookEvent ordinati per simboli vengono forniti per tutte le applicazioni in esecuzione sullo stesso grafico-chart. Ciò significa che ogni chart può avere più iscrizioni a simboli diversi e viene fornito un contatore per ciascun simbolo. La sottoscrizione e l'annullamento dell'iscrizione da BookEvent modifica il contatore dell'iscrizione per i simboli specificati solo all'interno di un grafico-chart. In altre parole, potrebbero esserci due chart adiacenti a BookEvent per lo stesso simbolo ma diversi valori del contatore di iscrizioni.
Il valore del contatore dell'iscrizione iniziale è zero. A ciascuna chiamata MarketBookAdd(), il contatore dell'iscrizione per un simbolo specificato sul grafico-chart è aumentato di uno (il simbolo del chart e il simbolo in MarketBookAdd() non devono corrispondere). Quando si chiama MarketBookRelease(), il contatore delle iscrizioni per un simbolo specificato all'interno del grafico-chart è diminuito di uno. Gli eventi BookEvent per qualsiasi simbolo vengono trasmessi all'interno del chart finché il contatore non è uguale a zero. Pertanto, è importante che ogni programma MQL5 che contiene MarketBookAdd() chiami correttamente l'annullamento dell'iscrizione dal ricevere eventi per ogni simbolo che utilizza MarketBookRelease() alla fine del suo lavoro. Per raggiungere questo, il numero di chiamate MarketBookAdd() e MarketBookRelease() dovrebbe essere pari per ogni chiamata durante l'intera vita del programma MQL5. L'uso di flag o contatori di iscrizioni personalizzate all'interno del programma consente di lavorare in sicurezza con gli eventi BookEvent ed impedisce di disattivare le iscrizioni per ottenere questo evento in programmi di terze parti all'interno dello stesso grafico-chart.
Gli eventi BookEvent non vengono mai saltati e vengono sempre inseriti in una coda anche se la gestione del precedente handling di BookEvent non è ancora finita.
Esempio
//+------------------------------------------------------------------+
|
Guarda anche
MarketBookAdd, MarketBookRelease, MarketBookGet, OnTrade, OnTradeTransaction, OnTick, Funzioni di Event handling, Avvio Programma, Eventi terminale client