De "Test_ChartEvent.mq4" Expert Advisor is een voorbeeld dat de verschillende soorten ChartEvent laat zien: toetsenbordgebeurtenissen, muisklik- en bewegingsevents, en aangepaste events. Druk op de 'H'-toets voor hulp en de 'M'-toets om de MOUSE_MOVE eventmodus in te schakelen.
De broncode werkt zowel in MetaTrader 4 als in MetaTrader 5.
Functie Prototype
- bool Obj_Create()
- bool Obj_Delete()
- bool Obj_Move(int hSens,int vSens) - verplaatst een object.
- void Print_Info() - drukt informatie over de objecten af.
- int MouseMove(int aXX,int aYY,string sState) - behandelt de muisbewegingsevent.
Globale Variabelen
- int gChartNo=0
- int gSubWinNo=0
- string gsObj_Name_selected="" - de naam van het momenteel geselecteerde object.
Aangepaste Events
Er zijn drie soorten aangepaste events gedefinieerd:
- #define cMyEvent_1 0
- #define cMyEvent_2 1
- #define cMyEvent_3_broadcast 2
OnTimer() Functie
Deze functie creëert periodiek de aangepaste ChartEvent. De functie genereert willekeurig deze drie aangepaste events (cMyEvent_1, cMyEvent_2 en cMyEvent_3_broadcast). Met name het cMyEvent_3_broadcast event wordt gegenereerd voor alle open grafieken.
Voorbeeld van een klasse
De klasse CObjectMan is gemaakt om de functionaliteit voor objecten op een grafiek te beheren. Er zijn twee instanties (variabelen) van de klasse gedeclareerd: gObjectMan1 en gObjectMan2.
De namen van de Grafische Objecten die aan deze twee instanties zijn gekoppeld zijn respectievelijk: "Groene Knop" en "gele Knop".
Eventverwerking
void OnChartEvent():
De "CHARTEVENT_KEYDOWN" events:
- 4 richtingspijlen (pijltjes) of de 4 richtingspijlen op het digitale paneel om het geselecteerde object te verplaatsen.
- 'H': druk de hulpinformatie af (in het logvenster van de expert).
- 'I': druk de positie-informatie van twee objecten af.
- 'M': activeer de MOUSE_MOVE event.
Aangepaste Events
Print informatie over deze events. Vooral voor het MyEvent_3_broadcast event.
Object Events
- CHARTEVENT_OBJECT_CHANGE, CHARTEVENT_OBJECT_DRAG, CHARTEVENT_OBJECT_DELETE - print de naam van het bijbehorende object.
- CHARTEVENT_OBJECT_CLICK - print de naam van het aangeklikte object, selecteer de naam om te verplaatsen met de richtingspijlen.
Muis Events
- CHARTEVENT_CLICK - print de informatie van de aangeklikte balk: de prijzen (open, close) en de tijd van de balk.
- CHARTEVENT_MOUSE_MOVE (zie: CHART_EVENT_MOUSE_MOVE) - print de informatie van het afgedekte interval: aantal balken, prijsvariatie.

Demonstatie
Je kunt de volgende tests uitvoeren:
- Klik op een van de twee objecten (knoppen) om deze te selecteren en gebruik de pijltjestoetsen om het geselecteerde object te verplaatsen.
- Klik op de grafiekbalk en zie de informatie van de balk in het logtabblad (bericht).
- Druk op de 'M'-toets om de MOUSE_MOVE eventmodus in te schakelen. Druk op Ctrl+F om de kruislijn weer te geven en voer een sleep- en neerlaatactie uit. Als je het logbericht niet ziet, wijzig dan de invoerparameter: "iLogLevel".
Gerelateerde berichten
- MQL5 Wizard: Handelsignalen Geïnspireerd Door Morning/Evening Stars + MFI voor MetaTrader 5
- MQL5 Wizard: Creëer Handelsstrategieën met Bullish en Bearish Engulfing Candlestick Patronen en Stochastic
- MQL5 Wizard: Handelsignalen Geïnspireerd door Morning/Evening Stars en RSI voor MetaTrader 5
- Efficiënt Trendvolgend Handelsysteem met Exp_X2MA_JFatl voor MetaTrader 5
- Close Cross MA: Efficiënt Orders Sluiten met MetaTrader 4