← Projekte

brokerclock

Mit brokerclock rechne ich die Serverzeit eines MetaTrader-5-Brokers in UTC um und zurück. Die Bibliothek ermittelt die Sommerzeitregel des Brokers aus der Kerzenhistorie und importiert das Paket MetaTrader5 nie.

  • Python
  • IANA time zones
  • pandas
  • MetaTrader 5
  • PyPI
pip install brokerclock

Das Problem

MetaTrader 5 liefert die Zeiten von Kerzen, Ticks, Deals und Orders als Serveruhr des Brokers in Sekunden seit 1970, nicht in UTC. Viele Broker laufen im Winter auf GMT+2 und im Sommer auf GMT+3 und wechseln zu den US-Terminen.

Ein fester Versatz ist jedes Jahr zeitweise falsch, und eine europäische Sommerzeitregel liegt etwa drei Wochen im März und eine Woche um Anfang November daneben. Abfragedaten und Ablaufzeiten von Orders gelten auf derselben Serveruhr.

Der Ansatz

In ServerZone bilde ich die Serveruhr als IANA-Zeitzone plus Versatz in 15-Minuten-Schritten ab, sodass jede Umrechnung die zu diesem Zeitpunkt gültige Regel nutzt. Die doppelte Stunde verlangt eine ausdrückliche Wahl, die übersprungene Stunde löst einen Fehler aus.

detect() liest den Wochenschluss am Freitag um 17:00 Uhr New Yorker Zeit aus M1- bis H1-Kerzen, bewertet feste, US-, EU- und australische Uhren und liefert seine Belege: passende Wochen, Ausreißer und Gleichstände.

check() und measure_offset() prüfen die Uhr an Live-Ticks und lehnen veraltete Ticks ab. brokerclock.pandas rechnet ganze Spalten und die Arrays von copy_rates_* um.

Das Ergebnis

Ich habe brokerclock 0.1.0 auf PyPI für Python 3.10 bis 3.14 veröffentlicht, mit 260 Tests. Die Bibliothek braucht nur die Standardbibliothek, unter Windows zusätzlich tzdata, und läuft deshalb auch unter Linux und macOS, wo sich das Paket MetaTrader5 nicht installieren lässt.