Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Codeschnipsel (http://www.expert-advisor.com/forum/forumdisplay.php?f=292)
-   -   Code Snippets - Ein Eventhandler für alle Fälle (=Events) (http://www.expert-advisor.com/forum/showthread.php?t=5256)

Kronenchakra 02.11.16 20:13

Code Snippets - Ein Eventhandler für alle Fälle (=Events)
 
Ereignisse (Events) sind in MQL5 ein wichtiges Thema.
Um es Einsteigern zu erleichtern diese Ereignisse zu behandeln, hier ein Beispiel.

Zuerst eine allgemeine Testfunktion:
Code:

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
  switch((int)id)
    {
      case  CHARTEVENT_KEYDOWN      : {Print("CHARTEVENT_KEYDOWN"          ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      case  CHARTEVENT_MOUSE_MOVE    : {Print("CHARTEVENT_MOUSE_MOVE"      ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      case  CHARTEVENT_OBJECT_CREATE : {Print("CHARTEVENT_OBJECT_CREATE"    ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      case  CHARTEVENT_OBJECT_CHANGE : {Print("CHARTEVENT_OBJECT_CHANGE"    ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      case  CHARTEVENT_OBJECT_DELETE : {Print("CHARTEVENT_OBJECT_DELETE"    ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      case  CHARTEVENT_CLICK        : {Print("CHARTEVENT_CLICK"            ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      case  CHARTEVENT_OBJECT_CLICK  : {Print("CHARTEVENT_OBJECT_CLICK"    ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      case  CHARTEVENT_OBJECT_DRAG  : {Print("CHARTEVENT_OBJECT_DRAG"      ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      case  CHARTEVENT_OBJECT_ENDEDIT: {Print("CHARTEVENT_OBJECT_ENDEDIT"  ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      case  CHARTEVENT_CHART_CHANGE  : {Print("CHARTEVENT_CHART_CHANGE"    ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
      default                        : {Print("CHARTEVENT_CUSTOM"          ,"  id:",id,"  lparam:",lparam,"  dparam:",dparam,"  sparam:",sparam);} break;
    }   
}

Zur Erinnerung: die Print()-Funktion gibt am Panel Werkzeuge->Experten aus
Muss man auch erst draufkommen :D

Jetzt der Code zum Verwenden:
Code:

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
  switch((int)id)
    {
      case  CHARTEVENT_KEYDOWN :
            {
              // put your code here or delet this section
            } break;
      case  CHARTEVENT_MOUSE_MOVE :
            {
              // put your code here or delet this section
            } break;
      case  CHARTEVENT_OBJECT_CREATE :
            {
              // put your code here or delet this section
            } break;
      case  CHARTEVENT_OBJECT_CHANGE :
            {
              // put your code here or delet this section
            } break;
      case  CHARTEVENT_OBJECT_DELETE :
            {
              // put your code here or delet this section
            } break;
      case  CHARTEVENT_CLICK :
            {
              // put your code here or delet this section
            } break;
      case  CHARTEVENT_OBJECT_CLICK :
            {
              // put your code here or delet this section
            } break;
      case  CHARTEVENT_OBJECT_DRAG :
            {
              // put your code here or delet this section
            } break;
      case  CHARTEVENT_OBJECT_ENDEDIT :
            {
              // put your code here or delet this section
            } break;
      case  CHARTEVENT_CHART_CHANGE :
      default :
            {
              // put your code here or delet this section
            } break;
    }
}

Viel Erfolg damit

Kronenchakra 04.11.16 00:07

Da hat leider der Fehlerteufel zugeschlagen
 
Hier die korrigierte Version, ohne Kommentare.
Code:

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
  switch((int)id)
    {
      case  CHARTEVENT_KEYDOWN :
            {
            } break;
      case  CHARTEVENT_MOUSE_MOVE :
            {
            } break;
      case  CHARTEVENT_OBJECT_CREATE :
            {
            } break;
      case  CHARTEVENT_OBJECT_CHANGE :
            {
            } break;
      case  CHARTEVENT_OBJECT_DELETE :
            {
            } break;
      case  CHARTEVENT_CLICK :
            {
            } break;
      case  CHARTEVENT_OBJECT_CLICK :
            {
            } break;
      case  CHARTEVENT_OBJECT_DRAG :
            {
            } break;
      case  CHARTEVENT_OBJECT_ENDEDIT :
            {
            } break;
      case  CHARTEVENT_CHART_CHANGE :
            {
            } break;
      default :
            {
            } break;
    }
}

Hat wohl noch niemand brauchen können ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:47 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum