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.
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