Einführung in das Deep-Learning-Trading in Hedgefonds

Veröffentlicht: 2022-03-11

In den letzten Jahren sind tiefe neuronale Netze sehr beliebt geworden. Dieses aufstrebende Gebiet der Informatik wurde um das Konzept der biologischen neuronalen Netze herum geschaffen, und Deep Learning ist heute so etwas wie ein Modewort geworden.

Deep-Learning-Wissenschaftler und -Ingenieure versuchen, verschiedene Muster aus biologischen Nervensystemen mathematisch zu beschreiben. Deep-Learning-Systeme wurden auf verschiedene Probleme angewendet: Computer Vision, Spracherkennung, Verarbeitung natürlicher Sprache, maschinelle Übersetzung und mehr. Es ist interessant und spannend, dass Deep Learning bei einigen Aufgaben menschliche Experten übertroffen hat. Heute werfen wir einen Blick auf Deep Learning im Finanzsektor.

Eine der attraktiveren Anwendungen von Deep Learning sind Hedgefonds. Hedgefonds sind Investmentfonds, Finanzorganisationen, die Gelder von Anlegern beschaffen und verwalten. Sie arbeiten normalerweise mit Zeitreihendaten und versuchen, einige Vorhersagen zu treffen. Es gibt eine spezielle Art von Deep-Learning-Architektur, die für die Zeitreihenanalyse geeignet ist: rekurrente neuronale Netze (RNNs), oder noch genauer, eine spezielle Art von rekurrenten neuronalen Netzen: Netzwerke mit langem Kurzzeitgedächtnis (LSTM).

LSTMs sind in der Lage, die wichtigsten Merkmale aus Zeitreihendaten zu erfassen und ihre Abhängigkeiten zu modellieren. Als anschauliche Fallstudie wird ein Aktienkursvorhersagemodell vorgestellt, wie Hedgefonds solche Systeme nutzen können. Das in Python geschriebene PyTorch-Framework wird verwendet, um das Modell zu trainieren, Experimente zu entwerfen und die Ergebnisse zu zeichnen.

Wir beginnen mit einigen Deep-Learning-Grundlagen, bevor wir zu Beispielen aus der Praxis übergehen:

  • Führen Sie Deep Learning als abstraktes Konzept ein.
  • Stellen Sie RNNs – oder genauer gesagt LSTMs – vor und wie sie zur Modellierung von Zeitreihendaten verwendet werden können.
  • Machen Sie die Leser mit Finanzdaten vertraut, die für Deep Learning geeignet sind.
  • Veranschaulichen Sie, wie ein tatsächlicher Hedgefonds Deep Learning nutzt, um Aktienkurse vorherzusagen.
  • Geben Sie abschließend umsetzbare Empfehlungen für neue und bestehende Hedgefonds, wie sie Deep Learning einsetzen/nutzen können, um ihre Leistung zu steigern.

Präsentation der Argumente für Deep Learning Trading

Eine der herausforderndsten und spannendsten Aufgaben in der Finanzbranche ist die Vorhersage, ob Aktienkurse in Zukunft steigen oder fallen werden. Heute wissen wir, dass Deep-Learning-Algorithmen komplexe Aufgaben sehr gut lösen können, daher lohnt es sich, mit Deep-Learning-Systemen zu experimentieren, um zu sehen, ob sie das Problem der Vorhersage zukünftiger Preise erfolgreich lösen können.

Als Konzept gibt es das künstliche neuronale Netz schon lange, aber die Hardware war nicht gut genug, um schnelle Experimente im Deep Learning zu ermöglichen. Nvidia hat vor einem Jahrzehnt dazu beigetragen, Deep-Learning-Netzwerke zu revolutionieren, als es begann, sehr schnelle Grafikprozessoren (GPUs) für Allzweck-Computing in Produkten der Tesla-Serie anzubieten. Anstatt Polygone in Spielen und professionellen Designanwendungen zu schattieren, können hochparallelisierte GPUs auch andere Daten berechnen und sind CPUs in vielen Fällen weit überlegen.

Es gibt nur sehr wenige wissenschaftliche Arbeiten über den Einsatz von Deep Learning im Finanzwesen, aber die Nachfrage nach Deep-Learning-Experten von Fintech-Unternehmen ist groß, da sie offensichtlich sein Potenzial erkennen. Dieser Artikel erklärt, warum Deep Learning im Finanzwesen immer beliebter wird, indem er skizziert, wie Finanzdaten beim Aufbau von Deep-Learning-Systemen verwendet werden. Ein spezieller Typ eines rekurrenten neuronalen Netzes – das LSTM-Netz – wird ebenfalls vorgestellt. Wir skizzieren, wie eine finanzbezogene Aufgabe mit rekurrenten neuronalen Netzen gelöst werden kann.

Dieser Artikel enthält auch eine anschauliche Fallstudie darüber, wie Hedgefonds solche Systeme nutzen können, die anhand von Experimenten präsentiert wird. Wir werden auch darüber nachdenken, wie Deep-Learning-Systeme verbessert werden können und wie Hedgefonds Talente für den Aufbau dieser Systeme einstellen können, dh welchen Hintergrund müssen Deep-Learning-Talente haben.

Was Hedgefonds anders macht

Bevor wir zum technischen Aspekt des Problems übergehen, müssen wir erklären, was Hedgefonds einzigartig macht. Was ist also ein Hedgefonds?

Ein Hedgefonds ist ein Investmentfonds – eine Finanzorganisation, die Gelder von Anlegern aufnimmt und sie in kurz- und langfristige Anlagen oder in verschiedene Finanzprodukte investiert. Sie wird typischerweise als Kommanditgesellschaft oder Gesellschaft mit beschränkter Haftung gegründet. Das Ziel eines Hedgefonds ist es, die Rendite zu maximieren. Eine Rendite ist ein Gewinn oder Verlust des Nettovermögens des Hedgefonds über einen bestimmten Zeitraum. Es ist allgemein anerkannt, dass das Eingehen eines höheren Risikos ein größeres Potenzial für höhere Renditen und Verluste bietet.

Um gute Renditen zu erzielen, setzen Hedgefonds auf verschiedene Arten von Anlagestrategien und versuchen, Geld zu verdienen, indem sie Marktineffizienzen ausnutzen. Aufgrund verschiedener Arten von Anlagestrategien, die in gewöhnlichen Investmentfonds nicht erlaubt sind, werden Hedgefonds nicht als Fonds registriert, dh sie werden in der Regel nicht wie andere Fonds staatlich beaufsichtigt. Sie müssen ihre Anlagestrategien und Geschäftsergebnisse nicht veröffentlichen, was sie sehr riskant machen kann. Einige Hedgefonds erwirtschaften mehr Geld als der Marktdurchschnitt, aber einige von ihnen verlieren Geld. Einige von ihnen bringen dauerhafte Ergebnisse, während die Ergebnisse einiger Hedgefonds variabel sind.

Durch die Anlage in Hedgefonds erhöhen Anleger das Nettovermögen des Fonds. Doch nicht jeder kann in Hedgefonds investieren. Hedgefonds sind für eine kleine Anzahl wohlhabender Anleger bestimmt. In der Regel müssen diejenigen, die an Hedgefonds teilnehmen möchten, akkreditiert sein. Das bedeutet, dass sie einen besonderen Status in Bezug auf die Finanzregulierungsgesetze haben müssen. Wer diesen Sonderstatus haben kann, ist von Land zu Land unterschiedlich. Normalerweise muss das Nettovermögen eines Anlegers sehr hoch sein – nicht nur Einzelpersonen, sondern auch Banken und große Unternehmen können in Hedgefonds tätig sein. Diese Akkreditierung soll nur Personen mit erheblichen Anlagekenntnissen die Teilnahme ermöglichen und so kleine und unerfahrene Anleger vor Risiken schützen.

Dieser Artikel befasst sich mit dem US-Regulierungsrahmen, da die Vereinigten Staaten den am weitesten entwickelten Finanzmarkt der Welt haben. In den Vereinigten Staaten von Amerika ist der Begriff „akkreditierter Anleger“ in Rule 501 der Regulation D der US Securities and Exchange Commission (SEC) definiert.

Gemäß dieser Verordnung können zugelassene Anleger sein:

  • Banken
  • Private Wirtschaftsförderungsgesellschaften
  • Organisationen
  • Direktoren, leitende Angestellte und Komplementäre der Emittenten der angebotenen oder verkauften Wertpapiere
  • Natürliche Personen, deren individuelles Nettovermögen oder gemeinsames Nettovermögen mit dem Ehepartner dieser Person 1.000.000 USD übersteigt
  • Natürliche Personen, die in den beiden letzten Jahren jeweils ein individuelles Einkommen von über 200.000 USD oder ein gemeinsames Einkommen mit dem Ehepartner dieser Person von über 300.000 USD in jedem dieser Jahre hatten und davon ausgehen können, dass sie im laufenden Jahr dasselbe Einkommensniveau erreichen werden
  • Trusts mit einem Gesamtvermögen von über 5.000.000 $
  • Unternehmen, bei denen alle Anteilseigner akkreditierte Investoren sind

Hedgefonds-Manager verwalten den Hedgefonds. Um erfolgreich zu sein, muss ein Hedgefonds-Manager einen Weg finden, sich einen Wettbewerbsvorteil zu verschaffen, dh einen Vorteil gegenüber Konkurrenten und die Fähigkeit, einen höheren Wert zu generieren. Es kann eine sehr attraktive Berufswahl sein, da es sehr profitabel sein kann, wenn eine Person den Fonds hervorragend verwaltet.

Wenn sich andererseits viele Entscheidungen von Hedgefonds-Managern als schlecht herausstellen, werden sie nicht bezahlt und bekommen einen negativen Ruf. Die besten Hedgefonds-Manager bilden branchenübergreifend einen der bestbezahlten Berufe. Hedgefonds-Manager erhalten neben der Verwaltungsgebühr einen Prozentsatz der Renditen, die sie für die Anleger erzielen. Diese Art der Kompensation veranlasst Hedgefonds-Manager, aggressiver zu investieren, um höhere Renditen zu erzielen, führt aber andererseits auch zu einem erhöhten Anlegerrisiko.

Eine kurze Geschichte der Hedgefonds

Der erste Hedgefonds erschien 1949, gegründet vom ehemaligen Schriftsteller und Soziologen Alfred Winslow Jones. Es war, als er 1948 einen Artikel über aktuelle Anlagetrends für Fortune schrieb.

Er versuchte, das Geld zu verwalten und war sehr erfolgreich. Er sammelte Geld mit seiner Investitionsinnovation, die heute weithin als Long/Short Equity bekannt ist. Die Strategie ist bei Hedgefonds nach wie vor sehr beliebt. Aktien können gekauft (Kauf: Long) oder verkauft (Verkauf: Short) werden.

Wenn der Kurs einer Aktie niedrig ist und erwartet wird, dass der Kurs einer Aktie steigen wird, ist es logisch, eine Aktie zu kaufen (long) und sie zu verkaufen (short), sobald sie ihren Höchststand erreicht, und so weiter Das ist genau der Punkt der Innovation, die Alfred Winslow Jones gemacht hat – das Eingehen von Long-Positionen in Aktien, von denen erwartet wird, dass sie steigen, und Short-Positionen in Aktien, von denen erwartet wird, dass sie fallen.

Finanzdaten und Datensätze

Finanzdaten gehören zu Zeitreihendaten. Eine Zeitreihe ist eine zeitlich indizierte Reihe von Datenpunkten. Normalerweise ist eine Zeitreihe eine Sequenz, die zu aufeinanderfolgenden, gleich beabstandeten Zeitpunkten aufgenommen wurde: eine Sequenz von zeitdiskreten Daten. Beispiele für Zeitreihen sind die Höhen der Meeresgezeiten, die Anzahl der Sonnenflecken und der tägliche Schlusswert des Dow Jones Industrial Average.

Historische Daten sind in diesem Zusammenhang Zeitreihendaten aus der Vergangenheit. Es ist einer der wichtigsten und wertvollsten Teile, um über zukünftige Preise zu spekulieren. Es gibt einige öffentlich verfügbare Datensätze online, aber normalerweise enthalten diese Daten nicht viele Funktionen – es sind normalerweise 1-Tages-Intervalldaten, 1-Stunden-Intervalldaten oder 1-Minuten-Intervalldaten.

Datensätze mit reichhaltigeren Funktionen und in kleineren Zeitintervallen sind normalerweise nicht öffentlich verfügbar und können sehr teuer zu beschaffen sein. Kleinere Intervalle bedeuten mehr Zeitreihendaten in einem festen Zeitraum – in einem Jahr gibt es 365 (oder 366) Tage, also stehen maximal 365 (oder 366) Datenpunkte zur Verfügung. Jeder Tag hat 24 Stunden, also sind in einem Jahr 8.760 (oder 8.784) stündliche Datenpunkte verfügbar, und jeder Tag hat 86.400 Minuten, also sind in einem Jahr 525.600 (oder 527.040) Minuten-Datenpunkte verfügbar.

Mit mehr Daten sind mehr Informationen verfügbar, und mit mehr Informationen ist es möglich, bessere Schlussfolgerungen darüber zu ziehen, was in der nächsten Zeitperiode passieren wird – vorausgesetzt natürlich, dass die Daten aus einem Merkmal bestehen, das gut genug ist, um gut verallgemeinert zu werden. Die Aktienkursdaten von 2007-2008, auf dem Höhepunkt der globalen Finanzkrise, sind verzerrt und für heutige Kursprognosen wahrscheinlich nicht relevant. Bei einem kleineren Zeitintervall ist es einfacher vorherzusagen, was als nächstes passieren wird, da viele Datenpunkte in einem festen Intervall vorhanden sind. Es ist einfacher vorherzusagen, was in der nächsten Nanosekunde passieren wird, wenn wir alle Datenpunkte für jede Nanosekunde in einem festen n -Jahres-Intervall haben, als was im nächsten Jahr an der Börse passieren wird, wenn wir alle n Datenpunkte für jedes Jahr haben ein festes n -Jahres-Intervall.

Das bedeutet jedoch nicht, dass unter der Annahme, dass eine schnelle Reihe kurzfristiger Vorhersagen richtig ist, auch die langfristige Vorhersage richtig sein sollte. Jede Vorhersage führt zu Fehlern, und durch die Verkettung mehrerer Vorhersagen enthält die Langzeitvorhersage am Ende eine erhebliche Menge an Fehlern und ist nutzlos. Unten sehen Sie ein Beispiel für 1-Tages-Intervalldaten für Google-Aktien, die online von Yahoo Finance gekratzt wurden.

Eine Zeitreihe von Finanzdaten zu Google-Aktien für den algorithmischen Handel

Der Datensatz enthält nur wenige Spalten: Datum, Eröffnung, Hoch, Tief und Schluss – jeweils der Preis, zu dem ein Wertpapier zum ersten Mal bei der Eröffnung einer Börse gehandelt wird, der höchste Preis, den das Wertpapier an einem bestimmten Handelstag erzielt hat , der niedrigste an einem bestimmten Handelstag erzielte Preis und der Endpreis, zu dem ein Wertpapier an diesem Tag gehandelt wird.

Normalerweise gibt es in solchen Datensätzen zwei weitere Spalten – Adjusted Close und Volume, aber sie sind hier nicht relevant. Der angepasste Schlusskurs ist der Schlusskurs nach Anpassungen für anwendbare Splits und Dividendenausschüttungen, während das Volumen die Anzahl der während eines bestimmten Zeitraums auf dem Markt gehandelten Aktien ist.

Sie können sehen, dass einige der Daten fehlen. Dies sind die Tage, an denen die Börse nicht arbeitet, normalerweise an Wochenenden und Feiertagen. Für unsere Deep-Learning-Algorithmus-Demonstration werden die fehlenden Tage mit dem zuvor verfügbaren Preis ergänzt. Zum Beispiel werden die Schlusskurse für 2010-01-16, 2010-01-17, 2010-01-18 alle 288,126007 sein, weil es am 15.01.2010 so war. Für unseren Algorithmus ist es wichtig, dass die Daten lückenlos sind, damit wir sie nicht verwechseln. Der Deep-Learning-Algorithmus könnte daraus lernen, wann Wochenenden und Feiertage sind – er lernt zB, dass nach fünf Arbeitstagen ab dem letzten Arbeitstag zwei Tage mit Pauschalpreisen kommen müssen.

visuelle darstellung der aktienkursbewegungen von google über einen bestimmten zeitraum

Dies ist ein Diagramm der Kursbewegungen der Google-Aktie seit dem 04.01.2010. Beachten Sie, dass nur Handelstage zum Zeichnen des Diagramms verwendet werden.

Was ist Deep Learning?

Deep Learning ist ein Teil des maschinellen Lernens und basiert auf Lerndatendarstellungen. Maschinelles Lernen untersucht Algorithmen, deren Funktionalität nicht programmiert, sondern aus den Daten gelernt wird. Es ist im Wesentlichen ein Ansatz für künstliche Intelligenz.

Deep Learning wurde in verschiedenen Bereichen angewendet: Computer Vision, Spracherkennung, Verarbeitung natürlicher Sprache, maschinelle Übersetzung – und bei einigen dieser Aufgaben hat es dem Menschen überlegene Leistungen erbracht.

Ein tiefes neuronales Netzwerk steht im Zentrum von Deep Learning. Das einfachste und grundlegendste Beispiel für ein tiefes neuronales Netzwerk ist ein neuronales Feedforward-Netzwerk. Unten sehen Sie ein Bild eines einfachen neuronalen Feedforward-Netzwerks. Es besteht aus der Eingabe- und der Ausgabeschicht sowie aus verborgenen Schichten.

Diagramm eines einfachen neuronalen Feedforward-Netzwerks mit Eingabe- und Ausgabe- und Lernschichten, die als Knoten dargestellt werden

Versteckte Schichten sind alle Schichten zwischen Eingabe- und Ausgabeschichten. Wir sagen, dass ein neuronales Netzwerk tief ist, wenn es mehr als eine verborgene Schicht hat. Jede Schicht besteht aus einer unterschiedlichen Anzahl von Neuronen. Schichten in diesem grundlegenden neuronalen Feedforward-Netzwerk werden als lineare Schichten bezeichnet – Neuronen in der linearen Schicht multiplizieren nur Werte von 1-D (oder 2-D, wenn die Daten in Stapeln durch das Netzwerk gesendet werden) Eingaben mit geeignetem Gewicht, summieren Produkte zusammen und geben das Endergebnis als 1-D- oder 2-D-Ausgabe aus.

Die Aktivierungsfunktion wird normalerweise in Feedforward-Netzwerken angewendet, um Nichtlinearitäten einzuführen, damit das Netzwerk komplexere, nichtlineare Probleme modellieren kann. In Feedforward-Netzwerken fließen Daten ohne Schleifen von der Eingabeschicht zur Ausgabeschicht. Verbindungen zwischen den Neuronen werden gewichtet. Gewichtungen müssen angepasst werden, damit das neuronale Netzwerk korrekte Ausgaben für die gegebenen Eingaben zurückgibt. Das Feedforward-Netzwerk bildet Daten vom Eingaberaum auf den Ausgaberaum ab. Ausgeblendete Schichten extrahieren wichtige und abstraktere Merkmale aus den Merkmalen der vorherigen Schicht.

Die allgemeine Deep-Learning-Pipeline ist die gleiche wie die Machine-Learning-Pipeline und besteht aus den folgenden Schritten:

  1. Datensammlung. Die Daten werden in drei Teile unterteilt: Trainingsdaten, Validierungsdaten und Testdaten.
  2. Trainieren des DNN unter Verwendung der Trainingsdaten über eine Reihe von „Epochen“ (die jeweils aus einer Reihe von Iterationen bestehen) und Validierung nach jeder Epoche unter Verwendung der Validierungsdaten.
  3. Testen des Modells (eine Instanz eines neuronalen Netzes mit festen Parametern) nach der Abfolge von Trainingseinheiten und Validierungen.

Das Training des neuronalen Netzes bedeutet eigentlich, die Gewichte zwischen den Neuronenpaaren anzupassen, indem die Verlustfunktion unter Verwendung eines Backpropagation-Algorithmus in Kombination mit dem stochastischen Gradientenabstieg minimiert wird. Mit Ausnahme von Gewichtungen, die durch den Lernprozess bestimmt werden, erfordern Deep-Learning-Algorithmen normalerweise die Einstellung der Hyperparameter – Parameter, die nicht gelernt, aber vor dem Lernen festgelegt werden. Hyperparameter sind die Anzahl der Schichten, die Anzahl der Neuronen in den Schichten, die Typen der Schichten, die Typen der Neuronen und die Gewichtsinitialisierung.

Es gibt Hardwareeinschränkungen bei der Einstellung von Hyperparametern; Derzeit ist es physikalisch nicht möglich, eine Billion Neuronen auf einer einzigen GPU zu platzieren. Das zweite Problem für die erschöpfende Hyperparametersuche ist die kombinatorische Explosion; Es ist nicht möglich, alle möglichen Kombinationen von Hyperparametern zu durchsuchen, da dies unendlich viel Zeit in Anspruch nehmen würde. Aus diesem Grund werden Hyperparameter zufällig oder mithilfe einiger Heuristiken und bekannter Beispiele festgelegt, die in wissenschaftlichen Artikeln beschrieben werden – einer der Hyperparameter, die für die Analyse von Finanzdaten verwendet werden und später in diesem Blogbeitrag gezeigt werden, ist die Verwendung von wiederkehrenden Neuronen als Wissenschaftler und Ingenieure haben bewiesen, dass sie mit Zeitreihendaten gut funktionieren. Normalerweise lässt sich anhand von Experimenten am besten feststellen, ob die Hyperparameter für ein bestimmtes Problem gut sind oder nicht.

Der Sinn des Trainings besteht darin, neuronale Netze an die Trainingsdaten anzupassen. Sowohl die Modellvalidierung, die nach jedem Trainingsschritt durchgeführt wird, als auch die Modelltests, die nach dem gesamten Trainingsvorgang durchgeführt werden, werden durchgeführt, um zu sehen, ob das Modell gut verallgemeinern kann. Verallgemeinerung bedeutet, dass das neuronale Netzwerk gute Vorhersagen zu neuen, unsichtbaren Daten treffen kann.

Es gibt zwei wichtige Begriffe im Zusammenhang mit der Modellauswahl: Overfitting und Underfitting . Wenn ein neuronales Netzwerk in Bezug auf die Daten, auf denen es trainiert wird, zu komplex ist – wenn es zu viele Parameter hat (zu viele Schichten und/oder zu viele Neuronen in Schichten) – kann das neuronale Netzwerk die Daten überanpassen. Es kann sich gut an die Trainingsdaten anpassen, da es mehr als genug Kapazität hat, um alle Daten aufzunehmen, aber dann ist die Leistung bei Validierungs- und Testsätzen schlecht.

Wenn das neuronale Netzwerk bezüglich der Daten, mit denen es trainiert wird, zu einfach ist, kann das neuronale Netzwerk die Daten unterpassen. In diesem Fall hat das neuronale Netzwerk eine schlechte Leistung bei Trainings-, Validierungs- und Testsätzen, da seine Kapazität nicht gut genug ist, um die Trainingsdaten anzupassen und zu verallgemeinern. Auf dem Bild unten werden diese Begriffe grafisch erklärt. Die blaue Linie stellt dar, was durch das neuronale Netzwerk modelliert wird. Das erste Bild zeigt die Situation, wenn es nur wenige neuronale Netzwerkparameter gibt, die nicht ausreichen, um die Trainingsdaten anzupassen und zu verallgemeinern. Das zweite Bild zeigt die Situation, wenn es die optimale Anzahl von Parametern gibt und das neuronale Netzwerk gut auf unsichtbare Daten generalisieren kann, und das dritte Bild zeigt die Situation, wenn die Anzahl von Parametern eines neuronalen Netzwerks zu groß ist und das neuronale Netzwerk dies perfekt kann Passen Sie alle Daten aus dem Trainingsset an, aber es hat eine schlechte Leistung in den Validierungs- und Testsets.

grafische Darstellung von Underfit-, Optimal- und Overfit-Szenarien

Wiederkehrende neuronale Netze

Eine kompliziertere Version eines neuronalen Netzes ist ein rekurrentes neuronales Netz. In rekurrenten neuronalen Netzwerken können Daten im Gegensatz zu Feedforward-neuronalen Netzwerken in jede Richtung fließen. Sie können Zeitreihenabhängigkeiten gut lernen. Die Architektur eines allgemeinen rekurrenten neuronalen Netzwerks ist im Bild unten dargestellt.

Grafische Darstellung der allgemeinen RNN-Architektur

Auf dem Bild unten ist ein wiederkehrendes Neuron dargestellt. Es nimmt X_{t} , Zeitpunkt t , als Eingabe und gibt h_{t} , versteckter Zustand zur Zeit t , als Ausgabe zurück. Die verborgene Ausgabe wird zurück an das Neuron weitergegeben. Das rekurrente Neuron kann abgerollt werden, da es auf demselben Bild von der rechten Seite gezeigt wird. X_{t_0} ist der Zeitpunkt im Zeitraum t_{0} , X_{t_1} im Zeitraum t_{1} und X_{t} im Zeitraum t . Ausgaben, die durch die Eingaben X_{t_0} , X_{t_1} , …, X_{t_n} in Zeitabschnitten t_{0} , t_{1} , …, t_{n} erzielt werden, sind sogenannte versteckte Ausgaben: h_{t_0} , h_{t_1} , …, h_{t_n} .

visuelle Darstellung der I/O-Struktur eines wiederkehrenden Neurons

Eine der besten rekurrenten neuronalen Netzwerkarchitekturen ist die LSTM-Architektur. LSTM ist unten dargestellt:

Visualisierung der LSTM-Architektur

LSTMs haben die gleiche allgemeine Struktur wie allgemeine rekurrente neuronale Netze, aber das rekurrente Neuron ist ein wenig anders und hat eine komplexere Struktur. Aus dem obigen Bild ist ersichtlich, dass innerhalb einer LSTM-Zelle viele Berechnungen durchgeführt werden. LSTM-Zellen können im Kontext dieses Beitrags als Black Box betrachtet werden, aber für neugierigere Leser erklärt dieser großartige Blog-Beitrag Berechnungen innerhalb von LSTMs und vieles mehr.

Nennen wir die Eingabe für das neuronale Netz einen „Merkmalsvektor“. Es ist ein n -dimensionaler Vektor, dessen Elemente Merkmale sind: f_{0} , f_{1} , f_{2} …, f_{n} .

 \vv{X} = [f_{0}, f_{1}, f_{2}, …, f_{n}]

Lassen Sie uns nun erklären, wie wiederkehrende neuronale Netze auf eine finanzbezogene Aufgabe angewendet werden können. Eingabe für das rekurrente neuronale Netz ist [X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}] . Nehmen wir an, dass n = 5 ist. Wir nehmen fünf Google Close-Aktienkurse von fünf aufeinanderfolgenden Tagen (siehe Tabelle mit Open/High/Low/Close-Daten oben) zwischen, sagen wir, 2010-01-04 und 2010-01-08, d. h. [[311.35], [309.98], [302.16], [295.13], [299.06]] . Der Merkmalsvektor in diesem Beispiel ist eindimensional. Die Zeitfolge besteht aus fünf solchen Merkmalsvektoren. Ausgaben des rekurrenten neuronalen Netzes sind versteckte Merkmale [h_{t_0}, h_{t_1}, h_{t_2}, …, h_{t_n}] . Diese Merkmale befinden sich auf einer abstrakteren Ebene als die Eingabemerkmale [X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}] – LSTM sollte die wichtigen Teile der Eingabemerkmale lernen und darauf projizieren der versteckte funktionsraum. Diese verborgenen, abstrakten Merkmale können in der nächsten LSTM-Zelle weitergegeben werden, was den nächsten Satz von verborgenen, abstrakteren Merkmalen ergibt, die dann wiederum an das nächste LSTM weitergegeben werden können, und so weiter. Nach der Sequenz verketteter LSTMs ist die letzte Komponente des neuronalen Netzwerks die lineare Schicht (der Gebäudeteil des im vorherigen Abschnitt erläuterten einfachen Feedforward-Netzwerks), die verborgene Merkmale vom letzten LSTM auf den Punkt im eindimensionalen Raum abbildet, und dieser Punkt ist die endgültige Ausgabe des Netzwerks – der prognostizierte Schlusskurs im Zeitraum X_{t+1} . Die Grundwahrheit in diesem Beispiel für X_{t+1} ist 298.61 .

Hinweis: Es kann auch nur ein LSTM geben – das Festlegen der Anzahl von LSTMs ist ein Hyperparameter, der im Allgemeinen empirisch gefunden wird, obwohl wir einige Heuristiken verwenden können. Wenn die Daten nicht so komplex sind, verwenden wir eine weniger komplexe Architektur, damit das Modell die Daten nicht übermäßig anpasst. Wenn die Daten komplex sind, verwenden wir ein komplexes Modell, damit das Modell die Daten nicht unterpasst.

In der Trainingsphase werden die vorhergesagten Schlusskurse mit den Ground-Truth-Preisen verglichen, und die Differenz zwischen den vorhergesagten Schlusskursen und den Ground-Truth-Preisen wird mithilfe eines Backpropagation-Algorithmus und eines Gradientenabstiegs-Optimierungsalgorithmus (oder einer seiner Formen – konkret in diesem Fall) minimiert blog wird die sogenannte „Adam“-Version eines Gradientenabstiegs-Optimierungsalgorithmus verwendet), indem die Gewichte des neuronalen Netzwerks geändert werden.

Nach dem Training und Testen muss der Benutzer in Zukunft nur noch Eingabedaten an das neuronale Netzwerk geben und es wird den vorhergesagten Preis zurückgeben (und hoffentlich einen Preis, der sehr nahe am Ground-Truth-Preis aus der Zukunft liegt).

Eine weitere Sache, die hier erwähnt werden sollte, ist, dass normalerweise Datenstapel durch das Netzwerk gesendet werden, sowohl in Trainings- als auch in Testphasen, damit das Netzwerk mehrere Ausgaben in nur einem Durchgang berechnen kann.

Unten sehen Sie ein Bild einer Architektur, die in diesem Blog für Experimente verwendet wird. Es besteht aus zwei gestapelten LSTMs und einer linearen Schicht.

visuelle Darstellung der oben beschriebenen Architektur

Experimente mit Hedgefonds-Algorithmen

Versuchen Sie es mit so einfachen algorithmischen Handelsstrategien wie folgt: Wenn der Algorithmus vorhersagt, dass der Kurs am nächsten Tag steigen wird, dann kaufen Sie n ( n = 1 in diesem Beispiel) Aktien eines Unternehmens (Long), andernfalls verkaufen Sie alle Aktien von a Unternehmen (kurz). Der Anfangswert des Portfolios (der Wert von Barmitteln und Anteilen zusammen) wird auf 100.000 US-Dollar festgelegt. Jede Long- oder Short-Aktion kauft n Aktien eines Unternehmens (in diesem Beispiel Google) bzw. verkauft alle Aktien eines Unternehmens. Am Anfang besitzt das System 0 Aktien eines bestimmten Unternehmens.

Denken Sie immer daran, dass dies ein sehr grundlegendes und einfaches Beispiel ist, das nicht für die Verwendung in der realen Welt gedacht ist, da viel mehr Forschungs- und Entwicklungsarbeit erforderlich wäre, um das Modell so zu optimieren, dass es in der Praxis gut funktioniert. Einige Dinge werden hier vernachlässigt, die in einem realen Szenario berücksichtigt werden sollten; Beispielsweise werden Transaktionsgebühren nicht in das Modell aufgenommen. Es wird davon ausgegangen, dass das System jeden Tag genau zur gleichen Zeit handeln kann, und es wird davon ausgegangen, dass jeder Tag, auch an Wochenenden oder Feiertagen, ein Handelstag ist.

Zum Testen wird ein Backtesting-Verfahren verwendet. Die Backtesting-Methode verwendet historische Daten, um Trades zu rekonstruieren, die in der Vergangenheit unter Verwendung der mit der entwickelten Strategie definierten Regeln stattgefunden hätten. Der Datensatz ist in zwei Teile aufgeteilt – der erste Teil ist der Trainingssatz (Vergangenheit) und der zweite Teil ist der Testsatz (Zukunft). Das Modell wird auf einem Trainingsset trainiert, und nach dem Training simulieren wir die Zukunft auf dem zweiten Teil des Datensatzes, um zu sehen, wie sich das trainierte Modell in der Zukunft verhalten hätte, wenn es nicht darauf trainiert worden wäre.

Die Metrik zur Bewertung der Handelsstrategie ist die Sharpe Ratio (ihre annualisierte Version, unter der Annahme, dass alle Tage in einem Jahr Handelstage sind und das Jahr 365 Tage hat: sqrt(365)*mean(returns)/std(returns)) , wobei die Rendite ist definiert als p_{t}/p_{t-1} - 1 und p_{t} ist der Preis im Zeitraum t . Die Sharpe-Ratio zeigt das Verhältnis zwischen den Renditen und dem zusätzlich eingegangenen Risiko, daher ist es gut, eine größere Sharpe-Ratio zu haben. Normalerweise ist ein Verhältnis von mehr als 1 für Anleger akzeptabel, 2 ist sehr gut und 3 ist ausgezeichnet.

Als Funktion wird nur der tägliche Schlusskurs der historischen Google-Kurse aus dem Yahoo Finance-Datensatz verwendet. Weitere Funktionen werden helfen, aber es würde den Rahmen dieses Blogs sprengen, zu testen, welche anderen Funktionen aus dem Datensatz (Offen, Hoch, Niedrig) wichtig sind. Einige andere Funktionen, die nicht in der Tabelle enthalten sind, könnten ebenfalls hilfreich sein, z. B. die Stimmung der Nachrichten in einer bestimmten Minute oder wichtige Ereignisse an einem bestimmten Tag. Es ist jedoch manchmal sehr schwierig, Datendarstellungen zu erstellen, die für die Eingabe in neuronale Netze nützlich sind, und sie mit vorhandenen Merkmalen zu kombinieren. Beispielsweise ist es einfach, den Merkmalsvektor zu erweitern und eine Zahl einzugeben, die die Nachrichtenstimmung oder Trumps Tweet-Stimmung ( -1 sehr negativ, 0 neutral, +1 sehr positiv usw.) für jeden bestimmten Zeitraum darstellt, aber das ist nicht der Fall Es ist so einfach, bestimmte ereignisgesteuerte Momente (Piraten im Suezkanal, Bombe in einer Raffinerie in Texas) in den Merkmalsvektor aufzunehmen, da wir für jeden bestimmten Moment ein zusätzliches Element im Merkmalsvektor benötigen, um 1 if zu setzen das Ereignis ist passiert oder 0 andernfalls, was zu einer unendlichen Anzahl von Elementen für alle möglichen Momente führt.

Für diese schwierigeren Daten könnten wir einige Kategorien definieren und für jeden Moment bestimmen, zu welcher Kategorie er gehört. Wir könnten auch Funktionen von Aktien anderer Unternehmen für ein System hinzufügen, um die Korrelation zwischen den Aktienkursen verschiedener Unternehmen zu lernen. Außerdem gibt es eine Art neuronales Netzwerk, das auf Computer Vision spezialisiert ist – Convolutional Neural Networks –, das interessant wäre, es mit wiederkehrenden Schichten zu kombinieren und zu sehen, wie visuelle Merkmale mit den Preisen einiger Unternehmen korrelieren. Vielleicht könnten wir den Feed der Kamera von einem überfüllten Bahnhof als Feature verwenden und diesen Feed an ein neuronales Netzwerk anhängen und sehen, ob das, was das neuronale Netzwerk sieht, mit den Aktienkursen einiger Unternehmen korreliert – selbst darin könnte ein verborgenes Wissen stecken banales und absurdes Beispiel.

Unten ist ein Diagramm, das zeigt, wie der durchschnittliche Trainingsverlust im Laufe der Zeit abnimmt, was bedeutet, dass das neuronale Netzwerk über genügend Kapazität verfügt, um die Trainingsdaten anzupassen. Es ist wichtig zu sagen, dass die Daten normalisiert werden müssen, damit der Deep-Learning-Algorithmus konvergieren kann.

Deep-Learning-Handelsdiagramm, das den durchschnittlichen Verlust im Laufe der Zeit zeigt

Unten ist ein Diagramm, das zeigt, wie der durchschnittliche Testverlust im Laufe der Zeit abnimmt, was bedeutet, dass das neuronale Netzwerk die Fähigkeit hat, auf unsichtbare Daten zu verallgemeinern.

Deep-Learning-Handelsdiagramm, das den durchschnittlichen Testverlust im Laufe der Zeit zeigt

Der Algorithmus ist gierig; Wenn er voraussagt, dass der Kurs am nächsten Tag steigen wird, kauft der Algorithmus sofort n=1 Aktie eines Unternehmens (wenn genügend Bargeld im Portfolio ist) und verkauft andernfalls alle Aktien des Unternehmens (falls vorhanden). ). Der Investitionszeitraum ist festgelegt und beträgt 300 Tage. Nach 300 Tagen sind alle Anteile verkauft. Die Simulation auf unsichtbaren Daten, nach einigem Training, ist unten zu sehen. Es wird gezeigt, wie der Portfoliowert im Laufe der Zeit durch tägliche Long/Short-Aktionen (oder nichts tun) steigt.

Deep-Learning-Finanzdiagramm, das die Simulation auf unsichtbaren Daten zeigt

Die Sharpe-Ratio für die obige Simulation beträgt 1,48. Der endgültige Portfoliowert nach 300 Tagen beträgt 100.263,79 $. Wenn wir nur am ersten Tag Aktien gekauft und nach 300 Tagen wieder verkauft hätten, wäre das Portfolio 99.988,41 $ wert.

Unten ist eine Situation dargestellt, in der das neuronale Netzwerk nicht gut trainiert ist und nach einem festen Zeitraum von 300 Tagen Geld verliert.

Handelsergebnisse des neuronalen Netzwerks

Die Sharpe-Ratio beträgt -0,94. Der endgültige Portfoliowert nach 300 Tagen beträgt 99.868,36 $.

Hier ist ein interessantes Beispiel: Der obige Algorithmus ist gierig und sagt nur den Preis für den nächsten Tag voraus und ergreift allein auf der Grundlage dieser Vorhersage Maßnahmen. Es ist möglich, mehrere Vorhersagen zu verketten und den Preis in den nächsten Schritten in der Zukunft vorherzusagen. Beispielsweise können wir mit einer ersten Eingabe von [X_ground_truth_{t0}, X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}] und der ersten Ausgabe von [X_predicted_{t5}] füttern neuronales Netzwerk mit dieser Vorhersage, sodass die nächste Eingabe [X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}] und die Ausgabe [X_predicted_{t6}] ist. Die nächste Eingabe von dort ist [X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}, X_predicted_{t6}] , was zu [X_predicted_{t7}] führt, und so weiter. Das Problem dabei ist, dass wir einen Vorhersagefehler einführen, der mit jedem neuen Schritt zunimmt und schließlich zu einem sehr schlechten Langzeitergebnis führt, wie auf dem Bild unten gezeigt. Die Vorhersage folgt am Anfang dem abnehmenden Trend der Grundwahrheit und stagniert dann und wird mit der Zeit immer schlechter.

Diagramm, das die kumulative Vorhersage im Gegensatz zur Grundwahrheit der Aktienwerte zeigt

Eine sehr einfache Deep-Learning-Analyse wurde für Google-Aktienkurse durchgeführt, aber sie kann fast jeden Satz von Finanzdaten einbeziehen, vorausgesetzt, die Datenmenge ist groß genug und von guter Qualität. Die Daten müssen diskriminierend sein und das Problem gut beschreiben und darstellen.

Einpacken

Wenn es funktionierte und sich in umfangreichen Tests gut verallgemeinerte, könnte dieses System es Hedgefonds-Managern ermöglichen, über die zukünftigen Aktienkurse eines Unternehmens zu spekulieren, indem es Deep Learning nutzt und sich auf algorithmische Handelsstrategien stützt.

Hedge-Fonds-Manager könnten dem System einen Geldbetrag geben, um jeden Tag automatisch zu handeln. Es wäre jedoch sehr schlecht, automatisierte Handelsalgorithmen ohne Aufsicht handeln zu lassen. Der Hedgefonds-Manager sollte über einige Deep-Learning-Fähigkeiten verfügen oder jemanden mit den erforderlichen Fähigkeiten einstellen, um das System zu überwachen und festzustellen, wann das System die Fähigkeit zur Verallgemeinerung und zum guten Handel verloren hat.

If the system lost the ability to generalize, then it would be necessary to retrain it from the beginning and test it again (maybe by introducing more discriminative features or new knowledge—using new data from the past that didn't exist when the model was first trained).

Sometimes, the data is simply not good enough for the deep learning system to be trained and generalize well and, in that case, an experienced deep learning engineer should be able to detect and rectify such a situation. To build a deep learning trading system, you need hedge funds data scientists, machine learning/deep learning experts (both scientists and engineers), R&D engineers familiar with machine learning/deep learning, etc. No matter which part of an application of machine learning they are familiar with, whether it's computer vision or speech recognition, seasoned professionals will be able to put their experience to good use in the financial sector. At its root, deep learning has the same basics regardless of application or industry, and it should be easy for someone experienced to switch from theme to theme.

The system we presented is very basic and, to be applied in the real world, more R&D should be done in order to increase the returns. Possible improvements of the system could be in developing better trading strategies. Collecting more data for training, which is usually very expensive, will help. A smaller time interval between the points is better. Improvements can also surface in using more features (eg, news sentiments or important happenings corresponding to each point in the dataset, despite being hard to code for a neural network) and extensive grid search for hyperparameters and RNN architecture discovery.

Also, more computing power (powerful GPUs are a must) is needed to make a lot of extensive experiments in parallel and to process a large amount of data, provided that a large amount of data is collected.

Verweise:

  • https://www.datacamp.com/community/tutorials/finance-python-trading
  • http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  • https://en.wikipedia.org
  • https://www.investopedia.com/
  • https://finance.yahoo.com/
  • http://pytorch.org/

Author's Note: I would like to thank Ivan Capalija and Matej Paradzik for the constructive conversations and advice about deep learning in finance, which helped me in writing this blog.