Basiswissen Kursprognosen
Eines der Hauptthemen der letzten Jahre ist die Weiterentwicklung der maschinellen automatisierten Verarbeitung (ML) von Informationen, ohne vorherige definierte Beschreibung der Verarbeitungslogik. Praktisch kein Digitalisierungsprojekt der heutigen Zeit kommt um entsprechende Überlegungen herum. In ShareHolder wurde bereits zwischen 1999-2000 ein Neuronales Netz d.h. ein Deep-Learning-Ansatz implementiert (ANN). Hauptzweck der Umsetzung, war die Umsetzung von automatischen Kursprognosen auf X Tages-Sicht. Bereits in der damaligen Implementierung wurde eine heute wieder moderne In-Memory-Datenverarbeitung genutzt. Dennoch drehte sich die technische Entwicklung mit rasantem Tempo weiter. So sind heute Python und R als Entwicklungssprachen für Machine-Learning (ML)-Themen praktisch der Standard geworden. Die Datenhaltung und Aufbereitung wird in verteilten Clustern (HDFS, SPARK etc.) vorgenommen, sowie die eigentliche Modellberechnungen und Trainings in verteilten Knoten und Cloud-Infrastrukturen inkl. GPU-Berechnungen durchgeführt.
Um das Ziel einer Echtzeit-Trading-Plattform auf Basis von Kursprognosen umzusetzen, wurde ein eigenes Sub-Projekt gestartet, der ML-Algotrader. Weitere Details unter: https://ml-algotrader.com.
Basis-Thesen für alle weiteren Arbeiten sind folgende Nutzen-Hypothesen:
- Mittels ML/KI lassen sich Systeme selbstlernend durch Datenzuspielung aufbauen, die mit ausreichender Treffer-Wahrscheinlichkeit Prognosen für die weitere Kursentwicklung abgeben können
- Mittels ML/KI lassen sich Systeme selbstlernend aufbauen, die das Depot-Risiko minimieren.
Daher wurde folgende Umsetzung umgesetzt:
- Automatische Bereitstellung von Trainings-und Validierungsdaten für Machine-Learning-Systeme, um hiermit Daten-Cluster, Korrelationsanalysen und Kursprognosen selbst durchführen und vor allem in Eigenverantwortung auch optimieren zu können.
- Anbindung und Nutzung von externen trainierten Modellen in ShareHolder, um z.B. die Kursprognosen effektiv anzeigen zu können.
Installationsanleitungen
Die Materie des Machine-Learnings bedarf einiges an Einarbeitung und wird daher mit einer guten Einleitung und Beschreibung begleitet werden müssen. Aus diesem Grunde soll eine kurze und verständliche deutsche Anleitung zur Nutzung der relevantesten ML-Systeme erstellt werden. Dabei soll vor allem die kombinierte Nutzung mit ShareHolder im Fokus stehen. Die Kombinationen betreffen hier vor allem die Datenbereitstellung, Datenaufbereitung, Modellberechnung und Modell-Rückführung durch/in ShareHolder in den konkreten Systemumgebungen TensorFlow und H2O.
Trainings und Validierungsdaten für Machine-Learning-Systeme
Für die Dateneinbindung von außen wird ein Datenlade-Mechanismus unterstützt, der schnell und geeignet erscheint für den initialen Ladeprozess im ML-System. Durch ShareHolder werden dabei verschiedene Implementierungen bereitgestellt, die durch Ihren Umfang, Konfigurationsmöglichkeiten und Art der Daten einen erheblichen Mehrwert darstellen. Sie reduzieren so den Aufwand für den Aufbau von Neuronalen Netzen/ML-Algorithmen deutlich. Die Bereitstellung von Trainings- und Validierungsdaten, umfasst dabei immer die Datenquellen-Einbindung, Datenvorverarbeitung und die Datenbereitstellung. Nachfolgend wird dies im Detail beschrieben:
Datenquellen-Einbindung
Zunächst müssen geeignete individualisierbare Daten in ausreichendem Datenumfang bereitgestellt werden:
- Mehrjährige Kursdaten von Watchlisten oder Marktsegmenten als Datum|Open|High|Low|Close|Volumen Felder. Die Daten können dabei wie gehabt aus Tai-Pan und allen eingebundenen Internet-Datenquellen bezogen werden. Es stehen je nach Titel somit deutlich mehr als 15 Jahre Kurshistorie zur Verfügung.
- Aufbereitung der Kursdaten mit speziellen Auswertungsfunktionen, die später im Export berücksichtigt werden können:
- Nutzung von automatischern Daten-Clustern auf Basis von individuellen Auswahl-Selektionen:
- Ergänzt um Input-Indikatoren-Werte auf Basis der heutigen implementierten Neuronalen-Netz-Datenaufbereitung d.h. Technische Indikatoren mit Werten, Zonenanalyse, Signalstärke, Divergenz-Betrachtungen und vor allem auch echter Signalgenerierung (definierbar z.B. Crossover, Zonen-Entry/Exit-Punkte)
Datenvorverarbeitung
Um die Daten nicht unbereinigt weitergeben zu müssen, sollten verschiedene Basis-Mechanismen bereits vorab umgesetzt werden. Theoretisch ist dies auch nachgelagert durch die ML-Systeme möglich, erfordern hier aber einiges an Wissen bzw. Aufwand.
- Optionale Datenglättung mit X Tagen auf den Schlusskurs
- Optionale Datennormalisierung der %-Entwicklungen in einer definierbaren Range Low/High
- Festlegung der Trainings-und Validierungsmengen-Aufteilung
- Optionale Zufallsverteilung der Datenmengen
Datenbereitstellung
- Lokale CSV opt. gepackt als GZ zur direkten nativen Einbindung in H2O, Tensorflow und praktisch in diesem Universalformat in praktisch jedem System
- Upload und Anbindung an Amazon S3-Buckets, womit die Bereitstellung automatisiert verbunden werden können mit Modell-Entwicklungen ohne die lokale ShareHolder-Installation. Damit sind Linux/Cloud-Systeme leicht einzubinden. Amazon-S3-Buckets d.h. Cloud-Dateien, sollten direkt per Link eingebunden werden können. N
achfolgend am Beispiel von H20:
- optional nach Prüfung auch JDBC-Datenbank-Tabellen
Modell-Entwicklungen
Die Entwicklungen können in Mischungen zwischen Markup-Beschreibungen und Ausführungsbefehlen in Oberflächen ausgeführt werden z.B. als "Notebooks". Die Idee wäre es hier komplette Setups (Notebooks) aufzubauen, beginnend mit der Datenimport, Parsing, Modellentwicklung, Training und Nutzung des ML-Ansatzes. Dieses kann dann frei weiterentwickelt werden. Die Modelle sollten separat geladen und weiterverwendet werden können. Die exakte Definition von Parametern und Einstellungen für die Algorithmen sind dabei vordefiniert nutzbar.
Aktuell sind folgende Modelle von besonderem Interesse als erster Entwurf:
- Prognose für die weitere Kursentwicklung von Titeln im kurzfristigen Fenster (1d, 3d, 7d, 14d)
- Nutzung der Prognose-Modellen, um diese für die eigenen Tages/Wochen-Investment-Analysen zu nutzen
- Als Vision: Nutzung in Algo-Trading-Systemen wie diese z.B. mittels IC-Markets, FXCM umsetzbar sind und von mir auch bereits betrieben werden in einfacherer Form.
Modell-Prognosen (Predictions) nutzbar machen
Datenrückführung zur direkten Nutzung in ShareHolder.
Berechnete Prediction-Werten durch das ML werden so aufbereitet, dass diese für einen normalen Nutzer verständlich sind und direkt in ShareHolder stehen. Die Prediction-Modelle z.B. in H2o sind hier nicht auf Anhieb nutzbar.
Das Grundprinzip, später für den Nutzer aber in der Technologie nicht offensichtlich, kann dabei in ähnlicher Form wie nachfolgend dargestellt aussehen.
Die ShareHolder-Daten werden dabei als Daten-Stream oder Public-DataSet bereitgestellt. Das Netz wird aufgebaut, trainiert und getestet. Mittels dem trainierten Modell können dann neue Daten über das aufgebaute Netz geliefert werden und so über https:// auch wieder abrufbar gemacht werden.