Salbrechter, S. (2020). Stock price prediction based on a sentiment analysis of financial news [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2020.80382
Das Ziel dieser Arbeit ist es, eine Stimmungsanalyse von Finanznachrichten durchzuführen, um festzustellen, ob diese Nachrichtendaten für die kurzfristige Vorhersage von Aktienkursbewegungen geeignet sind. Der Datensatz enthält Finanznachrichten, welche zwischen Januar 1996 und Januar 2020 veröffentlicht wurden. Zusätzlich werden insgesamt 921 Indexkonstituenten und ihr Total-Return-Index (ein Performanceindex, der Dividenden und andere performancerelevante Kapitalmaßnahmen berücksichtigt) analysiert. Darüber hinaus werden alle 1220 Unternehmen, die in diesem Zeitraum im SP 500 indexiert sind, für die Aktienkursprognose berücksichtigt. In einem ersten Schritt werden alle Nachrichtenartikel, die sich auf diese 921 Unternehmen beziehen, aus dem Nachrichtendatensatz extrahiert. Anschließend werden aus deren TotalReturn-Indizes tägliche Renditen berechnet, die zur Kennzeichnung der Nachrichtenartikel als positiv, negativ oder neutral verwendet werden. Um einen besseren Einblick in den Datensatz zu erhalten, werden diverse Datenvisualisierungen durchgeführt. Wörter, die Stimmungsinformationen tragen, werden extrahiert und über Wortwolken visualisiert. Für die Klassifizierung werden verschiedene neuronale Netzwerkarchitekturen betrachtet. Genauer gesagt werden sowohl klassische feedforward-Netze (NN) als auch Convolutional Neural Networks implementiert und deren Ergebnisse verglichen. Darüber hinaus werden zwei verschiedene Verfahren zur Merkmalsextraktion, nämlich Bag-of-Words und Worteinbettungen, weiter untersucht. Worteinbettungen werden mit word2vec - einem selbstüberwachten Lernalgorithmus 3 - auf den Trainings- und Validierungsdatensätzen erlernt. Da diese Worteinbettungen Stimmungsinformationen nicht hinreichend erfassen, erfolgt eine Verfeinerung dieser Einbettungen über einen trainierbaren Einbettungslayer eines neuronalen Netzes. Zusätzlich werden n-Gramme mit Längen von eins bis drei berücksichtigt, um den Bag-of-Word-Ansatz weiter zu verbessern. Beim anschließenden Training der neuronalen Netze wurde beobachtet, dass sie zur Überanpassung der Daten neigen, wenn die Merkmalsvektoren groß sind. Folglich führte die Verkleinerung der Merkmalsvektoren von 50000 auf 25000 zu einer Erhöhung der Genauigkeit und der Trainingsgeschwindigkeit, während die Neigung zur Überanpassung der Daten deutlich verringert wurde. Die Leistungsfähigkeit der verschiedenen Modelle und ihre Fähigkeit, Aktienkurse vorherzusagen, wird mit einem Handelsalgorithmus bewertet. Die Daten von Januar 1996 bis Dezember 2017 werden zum Training und zur Validierung verwendet. D.h. der Algorithmus wird darauf trainiert, einen Nachrichtentext mit einem Stimmungsmaß zu versehen, welches die Wahrscheinlichkeit charakterisiert, dass der Aktienkurs der zugehörigen Firma am kommenden Tag steigen wird. Der Zweijahreszeitraum zwischen Januar 2018 und Januar 2020 wird für das Testen und Bewerten mit dem Handelsalgorithmus verwendet. Der Handelsalgorithmus analysiert alle veröffentlichten Nachrichten jeden Tages und weist jedem Artikel eine Stimmungsbewertung zu. Da Nachrichtenartikel vorausschauende Informationen über Aktienrenditen enthalten und das Stimmungsmaß in der Lage ist, diese Informationen (teilweise) zu erfassen, sollte eine positive Nachrichtenstimmung einen Anstieg des Aktienkurses vorhersagen und eine negative Stimmung einen fallenden Aktienkurs im Laufe des nächsten Tages vorhersagen. Dies wird über den Evaluierungszeitraum getestet. Daher kauft der Algorithmus jeden Tag Aktien mit positiver Nachrichtenstimmung und verkauft Aktien mit negativer Stimmung. Schließlich wurde eine risikobereinigte Benchmark auf der Grundlage des Capital Asset Pricing Model (CAPM) verwendet, um die Leistung des Handelsalgorithmus zu ermitteln. Als Ergebnis dieser Arbeit wurde festgestellt, dass der Handelsalgorithmus in der Lage ist, die Benchmark deutlich zu übertreffen. Dies liefert den empirischen Beweis dafür, dass (i) Nachrichtenartikel mit prädiktiver Information ausgestattet sind und (ii) die vorgestellten Algorithmen in der Lage sind, ein Stimmungsmaß aus Artikeln zu extrahieren, welche prädiktive Informationen enthalten, die weiters für die Portfolioauswahl verwendet werden können.
de
The aim of this thesis is to conduct a sentiment analysis of financial news articles in order to determine whether this news data is suitable for the short-term prediction of stock price movements. The dataset contains financial news articles published between January 1996 and January 2020. Additionally, a total of 1220 index constituents and their total return index (a performance index that considers dividends and other performance relevant capital measures) are analyzed. In a first step all the financial news articles related to those companies are extracted from the news dataset. Then, daily returns are calculated from their total return indices which are used to label news articles as positive, negative or neutral. In order to get a better sense of the data set, several data visualisation tasks are performed. Words that carry sentiment information are extracted and visualised via word clouds. For the classification task different neural network architectures are considered. To be more precise, classical feed-forward neural networks (NN) as well as convolutional neural networks are implemented and their results are compared. Furthermore two different feature extraction methods, namely bag-of-words and word embeddings are further investigated. Word embeddings are learned with word2vec - a self-supervised learning task - on the training and validation data sets. Since these word embeddings do not capture sufficient sentiment information, a refinement of those embeddings is carried out via a trainable embedding layer of a neural network. Apart from that, n-grams with lengths from one to three are considered in order to enhance the bag-of-word approach. Subsequently, during the training of the neural networks, it was observed that they tend to overfit the data when the feature vectors are large. Consequently, reducing the size of the feature vectors from 50000 to 25000 led to an increase in accuracy and training speed, while the tendency to overfit the data was significantly reduced. The performance of the different models and their ability to predict stock prices is evaluated with a trading algorithm. Data from January 1996 until December 2017 is used for training and validation. I.e., the algorithm is trained to assign a sentiment measure to a news text which characterizes the likelihood that the associated firm’s share price will rise over the coming day. The two-year period between January 2018 and January 2020 is used for testing and evaluation with the trading algorithm. The trading algorithm analyses all published news of each day and assigns every article a sentiment score. Given that news articles contain predictive information about stock returns and the sentiment measure is able to capture (part of) this information, positive news sentiment should predict a rise in the stock price and negative sentiment should predict a falling stock price over the following day. This is tested over the evaluation period. Therefore, the algorithm buys stocks of positive news sentiment and sells stocks with negative sentiment each day. Finally, a risk-adjusted benchmark based on the Capital Asset Pricing Model (CAPM) was used to determine the performance of the trading algorithm. As a result of this work it was found that the trading algorithm is able to significantly outperform the benchmark. This gives empirical evidence that (i) news articles come with predictive information and (ii) the presented algorithms are able to extract a sentiment measure from articles that contain predictive power which can be used in a portfolio selection.
en
Additional information:
Abweichender Titel nach Übersetzung der Verfasserin/des Verfassers