Londoner Ausbruch - Seite 2

 

Ja, alles wegen einer IMO rätselhaften Designentscheidung:) Es kann also sein, dass die Serverzeit im Laufe eines Jahres nicht einmal mit einer bekannten Weltzeit übereinstimmt.

Ich habe eine Methode, um die GMT-Zeit genau zu bestimmen, vor allem beim Backtesting. Diese Methode scheint bei Brokern zu funktionieren, die

  • die TZ in der Mitte ihrer historischen Daten geändert haben (Alpari),
  • oder verwenden eine nicht standardmäßige Sommerzeit für ihre Zeitzone (FXCM), wie Thirteen anmerkt,

aber der Ansatz kommt mir immer noch ein wenig hackelig vor.

Er beinhaltete das Herunterladen von GMT-basierten Kursen aus anderen Quellen (dukascopy) und den Vergleich der Stunde jedes Tageshochs. Für das Backtesting funktioniert das gut, aber derzeit lade ich die Stundendaten manuell herunter und filtere die Höchststände (mit einem Perl-Skript).

Sobald ich automatisch GMT H1-Kurse aus mindestens zwei Quellen erhalten kann, werde ich mit diesem Ansatz für meine Zwecke zufrieden sein.

 
SDC:

Wie könnte MT4 für diese Aufgabe besser geeignet gemacht werden? Ich weiß nicht, wie es Ihnen geht, aber ich hätte sicher keine Freude an der Aufgabe, einen regionalen historischen GMT-Offset-Rechner zu erstellen. Können Sie sich das nur vorstellen? omg. Wenn ich das jemals schaffe, werde ich es auf den Markt bringen, und Sie sollten besser ein dickes Scheckbuch haben ;)

Ein historischer GMT-Rechner ist an sich nicht besonders schwer (das Windows-Betriebssystem enthält bereits alle Daten, die man braucht), aber das ist nicht das Hauptproblem. Das Problem besteht darin, dass Sie die aktuelle Abweichung zwischen der Maklerzeit und der GMT bestimmen können, aber Sie wissen nicht, ob und wann sie sich geändert hat. Anhand des obigen Beispiels können Sie sehen, dass der Broker derzeit GMT+3 hat (vorausgesetzt, die lokale Computeruhr geht genau...), aber Sie wissen nicht, dass der Broker letzte Woche GMT+2 hatte.

Es ist gut möglich, dass das MT4-Client-Terminal diese Information einfach nicht hat.

Wenn es sie hätte, könnte MT4 entweder die reinen Daten bereitstellen, die Sie selbst verarbeiten könnten, oder eine Funktion, mit der Sie sagen könnten: "Konvertiere jedes Brokerdatum in der Vergangenheit in GMT". Danach könnte man eine Nachschlagetabelle (oder die Windows-API) verwenden, um die historische GMT-Zeit in eine andere Zeitzone wie London zu konvertieren. Es wäre jedoch besser, wenn MT4 dies auch für Sie erledigen würde, z. B. mit einem Funktionspaar wie dem folgenden:

datetime ConvertToBrokerTime(datetime HistoricRegionalTime, SortSortOfTimeZoneInfo FromTimeZone);

datetime ConvertFromBrokerTime(datetime HistoricBrokerTime, SortSortOfTimeZoneInfo ToTimeZone);

 
ydrol:

Ja, alles wegen einer IMO rätselhaften Designentscheidung:)

(Ich nehme an, dass der Grund für die Nichtfixierung auf UTC darin liegt, dass die Broker mit EET laufen können, was fünf D1-Kerzen pro Woche ergibt, wodurch eine sechste kleine Kerze vermieden wird, die bei Brokern, die GMTZ verwenden, zu systematischen Unterschätzungen von Dingen wie D1 ATR führt).
 
gchrmt4:
(Ich gehe davon aus, dass der Grund für die Nichtfixierung auf UTC darin liegt, dass die Broker mit EET arbeiten können, was fünf D1-Kerzen pro Woche ergibt, wodurch eine sechste kleine Kerze vermieden wird, die bei Brokern, die GMTZ verwenden, zu systematischen Unterschätzungen von Dingen wie D1-ATR führt).


Ich hätte all diese Dinge in den Client eingebaut, aber das macht den Client an verschiedenen Stellen komplizierter :) Aber wenigstens sind alle Variablen bekannt.
 

Ein anderer Ansatz, nach dieser Seite gibt es nur 62 MT4-Broker? Es wäre also nicht allzu schwer, eine Nachschlagetabelle für jeden Broker und seine Zeitdefinition zu haben (egal, ob sie auf einer realen Zeitzone oder einer Kombination ala FXCM basiert), und auch historische Änderungen (ala Alpari) zu berücksichtigen.

Dies ist wahrscheinlich der robusteste Ansatz und muss nur jedes Mal angepasst werden, wenn ein Broker beschließt, seine Kunden ein wenig mehr zu verwirren :)

 

gchrmt4:

[1] Ihre Serverzeit von GMT+3 entspricht zwar EEST in dem Sinne, dass EEST GMT+3 ist, aber laut Wikipedia und worldclock.com sollte noch nirgendwo EEST gelten. Die Umstellung sollte nicht vor dem 30. März erfolgen. Die aktuelle Zeit in Zypern, Griechenland, Israel usw. ist GMT+2.

[2] Es handelt sich also wahrscheinlich um einen Broker, der seine Server auf GMT+2 laufen lässt, die Umstellung auf Sommerzeit aber an den US-Terminen und nicht an den europäischen Terminen vornimmt.

[3] Das ist nicht dasselbe wie EET/EEST. (Und es ist sogar noch weniger vorhersehbar, wenn es darum geht, einen Code zu schreiben, der Zeiten und Daten automatisch anpasst, ohne den Benutzer nach irgendeiner Art von Eingabe darüber zu fragen, welche Zeiteinstellungen der Broker verwendet.)

  1. Richtig.
  2. Richtig.
  3. EET ist GMT+2, aber GMT+2 ist nicht nur EET. Ebenso ist EEST GMT+3, aber GMT+3 ist nicht nur EEST. Indem ich die Zeitzone meines Brokers als EET/EEST beschrieb, wollte ich nur andeuten, dass sie in der Standardzeit GMT+2 und in der Sommerzeit GMT+3 ist, zumal es in diesem Thread um den Londoner Ausbruch geht. Ich entschuldige mich, wenn meine Beschreibung zu Verwirrung geführt hat :)

Wenn der Broker also vor kurzem von GMT+2 auf GMT+3 umgestellt hat und nicht kurz vor der Umstellung von GMT+3 auf GMT+4 steht, bedeutet dies, dass der aktuelle Offset zwischen Brokerzeit und GMT falsch wäre, wenn Sie versuchen würden, ihn auf Balken der letzten Woche, also vor der Zeitumstellung in den USA, anzuwenden. In dieser Woche sind die Bars des Brokers 3 Stunden vor London. Letzte Woche waren sie 2 Stunden voraus. (Und ab dem 30. März werden sie wieder 2 Stunden voraus sein.) Wenn Sie diesen aktuellen Versatz von 3 Stunden nehmen und damit versuchen, den Kurs um 8 Uhr morgens Londoner Zeit an einem Tag der letzten Woche zu ermitteln, erhalten Sie die falsche Antwort.

Ein Broker ändert die Zeitzone seines Servers im Allgemeinen nicht oft, außer zur Anpassung an die Sommerzeit. Für die Sommerzeitanpassung kann ich ein beliebiges Datum/eine beliebige Uhrzeit (von 1987 (USA) und 1996 (EU) bis 2020 und darüber hinaus) verwenden und für die USA und die EU berechnen, wann die Sommerzeit beginnt und wann sie endet. Sobald Sie diesen Code haben, müssen Sie nur noch den aktuellen Offset zur GMT anpassen, um die Sommerzeit für die von Ihnen betrachtete Zeit zu berücksichtigen.

Mit TimeGMT(), das in Build 600+ neu ist, berechnen Sie den aktuellen Offset Ihres Brokers zur GMT. Aber man kann (soweit ich weiß) die Zeitzone eines Brokers nicht aus der Vergangenheit ermitteln. Ich hatte zum Beispiel einen Broker, der die Zeitzone seines Servers von GMT für Standardzeit auf GMT+2 für Standardzeit geändert hat. Ich habe das so gehandhabt, dass ich einen Offset für die Zeit vor der Umstellung hart kodiert habe, weil alle Verlaufsdaten GMT und nicht GMT+2 waren (und ich wollte den Verlauf nicht ändern, um GMT+2 wiederzugeben). In dieser Hinsicht sind wir uns einig. Solange ein Makler nicht einfach die Zeitzonen wechselt (außer zur Anpassung an die Sommerzeit), sollte man in der Lage sein, den Offset zur GMT zu berechnen und diesen Offset an die Sommerzeit anzupassen.

Ich will damit nur sagen, dass die Informationen, die man nur von MT4 selbst erhalten kann - der aktuelle Offset zwischen Brokerzeit und GMT - in der Praxis unzureichend sind, um z. B. den Eröffnungskurs in London vom letzten Mittwoch zu ermitteln.

Ich glaube, ich bin anderer Meinung als Sie. Solange der Broker die Zeitzonen nicht ändert, abgesehen von der Anpassung an die Sommerzeit, können Sie den Offset zur GMT bestimmen, sowohl für die aktuelle Zeit als auch für die historische Zeit. Wenn letzte Woche während der Standardzeit der Broker GMT+2 und London GMT ist, dann wäre 8 Uhr Londoner Zeit 10 Uhr Serverzeit. Nächsten Monat, während der Sommerzeit, wenn der Broker GMT+3 und London GMT+1 ist, würde 8 Uhr Londoner Zeit 10 Uhr Serverzeit entsprechen. Heute, wenn der Makler Sommerzeit hat und London Standardzeit, ist der Makler GMT+3 und London ist GMT, also wäre 8 Uhr Londoner Zeit 11 Uhr Serverzeit.

Wenn der Makler GMT-5 (EST) und London GMT hat, ist 8 Uhr Londoner Zeit 3 Uhr Serverzeit.

 
gchrmt4:

Ein historischer GMT-Rechner ist an sich nicht besonders schwierig (das Windows-Betriebssystem enthält bereits alle Daten, die Sie benötigen), aber das ist auch nicht das Hauptproblem. Das Problem besteht darin, dass Sie den aktuellen Offset zwischen der Brokerzeit und der GMT bestimmen können, aber nicht wissen, ob und wann er sich geändert hat. Anhand des obigen Beispiels können Sie sehen, dass der Broker derzeit GMT+3 hat (vorausgesetzt, die lokale Computeruhr geht genau...), aber Sie wissen nicht, dass der Broker letzte Woche GMT+2 hatte.

Es ist gut möglich, dass das MT4-Client-Terminal diese Information einfach nicht hat.

Wenn es sie hätte, könnte MT4 entweder die nackten Daten bereitstellen, die Sie selbst verarbeiten könnten, oder eine Funktion, mit der Sie sagen könnten: "Konvertiere ein beliebiges Brokerdatum in der Vergangenheit in GMT". Danach könnte man eine Nachschlagetabelle (oder die Windows-API) verwenden, um die historische GMT-Zeit in eine andere Zeitzone wie London zu konvertieren. Es wäre jedoch besser, wenn MT4 dies auch für Sie erledigen würde, z. B. mit einem Funktionspaar wie dem folgenden:

datetime ConvertToBrokerTime(datetime HistoricRegionalTime, SortSortOfTimeZoneInfo FromTimeZone);

datetime ConvertFromBrokerTime(datetime HistoricBrokerTime, SortSortOfTimeZoneInfo ToTimeZone);


Ja, es wäre nicht schwierig, wenn es keine Sommerzeit gäbe, aber es gibt lol... es wäre ein Alptraum zu codieren. Historische Anomalien gäbe es überall. Regionen, die die Zeitzone, die sie verwenden, geändert haben, Regionen, die damit experimentiert haben, überhaupt keine Sommerzeit zu verwenden und dann wieder zur Sommerzeit zurückgekehrt sind, Regionen, die die Sommerzeit an einigen Orten respektieren, an anderen aber nicht, es gäbe so viele Anomalien zu berücksichtigen, überall auf der Welt ...
 
ydrol:

Ein anderer Ansatz, nach dieser Seite gibt es nur 62 MT4-Broker? So wäre es nicht allzu schwer, nur eine Nachschlagetabelle für jeden Broker und ihre Definition der Zeit (ob es auf eine echte Zeitzone oder eine Kombination ala FXCM basiert), und auch historische Änderungen (ala Alpari) zu integrieren.

62 ist eine Unterschätzung, und die größeren Broker haben ihre Server auf unterschiedliche Zeitzonen eingestellt.
 

Thirteen:

Wenn der Broker letzte Woche während der Standardzeit auf GMT+2 und London auf GMT steht,

Woher wissen Sie, dass der Broker letzte Woche auf GMT+2 war, wenn Sie nur die Informationen verwenden, die MT4 liefert?
 

Es wäre vernünftig, wenn der MT4-Server immer GMT verwenden würde, aber Sie wissen, dass sie das nicht tun werden.