Jump to content
Tom Next - Daytrading Community

Datum und Zeit im Systemtrading


Forex1+

Recommended Posts

 

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

 

  • Upvote 1
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...