Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 07.07.17
amk amk ist offline
Neues Mitglied
 
Registriert seit: Jul 2017
Beiträge: 4
amk befindet sich auf einem aufstrebenden Ast
Standard

Dann versuche ich mal, den Sachverhalt genauer zu beschreiben:

1) Wenn ein EA z.B. heute am 07.07.2017 um 08:53:48 Uhr gestartet wird, dann würde ich (direkt nach dem Start des EA's) folgendes erwarten:
- im 1M-Chart: Die jüngste Kerze hat um 08:53 Uhr begonnen.
- im 5M-Chart: Die jüngste Kerze hat um 08:50 Uhr begonnen.
- im 15M-Chart: Die jüngste Kerze hat um 08:45 Uhr begonnen.
- im 30M-Chart: Die jüngste Kerze hat um 08:30 Uhr begonnen.

Sind wir bis hier einer Meinung?

2) Nun habe ich in der INIT-Phase u.a. folgende Print-Befehle kodiert, um die Uhrzeit und den Open-Kurs der jüngsten Kerze (Index=0) für die genannten 4 Zeitebenen zu überprüfen:

Code:
  
   Print("init,  iTime(,M1,0)=" , iTime(NULL, PERIOD_M1 , 0) ,
              "  iOpen(,M1,0)=" , iOpen(NULL, PERIOD_M1 , 0) );

   Print("init,  iTime(,M5,0)=" , iTime(NULL, PERIOD_M5 , 0) ,
              "  iOpen(,M5,0)=" , iOpen(NULL, PERIOD_M5 , 0) );

   Print("init,  iTime(,M15,0)=", iTime(NULL, PERIOD_M15, 0) ,
              "  iOpen(,M15,0)=", iOpen(NULL, PERIOD_M15, 0) );

   Print("init,  iTime(,M30,0)=", iTime(NULL, PERIOD_M30, 0) ,
              "  iOpen(,M30,0)=", iOpen(NULL, PERIOD_M30, 0) );
Hier das Ergebnis:



- für den 1M-Chart: Die iTime-Funktion liefert für die jüngste Kerze den Wert 07:53 Uhr. Das ist richtig wegen des Unterschieds zwischen TimeCurrent() und TimeLocal().

- für den 5M-Chart: Die iTime-Funktion liefert für die jüngste Kerze den Wert 14:30 Uhr vom gestern (06.07.2017). Das ist falsch! Warum?

- für den 15M-Chart: Die iTime-Funktion liefert für die jüngste Kerze den Wert 14:30 Uhr vom gestern (06.07.2017). Das ist falsch! Warum?

- für den 30M-Chart: Die iTime-Funktion liefert für die jüngste Kerze den Wert 14:00 Uhr vom gestern (06.07.2017). Das ist falsch! Warum?

Noch ein Hinweis: Das Ergebnis für den 1M-Chart ist wohl deshalb richtig, weil im geöffneten Chart-Window der 1M-Chart eingestellt ist.


3) Kurz zusammengefasst:
Die iTime- und die iOpen-Fuktionen liefern in der Init-Phase die richtigen Werte nur für die Zeitebene, die im Chart-Window geöffnet ist. Für die anderen Zeitebenen werden veraltete Werte geliefert. Ist das immer so oder was mache ich falsch?

Übrigens hatte ich auch mal die Funktion "RefreshRates();" ausprobiert. Sie hatte den Wert "false" geliefert. Demnach müssten die Daten eigentlich aktuell sein.

Ich hoffe, dass der Sachverhalt jetzt klar geworden ist.

Viele Grüße

Andreas

Geändert von amk (07.07.17 um 09:49 Uhr)