Direkt zum Hauptbereich

technische Aktienanalyse mit R

Die technische Aktienenalyse überzeugt nicht jedermann; schließlich werden hier aus historischen Daten Handlungsempfehlungen für die Gegenwart, zw Zukunft erzeugt. Tatsächlich sind die Indikatoren mit Vorsicht zu genießen; doch macht die Datenarbeit auch Spaß und man lernt so einiges über manche Aktien. Im Folgenden werden wir mit dem Paket quantmod Aktienerverläufe einlesen, visualisieren und untersuchen.

Daten Einlesen

Wir entscheiden uns für die Quelle Yahoo und wollen die Firma Berkshire-Hathaway genauer anschauen. Mit dem folgenden Code werden die Daten direkt in den Workspace geladen:

library(quantmod)
symbolBasket <- c("BRK-B")
getSymbols(symbolBasket, src="yahoo") # weitere Quellen src="google"/"FRED"/"Oanda"
## [1] "BRK-B"

Zur Vereinfachung schreiben wir noch das Kürzel ohne den Bindestrich:

BRKB <- as.xts(`BRK-B`)
names(BRKB) <- c("BRKB.Open", "BRKB.High", "BRKB.Low", "BRKB.Close", "BRKB.Volume", "BRKB.Adjusted")

Da wir Open, Close, High und Low haben können wir den Verlauf direkt als Candle Chart darstellen. Im Folgenden eingegrenzt auf das aktuelle Jahr bis Anfang September. Im Folgenden wollen wir nun durch die Indikatoren Kaufempfehlungen ableiten und zum Schluss den realen Verlauf anzeigen. –> vom Volumen her gibt es keine großen Auffälligkeiten in den letzten Wochen; der Preis steigt. Mit nur diesen Informationen würde ich hier eine leichte Kaufempfehlung sehen.

candleChart(BRKB, TA=c(addMACD(fast=12, slow=26, signal=9, type="EMA"), addVo()), subset="20250101::20250901")

Nun können wir den Verlauf um weitere Indikatoren erweitern und unsere Schlüsse ziehen.

Moving Averages

Moving Averages dienen der Glättung von Kursschwankungen zur einfacheren Trendbestimmung. Der einfach gleitende Durchschnitt (SMA) berechnet den Durchschnitt der Schlusskurse über einen bestimmten Zeitraum; der exponentielle gleitende Durchschnitt (EMA) gibt neueren Kursen eine höhere Gewichtung. Beliebt sind die 50- und 200-Tage-Linien. Eine Kaufentscheidung kann zB dann signalisiert werden, wenn der kuzrfristigere (EMA) Durchschnitt den langfristigeren Durchschnitt (SMA) von unten nach oben kreuzt.

–> Der 200-Tages-Durchschnitt ist höher als beide kurzfristigen Durchschnitte, was gegen einen Kauf spricht. Andererseits ist der blaue EMA über dem roten SMA mit 50-Tages-Zeiträumen, was für einen Kauf sprechen könnte. Dennoch würde ich hier ein Signal gegen einen Kauf sehen.

candleChart(BRKB, subset="20250101::20250901",
            TA=c(addSMA(n=200, col="red"),
                 addSMA(n=50, col="red"),
                 addEMA(n=50, col="blue")
                 ))

Relative Strength Index

Dem Indikator wird nachgesagt Kursveränderungen aufzuzeigen, indem er u.a. vergangene Gewinne und Verluste in Relation setzt und skaliert. Ein Wert über 70 signalisiert einen Überkauf und auf eine aufziehende Kurskorrektur; ein Wert unter 30 auf eine überverkaufte Marktbedingung und eine baldige Markterholung.

–> Zu Beginn September sehen wir einen Wert um die 70 und somit ein Verkaufsignal: nicht kaufen!

candleChart(BRKB, subset="20250101::20250901",
            TA=c(addRSI(n=14)
                 ))

MACD

Der Moving Average Convergence Divergence (MACD) ist ein Momentum-Indikator, welcher benutzt wird um Kauf- und Verkaufssignale zu identifizieren. Er erlaubt eine Beurteilung, ob die Stärke eines Trends abnimmt oder zunimmt. - Die erste Linie stellt die Differenz zweier expontentiell gleitender Durchschnitte dar - typischerweise der letzten 12 und 26 Tage: MACD = 12day EMA - 26day EMA. Eine steigende MACD-Linie signalisiert einen Aufwärtstrend; eine fallende Linie einen Abwärtstrend. - Die zweite Signallinie wird typischerweise mit dem 9-Tages-Durchschnitt berechnet. Durchschneidet die MACD-Linie die Signallinie von unten nach oben, so wird dies als Kaufsignal interpretiert; kreuzt MACD die Signallinie von oben nach unten, so wird ein Verkaufssignal gesehen. Das Histogramm stellt das Delta zwischen beiden Linien dar und ist in der Regel einfacher zu lesen: je größer die Kerze, desto stärker die Trendstärke. Ein Wechsel der Kerzen vom negativen zum positiven Bereich ist ein Kaufsignal und vice versa.

–> In unserem Fall haben wir eine leicht steigende MACD-Linie: ein Aufwärtstrend. Ein Verkauf- oder Kaufsignal gibt es aber nicht. Aufgrund des Aufwärtstrend würde ich hier zum Kaufen tendieren.

candleChart(BRKB, subset="20250101::20250901",
            TA=c(addMACD(fast=12, slow=26, signal=9, type="EMA")))

Bollinger-Bänder

Die Bollinger-Bänder verdeutlichen die Volatilität. Sie basieren auf einem gleitenden Durchschnitt (Simple Moving Average SMA) auf Basis von 20 Tagen und zwei Bändern im Abstand von zwei Standardabweichungen. Die Bänder sind bei zunehmender Volatilität umso breiter und umso kleiner bei geringer Volatilität; auch gut dargestellt im unterhalb angezeigten width Indikator. Typischer wird ein Zyklus mit geringer Volatilität oder einer Seitwärtsbewegung von einer Expansionsphase abgelöst. Wenn sich der Aktienpreis in die Nähe des oberen Bandes befindet (oder dieses sogar durchbricht), bewerten viele den Titel als überverkauft und machen eine Verkaufschance aus. Eine Kaufchance träte dann auf, wenn der Aktienpreis beim unteren Band verweilt. Bollinger Bands %b zeigt die Position des aktuellen Preises innerhalb der Bänder als Prozentwert von 0 bis 1. Er quantifiziert, wie nah der Kurs am oberen oder unteren Band liegt: Ein Wert von 1 zeigt an, dass der Kurs am oberen Band liegt und ein Verkaufssignal liegt vor.

–> Anfang September verweilt der Kurs nahe des oberen Bandes: ein Kaufsignal.

candleChart(BRKB, subset="20250101::20250901",
            TA=c(addBBands(n = 20, sd = 2, ma = "SMA", draw = 'bands', on = -1), #standard Bollinger Bands
                 addBBands(n = 20, sd = 2, ma = "SMA", draw = 'percent', on = -1), #draw Bollinger %b unterhalb
                 addBBands(n = 20, sd = 2, ma = "SMA", draw = 'width', on = -1) #Bolinger Bands Width unterhalb
                 ))

Rate-Of-Change (ROC)-Indikator

Dieser Indikator misst die prozentuale Kursveränderung über einen bestimmten Zeitraum, indem er den aktuellen Kurs mit dem Kurs vor n Perioden vergleicht. Ein kürzerer Betrachtungszeitraum ist eher für das Day Trading geignet, während ein längerer Zeitraum für das Value Investing verwendet wird. Ein positiver Wert bedeutet, dass der Kurs gestiegen ist; das Kreuzen der Nullinie von unten nach oben signalisiert ein Kaufsignal, während das Kreuzen von oben nach unten ein Verkaufssignal ist.

–> Während ein Value Investor anhand der blauen Linie eher nicht kaufen würde, wäre dies bei der kurzfristigeren Betrachtung schon eher gegeben. das Kaufsignal war zwar schon eher im August mit dem Überschreiten der Nulllinie, so hält der positive Trend doch an: Kaufen!

candleChart(BRKB, subset="20250101::20250901",
            TA=c(addROC(n=200, col="blue"),
                 addROC(n=50, col="red"),
                 addROC(n=22, col="green")
                 ))

Commodity Channel Index

Auch der CCI zeigt (Ver-)Kaufignale auf. Hier wird der aktuelle Preis gegen das Durchschnittsniveau eines bestimmten Zeitraums ermittelt. Die Berechnung ist recht komplex und beinhaltet auch eine Konstante; empfohlen wird 0,015. Die Werte werden damit so skaliert, dass der CCI sich die meiste Zeit in einer Range von +100 bis -100 befindet. - CCI > 100: Aktie ist überkauft, eine Kursabschwächung steht an - CCI < -100: Aktie ist überverkauft, Kurssteigerung steht an - Kauf, wenn CCI die -100 Linie von unten nach oben kreuzt - Verkauf, wenn CCI die +100 Linie von oben nach unten kreuzt Es gilt grundsätzlich, dass ein steiler Anstieg/Rückfall der CCI-Linie auf eine hohe Stärke des sich etablierenden Trends hindeutet.

–> Schön mit der roten FLäche visualisiert sehen wir, dass die Aktie überkauft ist: Verkaufen!

candleChart(BRKB, subset="20250101::20250901",
            TA=c(addCCI(n = 20, maType="SMA", c=0.015)
                 ))

Ergebnis

Wir können nun festhalten - nur Volumen & Preisverlauf: Kauf - Moving Averages: kein Kauf - Relative Strength Index: kein Kauf - MACD: Kauf - Bollinger Bänder: Kauf - ROC-Indikator: Kauf - CCI: kein Kauf Und wie hat sich der Preis entwickelt?

candleChart(BRKB, TA=c(addMACD(fast=12, slow=26, signal=9, type="EMA"), addVo()), subset="20250101::")

 Zwar fällt der Aktienpreis im September leicht; es gibt aber auch Tage mit einem Preis über dem Stand vom 01.09. Zudem sehen wir auch einen Aufwärtstrend im November, welcher sich fotsetzen könnte. Ein Kauf könnte sich also gelohnt haben Doch ist genau dies das Problem der technischen Aktienanalyse: je weiter der Betrachtungszeitraum, desto weniger macht es Sinn per technischer Indikatoren Signale aus vergangenen Aktienwerten zu lesen.

Es gibt auch andere Möglichkeiten zur Aktienanalyse in R; zB mit dem Paket Tidyquant:

library(tidyquant)
data <- tq_get("AMZN", from="2020-01-01", to="2025-01-1")
head(data)


Beliebte Posts aus diesem Blog

Sentiment-Analyse von deutschen Texten in R

Eine Sentiment-Analyse funktioniert im Grunde wiefolgt: die einzelnen Wörter werden eines Textes werden mit bestimmten Bibliotheken abgeglichen und eine Einteilung in "positiv/negativ" oder ein hinterlegter Sentiment-Wert abgegriffen. Die Summe dieser Werte ergibt schließlich den Sentiment-Score des ganzen Texts. Für englische Texte sind in R bereits Bibliotheken hinterlegt (z.B. im Package tidytext ). Für deutsche Texte habe ich auf meiner Recherche die Bibliothek  SentiWS  der Universität Leipzig gefunden. Die rund 16.000 positiven und 18.000 negativen Wörter sind mit einer Wertspanne von -1 zu 1 hinterlegt. Das Problem ist, dass diese in zwei Textdateien kommen, deren Format erst aufbereitet werden muss. So sieht die Bibliothek beim Einlesen aus: Mit folgendem Code habe ich mir die Bibliothek operationalisiert: library(dplyr) # SentiWS - Dateien hier runterladen: https://wortschatz.uni-leipzig.de/en/download # a) negative Wörter # die Textdatei einlesen negat...

Was ist fremd?

brandy74 "Malstunde" Some rights reserved. www.piqs.de Der Begriff Fremdheit wird benutzt zur Charakterisierung einer Beziehung. Immer muss etwas bekannt sein um es auch als fremd zu bezeichnen; andernfalls kann es nicht beschrieben werden. Wissenschaftlich wird die Fremdheit oft auch als die Gleichzeitigkeit von Nähe und Entferntheit, von Verbundenheit und Getrenntheit charakterisiert. Wer demnach etwas als fremd bezeichnet, unterscheidet die Welt an dieser Stelle in ein Innen und ein Außen. Das Fremde sei jenseits einer einer imaginären Grenze. Diese Grenzen können unterschiedlich lokalisiert werden. Bei der kulturellen Fremdheit werden andere kulturelle Verhaltensweisen und Ansichten identifiziert und als fremd bezeichnet. Bei der sozialen Fremdheit ist der Fremde hingegen Teil der eigenen Gesellschaft, der eigenen Gemeinschaft. Durch die Zuschreibung der sozialen Fremdheit wird er aus dem eigenen Bereich, also dem eigenen sozialen Milieu, exkludiert. Drückt sich...

Migration und Bevölkerungsentwicklung: Solidarität und Selbsthilfe

Aus: Neue Potenziale - zur Lage der Nation in Deutschland , Juni 2014,  Berlin-Institut für Bevölkerung und Entwicklung Vor ein paar Wochen war ich auf einem sehr spannenden Vortrag am ifo-Institut in München von Herrn Dr. Klingholz, Direktor des Berlin Instituts für Bevölkerung und Entwicklung. Der Vortrag widmete sich einerseits der Zusammensetzung und dem Bildungs- wie Integrationsgrad deutscher Migranten und andererseits der zukünftigen Bevölkerungsentwicklung in Teilen der Welt und deren Auswirkungen auf die Migration in Europa, bzw. Deutschland. Polarisierend Unterteilt man die Migranten(1) nach Gruppen hinsichtlich ihrer Herkunftsländer, so zeigt sich oft eine starke Polarisierung des Bildungsgrades. Beispiel Rumänien und Polen. Zwar ist der Anteil der Migranten aus Rumänien und Polen ohne Bildungsabschluss wesentlich höher als der Anteil der Einheimischen. Umgekehrt ist der Anteil an Akademikern bei Migranten aus Rumänien und Polen höher als bei Einheimischen. A...

die Hot-Dog-Ökonomie

Diego Torres Silvestre " Ice Creams, Hot Dogs & Pretzels" Some rights reserved. www.piqs.de Man stelle sich eine Wirtschaft vor, in der nur zwei Güter hergestellt würden: Würstchen und Brötchen. Konsumenten würden Hotdogs kaufen; also jeweils ein Brötchen mit einer Wurst. Die Fertigung geschieht durch Menschenhand. So fing Paul Krugman 1997 einen Artikel für das Online-Magazine Slate an, in welchem er den Zusammenhang von Technologie, Jobs und Kapitalismus erklären will. Er fährt fort, dass in dieser Wirtschaft 120 Millionen Arbeiter beschäftigt sind, was einer Vollbeschäftigung entspreche. Zur Herstellung einer Wurst oder eines Brötchens benötige es zwei Arbeitstage. Die 60 Millionen Angestellten in der Brötchenproduktion und genauso viele in der Wurstfabrikationen produzieren demnach täglich 30 Millionen Brötchen und Würste. Angenommen es komme eine verbesserte Technologie auf, mit deren Hilfe ein Arbeiter zur Herstellung einer Wurst nur noch einen Tag ...

die schöne Welt von Red Bull

Till Krech "wroooom" Some rights reserved. www.piqs.de Red Bull – vom Marktführer für Energiegetränke zum kommenden Medienimperium? Das Magazin Fast Company vergab in der Liste „The World´s 50 Most Innovative Companies“ den 29. Platz an Red Bull für genau diese Entwicklung. Gebündelt unter dem Dach der Red Bull Media House GmbH besitzt der Konzern mittlerweile verschiedene Medienbeteiligungen und Neugründungen. Kritiker bezeichnen es als eine gewaltige Marketingmaschine. Rund ein Drittel des Umsatzes wird für die Pflege des Marktauftritts ausgegeben. Eine firmeninterne Nachrichtenagentur sammelt Inhalte zu einen der vielen weltweiten aufsehenerregenden Red-Bull-Ereignisse, um sie externen Medien gebündelt und aufbereitet zur Verfügung zu stellen. Über eigene Medien werden die Konsumenten sogar direkt erreicht. Das 2007 gegründete Hochglanzmagazin "Red Bulletin" hat bereits eine Auflage von 5 Millionen Heften erreicht und wird mehrspraching in zwö...

Verspargelung der Landschaft

FZ 18: "Mount Idarkopf" www.piqs.de Some Rights reserved. Vielleicht ist es, weil ich erst 22 Jahre alt bin. Vielleicht weil es bei meiner Heimatstadt schon seit mehr als zehn Jahren ein Windrad gibt. Aber das Argument einer Verspargelung der Landschaft durch Windräder zählt für mich nicht. Ich komme aus Baden-Württemberg. Insofern verfolgt mich das Argument der Verspargelung der Landschaft durch den ehemaligen baden-württembergischen Ministerpräsidenten Erwin Teufel fast genauso lange wie das Windrad vor meiner Haustür. Das Argument wird immer wieder von jenen hervorgebracht, welche gegen die Aufstellung von Windrädern sind. Die einen fürchten um die Landschaft, andere finden sie einfach nicht schön und noch andere bringen es nur als Vorwand. Besonders die Nähe zur Atomwirtschaft fällt einem bei der hießigen CDU auf. In Baden-Württemberg ist der Fall bei den Windrädern vielleicht ein bisschen spezieller. Wenn man hier die Windenergie effizient nutzen will, so...