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)
-   -   Problem mit Indikatoren (http://www.expert-advisor.com/forum/showthread.php?t=5775)

Lena 26.07.17 00:55

Problem mit Indikatoren
 
Hallo zusammen,
ich habe leider ein paar allgemeine Verständnisprobleme mit Indikatoren was mich bei der Problemlösung bei einem verwendeten Indikator vor Schwierigkeiten bringt. Und zwar arbeitet ein von mir verwendeter Pivotindikator leider fehlerhaft beim Tageswechsel. Zwischen 23.00 und 24.00 Uhr liegen die Linien fast übereinander. Es wäre ganz toll wenn es hier jemanden gibt der evtl das Problem kennt.
Ich denke es liegt an folgender Zeile:
P = (LastHigh + LastLow + Close[i+1] / 3);
Meine Vermutung liegt darin, dass der letzte für die Berechnung herangezogene Bar "[0+1]" um 23.00 Uhr beginnt, folglich der Schlusswert erst ermittelt werden kann wenn dieser Bar abgeschlossen ist. Da ich auf H1 arbeite ist dies leider erst um 24.00 Uhr der Fall. Das wäre zumindest eine "logische" Schlussfolgerung, besonders da die Schwierigkeiten nicht auftreten wenn ich z.B. auf M1 oder M5 wechsel.

Der vollständige Code für die Berechnung:
Code:

  limit = (Bars - counted_bars) - 1;
//----
  for(i = limit; i >= 0; i--)
    {
      if(High[i+1] > LastHigh)
          LastHigh = High[i+1];
      //----
      if(Low[i+1] < LastLow)
          LastLow=Low[i+1];
         
      if(TimeDay(Time[i]) != TimeDay(Time[i+1]))
        {
          P = (LastHigh + LastLow + Close[i+1]) / 3;
          R1 = (2*P) - LastLow;
          S1 = (2*P) - LastHigh;
          R2 = P + (LastHigh - LastLow);
          S2 = P - (LastHigh - LastLow);
          R3 = (2*P) + (LastHigh - (2*LastLow));
          S3 = (2*P) - ((2* LastHigh) - LastLow);
          LastLow = Open[i];
          LastHigh = Open[i];
          //----


Leopold 26.07.17 09:57

Hallo,

du benötigst das Vortageshoch, Vortagestief und Vortagesschlusskurs?

In diesem Fall würde ich iHigh iLow und iClose verwenden.

Beispiel:
VortagesHoch = iHigh(NULL, PERIOD_D1, 1);
...

oder

P=(iHigh(NULL, PERIOD_D1, 1) + iLow(NULL, PERIOD_D1, 1) + iClose(NULL, PERIOD_D1, 1)) / 3;


---Leopold---

Lena 26.07.17 11:00

Vielen Dank für deinen Ratschlag!
Zu dumm dass ich diesen "Bug" im Indikator so spät entdeckt habe. Auswirkungen hat es aber auch erst jetzt gehabt, wo ich von einem EA auf die Werte des Indikators zugreifen musste. Bisher habe ich noch nie zwischen 23 und 24 Uhr vor dem PC gesessen und die Charts beobachtet.
Bevor ich mir jetzt aber die Mühe mache und den ganzen EA abändere, eine kurze Frage ob folgendes denn funktionieren würde.

if(Day != TimeDay(Time[0])){
P=(iHigh(NULL, PERIOD_D1, 1) + iLow(NULL, PERIOD_D1, 1) + iClose(NULL, PERIOD_D1, 1)) / 3;
//weitere Berechnungen... für R1,R2,R3,S1,S2,S3
Day=TimeDay(Time[0]);
}

Damit müsste ich doch immer mit dem ersten Tick des neuen Tages sämtliche Pivotpunkte bekommen. Zudem müsste der EA nicht ständig über iCustom die Werte aus dem Indikator auslesen.

Leopold 26.07.17 11:05

Sollte funktionieren.

---Leopold---

Lena 26.07.17 11:11

Wenn das klappt wäre es wirklich perfekt, nicht nur weil ich dadurch zahlreiche Zeilen Code einspare und es viel übersichtlicher wird. Auch die Rechenleistung sollte weniger beansprucht werden. Für die optische Darstellung kann ich ja trotzdem weiterhin den Indikator in den Chart laden. Wenn der dann Nachts kurzfristig nicht richtig anzeigt ist das nicht schlimm. Nur der EA darf keine "undefinierbaren" Werte erhalten.

Lena 26.07.17 12:13

JUPPIIEEE, Freu, Super,...
Vielen Dank Leopold, dein Ratschlag war wirklich prima. Habe es abgeändert und so wie es aussieht scheint es wirklich perfekt zu funktionieren. Ich hatte ja leichte Bedenken, weil ich befürchtete dass evtl dabei die Werte zwischen 24-24.00 Uhr und nicht von 23-23.00 Uhr dafür genommen werden könnten.
Das ist aber nicht passiert!


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