Home Trading Sistematico Post

Esempio di Test ChartEvent: Guida per MetaTrader 4

Allegato
17875.zip (4.97 KB, Scarica 2 volte)

Il Test_ChartEvent.mq4 è un Expert Advisor che dimostra i vari tipi di eventi di ChartEvent: eventi delle chiavi della tastiera, eventi di clic e movimento del mouse, eventi personalizzati. Puoi premere il tasto 'H' per ricevere aiuto e il tasto 'M' per attivare la modalità evento MOUSE_MOVE.

Il codice sorgente è compatibile con MetaTrader 4 e MetaTrader 5.


Prototipo della Funzione

  • bool Obj_Create()
  • bool Obj_Delete()
  • bool Obj_Move(int hSens,int vSens) - sposta un oggetto.
  • void Print_Info() - stampa le informazioni sugli oggetti.
  • int MouseMove(int aXX,int aYY,string sState) - gestisce l'evento di movimento del mouse.


Variabili Globali

  • int gChartNo=0
  • int gSubWinNo=0
  • string gsObj_Name_selected="" - il nome dell'oggetto attualmente selezionato.


Eventi Personalizzati

Sono definiti tre tipi di eventi personalizzati:

  • #define cMyEvent_1 0
  • #define cMyEvent_2 1
  • #define cMyEvent_3_broadcast 2


Funzione OnTimer()

Questa funzione crea periodicamente l'evento ChartEvent personalizzato. Genera casualmente questi tre eventi personalizzati (cMyEvent_1, cMyEvent_2 e cMyEvent_3_broadcast). In particolare, l'evento cMyEvent_3_broadcast viene generato per tutte le finestre di grafico aperte.


Esempio di Classe

La classe CObjectMan è creata per gestire la funzionalità degli oggetti su un grafico. Due istanze (variabili) della classe sono dichiarate: gObjectMan1 e gObjectMan2.

I nomi degli oggetti grafici collegati a queste due istanze sono rispettivamente: "Pulsante Verde" e "Pulsante Giallo".


Elaborazione degli Eventi

void OnChartEvent():

Gli eventi "CHARTEVENT_KEYDOWN":

  1. 4 tasti direzionali (frecce) o i 4 tasti direzionali sul pannello digitale per muovere l'oggetto selezionato.
  2. 'H': stampa le informazioni di aiuto (nella finestra di log dell'expert).
  3. 'I': stampa le informazioni sulle posizioni di due oggetti.
  4. 'M': attiva l'evento MOUSE_MOVE.


Eventi Personalizzati

Stampa informazioni su questi eventi, in particolare per l'evento MyEvent_3_broadcast.


Eventi degli Oggetti

  • CHARTEVENT_OBJECT_CHANGE, CHARTEVENT_OBJECT_DRAG, CHARTEVENT_OBJECT_DELETE - stampa il nome corrispondente dell'oggetto.
  • CHARTEVENT_OBJECT_CLICK - stampa il nome dell'oggetto cliccato, seleziona il suo nome per muoverlo con i tasti direzionali.


Eventi del Mouse

  • CHARTEVENT_CLICK - stampa le informazioni della barra cliccata: i prezzi (apertura, chiusura) e il tempo della barra.
  • CHARTEVENT_MOUSE_MOVE (vedi: CHART_EVENT_MOUSE_MOVE) - stampa le informazioni dell'intervallo coperto: numero di barre, variazione di prezzo.

Esempio di Test ChartEvent


Dimostrazione

Puoi eseguire i seguenti test:

  • Clicca su uno dei due oggetti (Pulsanti) per selezionarlo e usa i tasti freccia per muovere l'oggetto selezionato.
  • Clicca su una barra grafica e osserva le informazioni della barra nella scheda di log (messaggio).
  • Premi il tasto 'M' per entrare nella modalità evento MOUSE_MOVE. Premi Ctrl+F per mostrare il cursore, quindi esegui un'operazione di drag'n'drop. Se non vedi il messaggio di log, cambia il parametro di input: "iLogLevel".

Post correlati

Commento (0)