- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnChartEvent
La funzione è chiamata in indicatori e EA quando si verifica l'evento ChartEvent. La funzione è pensata per gestire le modifiche del grafico-chart effettuate da un utente o un programma MQL5.
void OnChartEvent()
|
Parametri
id
[in] ID evento dall'enumerazione ENUM_CHART_EVENT.
lparam
[in] parametro event di tipo long
dparam
[in] parametro event di tipo double
sparam
[in] parametro event di tipo string
Valore di ritorno
Nessun valore di ritorno
Nota
Esistono 11 tipi di eventi che possono essere gestiti utilizzando la funzione OnChartEvent() predefinita. 65535 ID da CHARTEVENT_CUSTOM a CHARTEVENT_CUSTOM_LAST incluso, sono forniti per eventi personalizzati. Per generare un evento personalizzato, usare la funzione EventChartCustom().
Breve descrizione dell'evento dall'enumerazione ENUM_CHART_EVENT:
- CHARTEVENT_KEYDOWN — premendo un tasto sulla tastiera quando una finestra del grafico-chart è a fuoco;
- CHARTEVENT_MOUSE_MOVE — spostamento del mouse e click dei pulsanti del mouse (se CHART_EVENT_MOUSE_MOVE=true per un chart);
- CHARTEVENT_OBJECT_CREATE — crea un oggetto grafico (se CHART_EVENT_OBJECT_CREATE=true per un chart);
- CHARTEVENT_OBJECT_CHANGE — modifica le proprietà dell'oggetto tramite la finestra di dialogo delle proprietà;
- CHARTEVENT_OBJECT_DELETE — elimina un oggetto grafico (se CHART_EVENT_OBJECT_DELETE=true per un chart);
- CHARTEVENT_CLICK — facendo clic su un chart;
- CHARTEVENT_OBJECT_CLICK — clic del mouse su un oggetto grafico appartenente a un chart;
- CHARTEVENT_OBJECT_DRAG — trascinamento di un oggetto grafico con il mouse;
- CHARTEVENT_OBJECT_ENDEDIT — terminazione della modifica del testo nella casella di immissione Modifica di un oggetto grafico (OBJ_EDIT);
- CHARTEVENT_CHART_CHANGE — cambio di un chart;
- CHARTEVENT_CUSTOM+n — ID evento personalizzato, dove n è compreso nell'intervallo tra 0 e 65535. CHARTEVENT_CUSTOM_LAST contiene l'ultimo ID evento personalizzato accettabile (CHARTEVENT_CUSTOM+65535).
Tutti i Programmi MQL5 lavorano in thread diversi dal thread principale dell'applicazione. Il thread dell'applicazione principale è responsabile della gestione di tutti i messaggi di sistema di Windows e, a sua volta, genera messaggi Windows per la propria applicazione come risultato di questa gestione. Ad esempio, lo spostamento del mouse su un chart (evento WM_MOUSE_MOVE) genera diversi messaggi di sistema per il rendering successivo della finestra dell'applicazione e invia anche messaggi interni ad experts ed indicatori lanciati sul chart. Può verificarsi una situazione, in cui il thread dell'applicazione principale non ha ancora elaborato il messaggio di sistema WM_PAINT (e quindi non ha ancora visualizzato il chart modificato), mentre un EA o un indicatore ha già ricevuto l'evento movimento del mouse. In questo caso, la proprietà del chart CHART_FIRST_VISIBLE_BAR verrà modificata solo dopo il rendering del chart.
Per ogni tipo di evento, gli input della funzione OnChartEvent() hanno determinati valori necessari per gestire tale evento. La tabella elenca eventi e valori passati tramite i parametri.
Evento |
valore del parametro 'id' |
valore del parametro 'lparam' |
valore del parametro 'dparam' |
valore del parametro 'sparam' |
---|---|---|---|---|
Evento di battitura |
CHARTEVENT_KEYDOWN |
codice tasto premuto |
Il numero di pressioni dei tasti generati mentre si teneva premuto il tasto nello stato premuto |
Valore di stringa della maschera bit, che descrive lo stato dei tasti della tastiera |
Eventi del mouse (se CHART_EVENT_MOUSE_MOVE=true per un chart) |
CHARTEVENT_MOUSE_MOVE |
Coordinata X |
Coordinata Y |
Valore stringa della maschera bit, che descrive lo stato dei tasti del mouse |
Evento rotellina del mouse (se CHART_EVENT_MOUSE_WHEEL=true per il chart) |
CHARTEVENT_MOUSE_WHEEL |
Flag di stati di tasti e pulsanti del mouse, coordinate X e Y del cursore. Vedere la descrizione nell' esempio |
Il valore Delta della rotellina del mouse |
— |
Creazione di un oggetto grafico (se CHART_EVENT_OBJECT_CREATE=true per un chart) |
CHARTEVENT_OBJECT_CREATE |
— |
— |
Nome di un oggetto chart creato |
Modifica delle proprietà dell'oggetto tramite la finestra di dialogo delle proprietà |
CHARTEVENT_OBJECT_CHANGE |
— |
— |
Nome di un oggetto grafico modificato |
Rimozione di un oggetto chart (se CHART_EVENT_OBJECT_DELETE=true per un chart) |
CHARTEVENT_OBJECT_DELETE |
— |
— |
Nome di un oggetto grafico rimosso |
Clic del mouse su un chart |
CHARTEVENT_CLICK |
Coordinata X |
Coordinata Y |
— |
Clic del mouse su un oggetto grafico |
CHARTEVENT_OBJECT_CLICK |
Coordinata X |
Coordinata Y |
Nome di un oggetto grafico su cui si è verificato l'evento |
Spostare un oggetto grafico con il mouse |
CHARTEVENT_OBJECT_DRAG |
— |
— |
Nome di un oggetto grafico spostato |
Completamento di una modifica del testo nella casella di immissione "Campo di immissione" degli oggetti grafici. |
CHARTEVENT_OBJECT_ENDEDIT |
— |
— |
Nome "Campo di immissione" dell'oggetto grafico, in cui è stata completata la modifica del testo |
Ridimensionamento del chart o modifica delle proprietà del chart tramite la finestra di dialogo delle proprietà |
CHARTEVENT_CHART_CHANGE |
— |
— |
— |
Evento personalizzato con numero N |
CHARTEVENT_CUSTOM+N |
Valore definito dalla funzione EventChartCustom() |
Valore definito dalla funzione EventChartCustom() |
Valore definito dalla funzione EventChartCustom() |
Esempio di Listener(ascoltatore) di eventi del chart:
//+------------------------------------------------------------------+
|
Guarda anche
EventChartCustom, Tipi di eventi del chart, Funzioni di Event handling, Avvio Programmi, Eventi terminale client