Minimum pro Tag zwischen 2 Uhrzeiten berechnen

Code-Stücke können hier veröffentlicht werden.
Antworten
backtester
User
Beiträge: 1
Registriert: Mittwoch 13. Juni 2018, 21:58

Mittwoch 13. Juni 2018, 22:49

Hallo zusammen,

Ich bin Python Neuling und möchte Pyhton zum backtesting von Handelssystemen verwenden. Falls jemand Literaturvorschläge oder gute Websites kennt, die mir bei der Datenanalyse (ich vermute hauptsächlich pandas und numpy) helfen, bitte sagt mir welche :)

Ich möchte gerne aus einem df für jeden einzelnen Tag zwischen 2 Uhrzeiten (bsp. 12:00 und 13:00) den Minimum Wert aus der "Low" Spalte berechnen.
Die Basis ist eine csv. Datei.

Bis jetzt habe ich die csv. eingelesen und die Spalte im Date+Time ins datetime Format formatiert.

Date+Time Open High Low Close
27.08.2009 16:13 142.352 142.363 142.339 142.340
27.08.2009 16:14 142.342 142.382 142.341 142.380
27.08.2009 16:15 142.373 142.380 142.327 142.333
27.08.2009 16:16 142.333 142.380 142.333 142.349
27.08.2009 16:17 142.355 142.357 142.332 142.340
27.08.2009 16:18 142.339 142.343 142.307 142.307
27.08.2009 16:19 142.307 142.311 142.291 142.301

Das Minimum der Low Spalte hatte ich schnell berechnet, allerdings war das weder auf den Zeitraum (bspw. 16:13 bis 16:17), noch auf das Datum bezogen.

Wie kann ich nun pro Tag (der Ausschnitt zeigt nur einen Tag), in einem bestimmten Zeitraum das Min der Low spalte berechnen?

Die Logik müsste ja in die Richtung gehen:
For every day in df:
if df.between_time(16:13, 16:17)
df['Low'].min()

Sorry bin Anfänger :D

VG
Toni
Benutzeravatar
sls
User
Beiträge: 167
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Tannhauser Gate

Dienstag 19. Juni 2018, 10:52

Was hast du denn bisher schon probiert? Gibt es bereits den Versuch Python-Code zu schreiben?

Numpy verfügt über Methoden um das gegebene CSV-File zu bearbeiten. Du könntest bspw. die CSV-Datei in ein Numpy.Array übersetzen und von dort aus mittels Numpy.where() die Bedingungen zum Abstecken des Zeitraums setzen. Einzelne Reihen sind über `axies` ansprechbar. Ich denke, ein wenig Eigenrecherche sollte dir da weiterhelfen.
With great processing power comes great responsibility.
Benutzeravatar
__blackjack__
User
Beiträge: 790
Registriert: Samstag 2. Juni 2018, 10:21

Dienstag 19. Juni 2018, 11:58

`groupby()` würde ich noch in den Raum werfen um die Daten nach einzelnen Tagen zu gruppieren.
Global warming is caused by the sun.
Antworten