Shareholder R/2 Börsensoftware
Space shortcuts
Skip to end of metadata
Go to start of metadata

Hinweis

Die nachfolgenden Inhalten sind noch stark in der Ausarbeitung und vorläufig. Sie werden die kommenden Wochen mit Sicherheit weiterentwickelt. Für die ShareHolder-Nutzer wird zudem am Wording/Sprachgebrauch noch einiges an Feinschliff notwendig sein. Im jetzigen Status dient es vor allem der Vorstrukturierung und fokussierten Abarbeitung der Basis-Aufgaben. Diese WIKI-Seite ist damit eine Mischung aus Einleitung, Aufgaben-Beschreibung und Querverweisen.


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.

ShareHolder als Börsensoftware soll diese neuen Möglichkeiten anbinden und unterstützen und auch als Vision Vorhersage-Modelle wieder übernehmen können. Es soll daher nicht versucht werden, modernste Biobliotheken und Frameworks, getragen von unzähligen freiwilligen Entwicklern, nachzubauen. Im Gegenteil ShareHolder wird auf den Punkt zurückgebaut, der eine optimale Verzahnung erlaubt und gleichzeitig die Rechenpower moderner Systeme nutzt(CPU-Core-Multithreading, GPU-Nutzung, Cloud-Computing). Der in ShareHolder vorhandene Daten-, Indikatoren-Pool, soll damit kombiniert werden mit den leistungsstärksten Algorithmen und Cloud-Lösungen. Das problematische ist heute weniger die vorhandene Bandbreite an nutzbaren ML/AI-Lösungen. Es ist die Datenbeschaffung und -Aufbereitung und die exakte Vorüberlegung, was eigentlich erlernt vorhergesagt werden kann/soll.

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 ist folgende Umsetzung geplant:

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

Da aus Zeit/Budgetsicht eine starke Fokussierung benötigt wird, erfolgt eine ausschließliche Betrachtung und kompatible Anbindung an zwei sehr populäre als auch großartige Machine-Learning-Umgebungen, die vor allem eine große Community als auch GPU/Cloud-SaaS-Lösungen bieten:

Das schematische Architekturbild von H2o mit den technisch motivierten Komponenten und anbindbaren Systemen stellt nur ein Beispiel dar. Die Architekturen unterscheiden sich hier zwischen den Systemen und im konkreten Setup erheblich. 
Um allerdings nicht nur Entwickler anzusprechen, werden reine Frameworks wie Caffee2 zunächst nicht betrachtet in der #1 Phase.

Nachfolgend werden für dieses Zielbild, die Kern-Aufgaben-Cluster (Epics) beschrieben.

Installationsanleitungen (komprimiert)

SHAREHOLDER-2719 - Getting issue details... STATUS

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.

Dabei werden jeweils Kapitel für die AI-Systeme mit aufgenommen:

Trainings und Validierungsdaten für Machine-Learning-Systeme

SHAREHOLDER-2720 - Getting issue details... STATUS

Für die Dateneinbindung von außen sollte zunächst ein Datenlade-Mechanismus unterstützt werden, 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.

Datenquellen-Einbindung

Zunächst müssen geeignete individualisierbare Daten in ausreichendem Datenumfang bereitgestellt werden:

  • OK 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:
  • OK Nutzung von automatischern Daten-Clustern auf Basis von individuellen Auswahl-Selektionen:
  • OK 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)
  • SHAREHOLDER-2724 - Getting issue details... STATUS
  • SHAREHOLDER-2729 - Getting issue details... STATUS
  • SHAREHOLDER-2730 - Getting issue details... STATUS

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.

  • OK Optionale Datenglättung mit X Tagen auf den Schlusskurs
  • OK Optionale Datennormalisierung der %-Entwicklungen in einer definierbaren Range Low/High
  • OK Festlegung der Trainings-und Validierungsmengen-Aufteilung
  • OK Optionale Zufallsverteilung der Datenmengen

  • SHAREHOLDER-2723 - Getting issue details... STATUS

Datenbereitstellung

Um die in ShareHolder erzeugten Trainings-und Validierungsdaten effektiv nutzen zu können, werden verschiedene Mechanismen benötigen, die eine automatisierten Workflow erlauben bzw. eine einfache und effiziente Datennutzung. Grundsätzlich besteht die Annahme, dass die ML.Systeme nicht lokal betrieben werden, sondern in eigenen GPU/TPU-fähigen Systemen laufen bzw. durch Cloud-SaaS-Lösungen eingekauft werden, um maximale Performance zu erreichen. Aus diesem Grund sollten folgende Anforderungen umgesetzt werden:

  • Lokale CSV opt. gepackt als GZ zur direkten nativen Einbindung in H2O, Tensorflow und praktisch in diesem Universalformat in praktisch jedem System
    SHAREHOLDER-2718 - Getting issue details... STATUS
  • 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:
    SHAREHOLDER-2726 - Getting issue details... STATUS
  • optional nach Prüfung auch JDBC-Datenbank-Tabellen

Modell-Entwicklungen

SHAREHOLDER-2721 - Getting issue details... STATUS

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.

SHAREHOLDER-2731 - Getting issue details... STATUS

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

SHAREHOLDER-2722 - Getting issue details... STATUS

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.

SHAREHOLDER-2732 - Getting issue details... STATUS


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.


Roadmap und erste Planungsansätze

Erste Ansätze und Ideen sollen zeitnah (07/08-2018) umgesetzt werden. Mit der 13.16.0 soll bereits die Datenvorbereitung und Export zu H20 erfolgen, so dass damit erste Schritte zu eigenen ML-Modellen gemacht werden können.

  • No labels