Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datum und Zeit im Systemtrading

Geschrieben

 

Hallo,

hiermit eröffne ich mal ein Thread rund um das Thema Datum und Zeit und wie damit Systemtrader beim Programmieren umgehen.
Zwei Aspekte sind, in welchem Format liegt die Zeit vor und wie verarbeite ich es zum Abgleich zwischen Zeitpunkten oder die Ermittlung gewisser Zeitspannen, Wochentage oder sonstigen Zeitfiltern.

Meißt liegt die Zeit in den Historys im Timestamp Format YYYYMMDDHHMMSS(NNN) vor.
Intern in den Codes wird aber meißt die Unixzeit für die Filter verwendet.

Das finde ich irgendwie naja komisch denn das Timestampformat der History muss zuerst in Unixzeit umgerechnet werden. Und dann um aus der Unixzeit Wochentage, Stunden und weiteres rauszuholen bedarf es einer Zeitstruktur um die Komponenten für den gregorianischen Kalender zu erhalten (in zb cpp struct tm). Um Filter zu bauen kommen schon ansatzweise komplexe Funktionen dabei raus um die gewünschten Abfragen durchzuführen.

Interessanterweise wird in Tradingbüchern zur Entwicklung automatisierter Systeme so gut wie nicht auf das Thema eingegangen.

Die Umwandlungen führen natürlich zu einer Performancebremse, nicht im Livetrading aber schon deutlich spürbar im Backtesting. Da drängt sich mir der Gedanke auf, wieso die Zeit nicht in effektiverer Form zur Verfügung stellen, sodass die Filter einfacher gestaltet werden können. Ohne permanente Umwandlungen von Unixzeit zu den Infos aus dem gregorianischen Kalender wäre es schneller aber man erkauft sich diesen Vorteil evt. durch mehr Speicherverbrauch.

Jetzt würde mich interessieren wie andere Systemtrader damit umgehen oder dazu sagen? Es sollte doch nicht sein das die Timestampverarbeitung und Zeitfilter so einen Flaschenhals erzeugen.

Grüße

 

Featured Replies

Geschrieben

Welchen Vorteil bietet dir denn das YYYYMMDDHHMMSS(NNN)-Format? Keinen. Bis darauf dass du es leichter lesen kannst. Du kannst damit absolut nicht rechnen.

Geschrieben
  • Autor

Der Vorteil ist, dass die Daten in dem Format vorliegen wie sie auch verarbeitet werden.

Ein Filter der Trades nur von 9-17 Uhr zulässt braucht dann nur die Abfrage if((Stunde>=9)&&(Stunde<17) und fertig. Stunde dann zb als char in einem Struct.

Per Unixzeit wird die if Abfrage wesentlich komplexer da erst die Stunde aus den Unixsekunden ermittelt werden muss und dieser Vorgang braucht Zeit zumindest in cpp deutlich spürbar wie ich festgestellt habe.

Geschrieben

Ich habe aktuell das "größere" Problem, dass mitunter nicht klar ist in welchem Zeitformat / welcher Zeitzone Daten vorliegen. Bisher habe ich meine Daten immer von forextester.com gezogen aber die scheinen die Datenquelle geändert zu haben so dass es eben nicht mehr GMT Daten sind sondern sich die Zeitzone innerhalb der Daten verändert hat. Das ist natürlich großer Mist. Wenn jemand also vernünftige Forex M1 Daten hat freue ich mich über einen Hinweis.

Geschrieben

Ein Filter der Trades nur von 9-17 Uhr zulässt braucht dann nur die Abfrage if((Stunde>=9)&&(Stunde

 

 

Ja, das ist natürlich ein sehr idealisiertes Beispiel.

Jetzt schreib mal sowas wie: "Gib mir alle Werte der letzten 2 Wochen zurück". Das machst du weil du zB. einen Indikator draus bauen willst oder so.

Geschrieben
  • Autor

Ja, das ist natürlich ein sehr idealisiertes Beispiel.

Jetzt schreib mal sowas wie: "Gib mir alle Werte der letzten 2 Wochen zurück". Das machst du weil du zB. einen Indikator draus bauen willst oder so.

 

Ich würde die Periode des Indikators so einstellen das sie entsprechend der gewählten Zeiteinheit dem Zeitraum entspricht. Der Zeitraum ergibt sich aus der gewählten Periode und der Zeiteinheit der Kerzen.

Es gibt sicher auch den Usecase, wo es mit der Unixzeit besser klappt. Für mich ist meistens interessant welcher Wochentag und welche Zeitspanne von Stunden am Tag daher die Präferenz diese Werte direkt vorliegen zu haben.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.