Exxact | Deep Learning, HPC, AV, Distribution & More

Wie man mit Hilfe von LSTM Börsenkurse vorhersagen kann

Die Finanzindustrie war eine der ersten Branchen, die maschinelles Lernen und Deep Learning für ihre Investmentanalysen und -operationen einsetzte, um ihren Kunden einen Mehrwert zu bieten. Vor dem maschinellen Lernen, dem Deep Learning und der gesamten „Quant“-Revolution in den 2000er Jahren verließen sich Analysten und Anleger bis heute auf weniger technologieabhängige Techniken. Fundamentale und technische Analysen waren vorherrschend, und obwohl sie immer noch einen großen Teil der Analyse ausmachen, werden sie jetzt mit Prognosen und Analysen kombiniert, die von Computern durchgeführt werden.

Wie die meisten Menschen wissen, ist die Börse ein Ort, an dem man Aktien kauft und verkauft. Der Kauf und Verkauf dieser Aktien (d.h. der Handel) findet in physischen und virtuellen Umgebungen statt, die „Börsen“ genannt werden. Diese Börsen sind Häuser für Indizes (die bekanntesten sind der Dow Jones Industrial Average und der NASDAQ Composite). An den Börsen werden die Kurse der Aktien, aus denen sich die Indizes zusammensetzen, festgelegt.

Es gibt viele Faktoren, die den Kurs einer Aktie schwanken lassen können. Tägliche Nachrichtenberichte mit guten oder schlechten Nachrichten über die aktuellen oder zukünftigen Aussichten eines Unternehmens sind wohl einer der einflussreichsten Faktoren, die die täglichen Kursschwankungen bestimmen. Die Rentabilität eines Unternehmens, das Umsatzwachstum und die künftigen Expansionsaussichten sind Indikatoren, die sowohl langfristige als auch kurzfristige Kursänderungen bewirken können. Deep Learning und andere statistische Modelle können nur so viel berücksichtigen und eignen sich in der Regel besser für kurz- bis mittelfristige Prognosen als für langfristige (z. B. über Jahre).

Sind Sie an schnelleren Ergebnissen interessiert?
Erfahren Sie mehr über die Deep Learning-Lösungen von Exxact

Langzeit-Kurzzeit-Speicher-Modelle (LSTM)

Langzeit-Kurzzeit-Speicher-Modelle (LSTM)

Quelle

LSTMs sind eine Ableitung eines rekurrenten neuronalen Netzwerks (RNN). Ein RNN ist ein geeignetes Modell für einen kurzen Zeithorizont von vielleicht einer Woche bis zu einem Monat. Darüber hinaus ist es unwahrscheinlich, dass das RNN zuverlässige Prognosen liefert. Dies ist auf das Problem des verschwindenden Gradienten zurückzuführen.

Eine normale Zeitreihenmethode wie AR und seine Derivate oder ANN (Artificial Neural Network) kann lernen, indem sie eine große Gewichtung auf den Preis des Vortages und einige andere Merkmale anwendet. Für finanzielle Zeitreihen würden Sie ARCH-Modelle und ihre Derivate verwenden, um die Erträge oder die Volatilität vorherzusagen. In einem Feed-Forward-Netzwerk werden diese Punkte als unabhängig voneinander betrachtet. Das bedeutet, dass das LSTM nicht den gleichen Ansatz wie die traditionellen Zeitreihenprognoseverfahren verfolgt.

LSTM verwendet unterschiedliche Abhängigkeiten bei der Vorhersage

Ein LSTM nimmt die Daten durch sogenannte „Zellen“ auf, wie Sie im obigen Diagramm im mittleren Rechteck sehen können. Durch den Zustand dieser Zellen kann das LSTM entscheiden, ob es sich an Dinge erinnert oder sie vergisst.

Ein LSTM hat 3 verschiedene Abhängigkeiten, je nach den Informationen, die es erhält:

    1. Der vorherige Zellzustand (d.h. die Informationen, die nach dem vorherigen Zeitschritt im Speicher vorhanden waren)
    2. Der vorherige verborgene Zustand (d.h. dies ist derselbe wie die Ausgabe der vorherigen Zelle)
    3. Die Eingabe im aktuellen Zeitschritt (d.h. die neuen Informationen, die in diesem Moment eingespeist werden)

Für den Bereich der Preisvorhersage von Finanzanlagen lassen sich diese Abhängigkeiten wie folgt erklären:

  1. Der vorherige Zellzustand – Der Trend der Aktie am Vortag.
  2. Der vorherige verborgene Zustand – Der Preis der Aktie am Vortag.
  3. Der Input im aktuellen Zeitschritt – Andere Faktoren, die den Preis beeinflussen können. In der Regel handelt es sich dabei um Nachrichten, die den Anlegern im Laufe des Tages zur Verfügung stehen.

Zellzustände des LSTM in der Art, wie sie gespeichert werden

Quelle

In dem obigen Diagramm bezeichnet die horizontale Linie ct den Zellzustand, der den Speicher des LSTM darstellt. Wie bereits erwähnt, handelt es sich dabei um den Trend der Aktie am Vortag (1). Diese Informationen fließen in die Zelle ein und werden zusammen mit den anderen Informationen, die einfließen, verarbeitet. Die mit ct-1 bezeichnete Linie ist der verborgene Zustand (2), der in unserem Fall der Aktienvorhersage die Informationen der vorangegangenen Zeitschritte enthält (d. h. den Aktienkurs des Vortags). Die horizontale Linie, die mit ht-1 bezeichnet wird, ist die Eingabe zum aktuellen Zeitpunkt, d. h. der aktuelle Aktienkurs (3). Unter Verwendung der Informationen des vorherigen Aktienkurses (Hidden State), des aktuellen Kurses in Kombination mit dem Trend des Vortages (Cell State) generiert das LSTM eine Ausgabe.

AMD EPYC SERVER SALE

Python-Code zur Erstellung eines LSTM-Vorhersagemodells

Der folgende Python-Code führt uns durch die Schritte zur Erstellung eines LSTM-Modells zur Vorhersage des Kurses einer Aktie.

  1. # -*- coding: utf-8 -*-
  2. """EXXACT - Stock Market Prediction LSTM.ipynb
  3. Automatically generated by Colaboratory.
  4. """
  5. # By running this line of code, you will be prompted to select your file to upload.
  6. from google.colab import files
  7. uploaded = files.upload()
  8. import io
  9. import pandas as pd
  10. import numpy as np
  11. import matplotlib.pyplot as plt
  12. %matplotlib inline
  13. from matplotlib.pylab import rcParams
  14. rcParams=20,10
  15. from keras.models import Sequential
  16. from keras.layers import LSTM,Dropout,Dense
  17. from sklearn.preprocessing import MinMaxScaler
  18. df = pd.read_csv(io.BytesIO(uploaded))
  19. print(df)
  20. df=pd.to_datetime(df.Date,format="%Y-%m-%d")
  21. df.index=df
  22. data=df.sort_index(ascending=True,axis=0)
  23. new_dataset=pd.DataFrame(index=range(0,len(df)),columns=)
  24. for i in range(0,len(data)):
  25. new_dataset=data
  26. new_dataset=data
  27. train_data=final_dataset
  28. valid_data=final_dataset
  29. new_dataset.index=new_dataset.Date
  30. new_dataset.drop("Date",axis=1,inplace=True)
  31. scaler=MinMaxScaler(feature_range=(0,1))
  32. scaled_data=scaler.fit_transform(new_dataset)
  33. x_train_data,y_train_data=,
  34. for i in range(60,len(train_data)):
  35. x_train_data.append(scaled_data)
  36. y_train_data.append(scaled_data)
  37. x_train_data,y_train_data=np.array(x_train_data),np.array(y_train_data)
  38. x_train_data=np.reshape(x_train_data,(x_train_data.shape,x_train_data.shape,1))
  39. lstm_model=Sequential()
  40. lstm_model.add(LSTM(units=50,return_sequences=True,input_shape=(x_train_data.shape,1)))
  41. lstm_model.add(LSTM(units=50))
  42. lstm_model.add(Dense(1))
  43. inputs_data=new_dataset.values
  44. inputs_data=inputs_data.reshape(-1,1)
  45. inputs_data=scaler.transform(inputs_data)
  46. lstm_model.compile(loss='mean_squared_error',optimizer='adam')
  47. lstm_model.fit(x_train_data,y_train_data,epochs=1,batch_size=1,verbose=2)
  48. X_test=
  49. for i in range(60,inputs_data.shape):
  50. X_test.append(inputs_data)
  51. X_test=np.array(X_test)
  52. X_test=np.reshape(X_test,(X_test.shape,X_test.shape,1))
  53. predicted_closing_price=lstm_model.predict(X_test)
  54. predicted_closing_price=scaler.inverse_transform(predicted_closing_price)
  55. train_data=new_dataset
  56. valid_data=new_dataset
  57. valid_data=predicted_closing_price

Ein Programm zur Vorhersage von Börsenkursen mit Hilfe von LSTM

Sie haben jetzt den Python-Code, mit dem Sie die Börsenkurse mit Hilfe von LSTM vorhersagen können. Probieren Sie es aus und lassen Sie uns wissen, wie es bei Ihnen funktioniert. Wir stehen erst am Anfang, wenn es darum geht, die Fähigkeiten von LSTM in verschiedenen Anwendungen zu erforschen, und wir sind gespannt auf die Zukunft.

Erfahren Sie mehr darüber, wie LSTM Recurrent Neural Networks in anderen Anwendungen eingesetzt werden.

Haben Sie Fragen zu Deep Learning Workstations oder Servern?
Kontaktieren Sie Exxact heute

Leave a Reply

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.