Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3745
Beiträge: 36591
Benutzer: 5.902
Aktive Benutzer: 519
Links: 80
Wir begrüßen unseren neuesten Benutzer: Polytrade
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Stunden
- Polytrade
vor 8 Stunden
- exspas432
vor 19 Stunden
- elgaza
vor einem Tag
- DeSaint
vor einem Tag
- DeSaint123...

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 101
Gesamt: 104
Team: 0
Team:  
Benutzer:  Breakout25, ForexMax, Lena
Freunde anzeigen

Empfehlungen

Werbung

Like Tree1Likes
  • 1 Post By Lena
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 91
Lena befindet sich auf einem aufstrebenden Ast
Standard 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];
           //----
Mit Zitat antworten
  #2 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 117
Leopold befindet sich auf einem aufstrebenden Ast
Standard

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---
Mit Zitat antworten
  #3 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 91
Lena befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #4 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 117
Leopold befindet sich auf einem aufstrebenden Ast
Standard

Sollte funktionieren.

---Leopold---
Mit Zitat antworten
  #5 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 91
Lena befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #6 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 91
Lena befindet sich auf einem aufstrebenden Ast
Standard

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!
Leopold likes this.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
bar, bar berechnen, indikator, indikator problem, mql4, programmierung, programmierung metatrader, programmierung mql4


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 17:51 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------