Hinweis: Obwohl JavaScript für diese Website nicht unbedingt erforderlich ist, werden Ihre Interaktionsmöglichkeiten mit den Inhalten eingeschränkt sein. Bitte aktivieren Sie JavaScript für das volle Erlebnis.

Python für Financial Machine Learning bei Union Investment

Einleitung

Union Investment ist einer der größten Vermögensverwalter Deutschlands und verwaltet für seine Kunden in Deutschland und anderen europäischen Ländern insgesamt über 350 Milliarden US-Dollar. Als aktiver fundamentaler Vermögensverwalter arbeiten wir stets an der weiteren Verbesserung unseres Investmentprozesses. Der Einsatz neuartiger Datenquellen und Informationen für unseren Investmentprozess in einer Welt, in der täglich mehr Daten erstellt und verfügbar gemacht werden, ist ein wichtiger Erfolgsfaktor in unserem Geschäft.

Machine Learning mit Python

Ein vielversprechender Weg, neue Daten in das Asset Management zu integrieren, ist Machine Learning (ML), das es ermöglicht, Muster in Finanzzeitreihendaten zu erkennen und diese Muster für noch bessere Anlageentscheidungen zu nutzen. Machine Learning ermöglicht es uns,

  • mögliche Renditetreiber zu identifizieren, entweder auf der Ebene einzelner Aktien oder für eine ganze Anlageklasse wie den Aktien- oder Anleihenmarkt,
  • Schlüsselkennzahlen, wie z. B. den Umsatz, auf Unternehmensebene vorherzusagen und
  • festzustellen, ob wir von einem bestimmten Datensatz profitieren und daraus einen Wert für unseren Investmentprozess ableiten können.

Um Machine-Learning-Modelle für diese Aufgaben zu erstellen, haben wir unsere eigene Machine-Learning-Plattform MALINA – MAchine Learning for INvestment Applications – entwickelt, eine maßgeschneiderte Lösung zur Erstellung interpretierbarer Machine-Learning-Modelle für Finanzzeitreihendaten. MALINA wird ausschließlich mit Python entwickelt und besteht aus mehr als 30.000 Zeilen Python-Code.

Innerhalb unseres MALINA-Frameworks haben wir vier entkoppelte Module erstellt:

  1. ein Machine-Learning-Modul, das es uns ermöglicht, Modelle für Finanzzeitreihendaten mit verschiedenen ML-Algorithmen zu definieren und zu benchmarken,
  2. ein Backtesting-Modul, das es uns ermöglicht, Backtests für Handelsstrategien auf Basis der entwickelten ML-Modelle durchzuführen,
  3. ein Modellinterpretationsmodul, das unsere eigenen Interpretationmethoden für einige der im ML-Modul verfügbaren Machine-Learning-Algorithmen integriert und
  4. eine webbasierte Benutzeroberfläche, die es dem Benutzer ermöglicht, Modelle zu definieren und zu benchmarken, ohne tatsächlich Code schreiben zu müssen.

Besonders Modul 3, die Entwicklung neuartiger Ansätze zur Interpretation unserer Machine-Learning-Modelle, ist für uns von zentraler Bedeutung. Dieses Modul ermöglicht es uns, die Blackbox des Machine Learnings zu öffnen und unsere Modelle und deren Vorhersagen zu verstehen, was uns weiter hilft, die Muster aufzudecken, die diese Modelle gelernt haben.

Screenshot of our web-based user interface powered by Python and the Django framework.

Abbildung : Screenshot unserer webbasierten Benutzeroberfläche, angetrieben von Python und dem Django-Framework.

Das herausragende Ökosystem von Python

Zusätzlich zur Python-Sprache selbst können wir uns bei der Verwendung von Python stark auf bewährte Open-Source-Bibliotheken aus dem Python-Ökosystem verlassen, wie z. B.:

  • Pandas, das ein robustes und leistungsfähiges Framework zur Verwaltung und Analyse von Daten bietet,
  • Scikit-Learn, das das "Go-to"-Paket für Machine Learning in Python ist und von vielen als Industriestandard für Machine Learning überhaupt angesehen wird,
  • statsmodels und XGBoost, die den Funktionsumfang von Scikit-Learn erweitern und erweiterte statistische Modelle und Gradient Boosting bieten,
  • Django, ein exzellentes und umfassendes Framework zur Entwicklung von Webanwendungen, auf dem wir zur Erstellung der webbasierten Benutzeroberfläche aufbauen, und
  • Sphinx, ein ausgezeichnetes Paket zur Erstellung von Dokumentationen aus Python DocStrings, das es uns ermöglicht, unsere Dokumentation automatisch mit der Entwicklung unseres Codes synchron zu halten.

All diese Pakete haben den Vorteil, dass sie gut bekannt und etabliert sind, was bedeutet, dass für jedes von ihnen umfangreiche Dokumentationen und Diskussionen online zu finden sind. Darüber hinaus bedeutet die Verfügbarkeit jedes dieser Pakete als Open-Source-Software, dass wir leicht in den bestehenden Code eintauchen können. Bei den von Scikit-Learn bereitgestellten Machine-Learning-Algorithmen bedeutet dies beispielsweise, dass wir eigene Erweiterungen entwickeln können, wie z. B. maßgeschneiderte Interpretationmethoden – etwas, das bei der Verwendung eines proprietären Machine-Learning-Frameworks nicht möglich wäre.

Darüber hinaus waren viele der kleineren Pakete im Python-Ökosystem sehr nützlich und haben uns bei der Entwicklung von MALINA viel Zeit gespart. Ein besonderes Beispiel hierfür ist joblib, das es extrem einfach macht, Berechnungen plattformunabhängig zu parallelisieren, ohne sich um die Details des zugrunde liegenden Betriebssystems kümmern zu müssen.

Schließlich bedeuten die plattformübergreifenden Fähigkeiten, dass wir MALINA problemlos auf eine andere Plattform portieren können. Während wir uns für die Entwicklung an die in unserem Unternehmen üblichen Windows-Maschinen halten können, können wir bei der Nutzung unseres MALINA-Frameworks in einer Produktionsumgebung problemlos auf ein Linux-System umsteigen.

Schlussfolgerung

Machine Learning bietet spannende neue Möglichkeiten bei der Analyse und Vorhersage von Finanzzeitreihen. Aufgrund der Natur von Finanzmärkten funktionieren Standard-Machine-Learning-Tools nicht immer wie beabsichtigt. Angepasste und auf die Bedürfnisse zugeschnittene Ansätze bieten tiefere Einblicke.

Daher hat Union Investment das proprietäre Machine-Learning-Tool MALINA mit Python entwickelt. Dieses Tool ermöglicht es uns, Machine-Learning-Modelle für finanzielle Anwendungen zu entwickeln und proprietäre Interpretationmethoden zu nutzen, um diese Modelle besser zu verstehen.

Union Investment ist der Ansicht, dass die Anwendung von Python und seiner breiten Palette von Bibliotheken sehr gut geeignet ist, um maßgeschneiderte Machine-Learning-Tools zu entwickeln, die die komplexen Herausforderungen von Finanzzeitreihen bewältigen.

Über die Autoren

Dr. Christian Mandery ist derzeit als Data Scientist / Portfolio Manager bei Union Investment tätig. Als Mitglied des Quant & Smart Data Teams im Portfoliomanagement ist er primär für die Anwendung von Machine-Learning-Modellen im Investmententscheidungsprozess und die Interpretation solcher Modelle verantwortlich. Christian hat ein Diplom in Informatik und promovierte als Ingenieur am Karlsruher Institut für Technologie (KIT), Deutschland.

Nikolas Gerlich ist derzeit als Senior Data Scientist bei Union Investment tätig. Er ist verantwortlich für den Aufbau der Data-Science-Fähigkeiten innerhalb der Portfoliomanagement-Abteilung. Dies umfasst die Integration neuer Datenquellen und den Einsatz neuartiger quantitativer Methoden, wie z. B. Machine Learning, zur Verbesserung der Investmententscheidungsfindung. Nikolas studierte Wirtschaftswissenschaften und Statistik an der Universität Tübingen und der Universität Oxford.