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

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   CHARTEVENT_CHART_CHANGE ohne Funktion??? (http://www.expert-advisor.com/forum/showthread.php?t=5241)

Trader6666 26.10.16 00:22

CHARTEVENT_CHART_CHANGE ohne Funktion???
 
Hi Zusammen,

steh grad iwie aufn schlauch

Ich versuch grad eine Aktion durchzuführen, wenn sich der Chart verändert hat also sprich auch die Größe des Charts. Also hab ich folgendes probiert:

Code:

void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
{
  int max_size_x = (int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);
  int max_size_y = (int)ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
  int Size;
if(Size!= max_size_x && CHARTEVENT_CHART_CHANGE )
  {
  Print("fdfdgdf");
  Size= max_size_x;
  }


Nun der Weg ist ned "falsch" nur wenn ich in den Chart wahllos klicke ,ohne die Größe zu verändern, wird die aktion ebenfalls ausgeführt. Hab versucht aus den Docs schlau zu werden nur steht da leider überhaupt nix:confused::confused: Das Event weist keinerlei Parameter auf.....

Die Funktion in die Start ebene zu packen macht ja auch keinen sinn,wenn man es ohne/geringe Verzögerung hinbekommen möchte. Hat jem eventuell ne Lösung???

LG

Kronenchakra 26.10.16 17:14

So geht's
Code:

#property indicator_chart_window
#property indicator_plots 0

void OnDeinit(const int reason)
{
  Comment("");
}

int OnInit()
{
  return(INIT_SUCCEEDED);
}

int OnCalculate (const int rates_total,
                const int prev_calculated,
                const int begin,
                const double& price[])
{
  return(rates_total);
}

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
  if(id==CHARTEVENT_OBJECT_CLICK) Comment("Object click"); else
  if(id==CHARTEVENT_KEYDOWN)      Comment("Key pressed");  else
  if(id==CHARTEVENT_CHART_CHANGE) Comment("Chart changed");
}

Mit 'switch' gehts natürlich auch.

LG Otto

Trader6666 26.10.16 23:12

Hey Otto ,

danke für die Hiilfe:) , hatte nicht gedacht das dass mit der id
klappt, weil in den Docs ja garkeine Parameter hinterlegt sind,funzt super...
find die ChartEvent-Sache ned wirklich gut gelungen in MQL4....

danke nochmal!!!


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:16 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