Datascience ohne Datascience

Ich mach gerade mit einem Wettbewerb auf DrivenData mit. Bildschirmfoto_2018-09-15_23-15-58

Platz 72 von 783 ohne dass ich irgendein DataScience verwendet habe.
Ich bin gespannt, ob das besser wird, wenn ich die wilden Algorithmen darauf los lasse 🙂

Datacamp Kurs ‚Machine Learning for Finance‘

Ich bin zum ersten Mal seit langer Zeit wieder richtig begeistert von einem Datacamp Kurs.

Macine Learning for Finance ist gut aufgebaut, die Übungen sind klar strukturiert und schließen an den Inhalt an, es gibt keine Überraschungen und keine Zweideutigkeiten oder Inkonsistenzen.

Vektorisierte Pandas-Funktionen und Speicherbedarf.

Es sieht so aus, als ob der Speicherbedarf von vektorisierten Funktionen groß ist. Jede Durchlauf macht ganz langsam eine Kopie vom Dataframe. Zumindest interpretiere ich das so.

speicher

 

Bitcoin Volatilität: Projekt auf Datacamp

Datacamp hat ein Projekt zum Thema Bitcoinvolatilitäten. Das ist spannend. Das Projekt ist hauptsächlich eine Pandas DataFrame Übung aber ich muss auch sofort wieder nachdenken über mein OANDA-Projekt. Ich dachte kurz, dass ich mit pandas.read_json() eine Methode gefunden weiss noch nicht, ob das ‚leider‘ oder ‚glücklich‘ ist… hatte, die meine ganze Arbeit überflüssig gemacht hätte, aber dem war nicht so. Ich

 

Vereinfachte Code für Martin Görner Tensorflow Tutorial

Auf Youtube gibt es eine schöne Präsentation von Martin Görner zum Thema Tensorflow [https://www.youtube.com/watch?v=u4alGiomYP4]. Er erklärt verständlich, wie Deep Learning mit Tensorflow funktioniert und hat dabei sehr anschauliche Visualisierungen.

Ich versuche im Moment intensiv, Tensorflow zu verstehen und mir kommen diese Erklärungen sehr gelegen. Ich wollte dann auch gerne den Code nachvollziehen

Der Code für den Demo liegt auf GitHub. Ich habe den Code lokal installiert und hab dann verzweifelt versucht, nachzuvollziehen, was er macht. Ich hatte aber Schwierigkeiten damit, dass er den Deep-Learning-Code für Tensorflow mit dem Code für die coole Visualisierung mit matplotlib.animation vermischt. Und da beide Bereiche für mich neu sind, kann ich sie nicht auseinanderhalten.

Jetzt habe ich die Visualisierungscode aus Görners Code entfernt. Momentan interessiert mich nur der Tensorflow-Anteil. Ich habe mir den Anfang vom Video noch mal genau angesehen und daraus und aus Görners erste Datei die Logik für das erste neuronale Netz rekonstruiert. Danach habe ich Schrittweise die Änderungen von Görner nachgepflegt in den nächsten Skripten.

Die Ergebnisse liegen auf Github. Falls jemand also Görners Tensorflow-Tutorial an Hand der Code nachvollziehen möchte, dann gibt es jetzt eine einfachere Variante – nur Tensorflow.

Für mich ist das gerade Herausforderung genug.

Mir gefällt an Tensorflow gegenüber KERAS, dass die Mathematik sichtbar ist, dass ich sehe was ich mach. An der andere Seite ist der Vorteil an KERAS, dass man einfacher was machen kann, ohne es zu verstehen

Ich habe nur die erste sechs Skripte übersetzt. Die RNNs aus Teil 2 habe ich nicht angefasst, die interessieren mich gerade nicht so. Die CNNs brauchen lokal schon einige Stunden. Ich muss mal sehen, dass ich CUDA zum Laufen krieg, vielleicht geht es dann besser.

(Für eine einfache Visualisierung am Ende werden die Zwischenergebnisse in ein Dataframe gespeichert und am Ende geplottet. In der Hauptschleife gibt es Statusaufgaben, somit kann man einschätzen, wie lange man noch warten muss.)

 

Bildschirmfoto_2018-02-26_17-19-25

Datacamp Kurs Financial Data

Datacamp hat jetzt einen Kurs ‚Importing & Managing Financial Data in Python‚ der das von mir schon mehrfach [1, 2] besungene Buch Python for Finance gut  ergänzt. Der Kurs ist sehr sorgfältig aufgebaut. Und ich habe verstanden, dass das pandas-datareader package eine direkte Oanda Schnittstelle hat. Die Dokuseite sagt nicht viel dazu, aber falls dem so ist, muss ich den mal verwenden, dann brauch ich gar kein Login mehr für den Kurvenimport.

Alles so schön bunt

Vorgestern habe ich beschrieben, dass ich meine Oandaschnittstelle ausprobiert habe. Das Ergebnis sieht so aus.

Jetzt muss ich mir überlegen, wo ich weiter mach.

  • Tauch ich tiefer in die Welt der Algorithmen ein, versuche vielleicht ein lernendes Algorithmus zu bauen? oder
  • Bau ich erst mal eine Schnittstelle zwischen Oanda und ein genereller Algorithmus, damit ich Order algorithmisch verwalten kann?

Bald soll sich das auch in Bares umsetzen 🙂

Zurück an die Arbeit

Ich habe eine erste Anwendung für meine Oanda-Schnittstelle geschrieben: ich habe das Technical Analysis Konzept aus Python for Finance (Kapitel 3, Seite 68ff.) auf Oanda Kurven angewendet. Wer Interesse an dem Jupyter Notebook hat möge sich melden.

Oanda Python interface 2

Diese Woche hatte ich angefangen, eine vereinfachte Schnittstelle für die oanda v20 API zu erstellen. Jetzt bin ich so weit, dass ich die ohne Tests entwickelte Funktionalität übersetzt habe und die erste Funktionalität test-driven entwickelt habe. Halbherzig.

  • Ich habe implizit einen GIT Crashkurs absolviert. (Ich bin noch von der CVS und SVN Generation.)
  • Ich bin noch nicht ganz fertig mit dem Thema Mocks / Stubs. Auch da fehlt mir noch ein wenig Disziplin, mich weiter zu vertiefen. Ich implementiere fleißig Stubs, aber irgendwo bin ich mir nicht mehr sicher, ob ich jetzt meine Stubs oder mein Code teste.
  • Ich habe jetzt Orderfunktionalität eingebaut. (Order canceln und einen Market Order einstellen.)
  • Ich werde die Order-Funktionalität noch was vertiefen und dann anfangen, die Schnittstelle zu verwenden. Wahrscheinlich werde ich die Orderfunktionalität aus der OandaAccount-Klasse hinaus refactoren (O Welch Ein Satz).
  • Die Kommentardisziplin lässt auch nach. Ich brauch einen Code Review!!

Oanda Python interface

Ich spiele gerade mit der Oanda V20 Schnittstelle.Ich will die Oanda-Informationen verwenden, um mit dem Buch Python for Finance üben zu können.

Die Schnittstelle von Oanda ist mir zu technisch, also schreibe ich gerade eine vereinfachte Schnittstelle. Das ist dann auch eine schöne Übung für Test Driven Development (beim ersten Anlauf wieder glatt vergessen). Auf GIT liegt also mein neues Projekt.

Dazu musste ich jetzt auch die Paketverwaltung von Python verstehen. Die Stubs stehen jetzt, OandaSession und OandaAccount. Die Logik hatte ich zum Teil schon testfrei ausgetüfftelt (Asche auf mein Haupt) und werde ich langsam testend überführen.