6. Kursdaten: Import und Visualisierung#

In diesem Kapitel beschäftigen wir uns damit, wie wir Kursdaten in Python verwenden können. Dabei sollen folgende Lerninhalte vermittelt werden:

  1. Einbettung und Anzeigen von Kursdaten

  2. Visualisierung und Analyse von Kursen unter Einbeziehung von Charttechnik

6.1. Einbettung und Anzeigen von Kursdaten#

Grundsätzlich gibt es zwei Möglichkeiten Kurse in ein Python-Skript zu implementieren:

        a) Kursdaten werden in einer seperaten Datei aufbereitet (z.B. in .csv oder .xlsx Format)
        b) Direkter Abruf von Kursdaten aus dem Internet

Beginnen wir mit Variante a). Vorteilhaft ist es stets, die Datei der Kursdaten im gleichen Ordner zu haben. In diesem Fall verwenden wir das pandas-Package.

Hinweise:

Dies dann wie folgt aus:

import pandas as pd

#df1 = pd.read_csv("./../../Data/Allianz_Schlusskurse_2020_2025.csv")
df1 = pd.read_csv("./../../Data/Allianz_Schlusskurse_2020_2025.csv", 
                       skiprows = 3, names = ["Datum", "Schlusskurs"])
#Achtung: bitte passen Sie den relativen Pfad an Ihre eigene Ordner-Struktur an


# Falls Sie eine xlsx-Datei einlesen wollen, die im gleichen Ordner liegt, dann würde der Code wiefolgt aussehen
# df = pd.read_excel("Datei.xlsx")

print(df1)
           Datum  Schlusskurs
0     2020-01-02   163.322479
1     2020-01-03   161.515991
2     2020-01-06   160.520554
3     2020-01-07   160.889252
4     2020-01-08   160.962997
...          ...          ...
1270  2024-12-19   284.622162
1271  2024-12-20   282.417297
1272  2024-12-23   282.033844
1273  2024-12-27   282.896606
1274  2024-12-30   283.663513

[1275 rows x 2 columns]

6.1.1. Abruf von Kursdaten direkt aus Internet#

Kommen wir nun zu unserer Variante b) und rufen Kursdaten direkt aus dem Internet ab. Dazu verwenden wir das Package yfinance.

Hinweise:

  • Das Ticker-Symbol einer Aktie finden wir auf der Yahoo Finance-Webseite hinter dem jeweiligen Aktientitel.

  • Ab und zu hat Yahoo-Finance technische Probleme und der Kursabruf wie im direkt folgendem Beispiel funktioniert trotz fehlerfreien Codes nicht! Aus diesem Grund fangen wir im weiteren Beispiel dieses Problem ab, um unnötige Programmabbrüche zu vermeiden.

  • Manchmal gibt es leider Probleme mit den aktuell installierten Paketen, so dass offensichtlich richtiger Code (hier beispielsweise zum Abrufen von Kursdaten mittels yfinance – in einigen Fällen hilft ein Update des Paketes und manchmal eine De- und Neuinstallation. Falls die Download-Probleme also trotz richtigen Code anhalten, ist ein Wechsel auf eine stabile Version oder auch neuere Version möglich. Hierzu in der aktuellen Environment (myenv) erstmals die installierte Version überprüfen

      pip show yfinance
    

    und mittels pip auf die gewünsche Version zurücksetzen oder aktuallisieren (eine kurze Internetrecherche in diversen Foren ist hier sicherlich hilfreich), beispielsweise

      pip install yfinance==0.2.63
    
  • Manchmal gibt es beim Download der Daten über YahooFinance oder andere (kostenlose) Quellen leider Probleme und sobald der Code deshalb Fehler verursacht, stoppt ein Script. Will man dies vermeiden, kann man mittels try: .. except... diesen Fehler abfangen

import yfinance as yf

alz = yf.Ticker("ALV.DE")

#### Erstelle einen Dataframe, der die Kursdaten der letzten 12 Monate enthält
df2 = alz.history(period="1y", interval = "1d")


print(df2.tail(5))
# Gibt die letzten fünf Zeilen der Kursdaten aus – ideal zur Kontrolle.
                                 Open        High         Low       Close  \
Date                                                                        
2026-02-25 00:00:00+01:00  380.299988  381.799988  378.000000  381.500000   
2026-02-26 00:00:00+01:00  377.600006  384.899994  372.299988  384.700012   
2026-02-27 00:00:00+01:00  384.500000  387.000000  382.200012  382.200012   
2026-03-02 00:00:00+01:00  373.000000  374.500000  368.500000  370.399994   
2026-03-03 00:00:00+01:00  366.000000  366.000000  350.899994  355.399994   

                            Volume  Dividends  Stock Splits  
Date                                                         
2026-02-25 00:00:00+01:00   455837        0.0           0.0  
2026-02-26 00:00:00+01:00   634391        0.0           0.0  
2026-02-27 00:00:00+01:00  1282600        0.0           0.0  
2026-03-02 00:00:00+01:00   917911        0.0           0.0  
2026-03-03 00:00:00+01:00     3059        0.0           0.0  
#speichern der Daten in CSV-Datei
df2.to_csv('alz_12months.csv')

Der folgende Code verursacht keinen Skript-Abbruch, falls mal der Yahoo-Download nicht funktioniert.

import yfinance as yf
import pandas as pd
import pandas_datareader as web   #siehe https://pandas-datareader.readthedocs.io/en/latest/#
from datetime import datetime

ticker = ["TSLA"]

#prices = yf.Ticker(ticker).history('5y')  #aktuell Fehlermeldung wegen Problemen bei Yahoo-Finance


print("Versuche Yahoo Finance für %s:\n" % (ticker))
try:
    data = yf.download(ticker, period = "5y", interval = "1d")
except Exception as e:
    print("Fehler bei Yahoo Daten Download: %s \n" % (e))

if not data.empty:
    print("Daten für %s geladen auf Yahoo-Finance" % ticker)
    print(data.head())
    print("Datentyp Rückgabe yfinance: %s:\n" % type(data))
else:
    print("Probleme mit Yahoo-Finance - keine Daten für %s geladen" % (ticker))
Versuche Yahoo Finance für ['TSLA']:
/tmp/ipykernel_1409935/819823178.py:13: FutureWarning: YF.download() has changed argument auto_adjust default to True
  data = yf.download(ticker, period = "5y", interval = "1d")
[*********************100%***********************]  1 of 1 completed
Daten für ['TSLA'] geladen auf Yahoo-Finance
Price            Close        High         Low        Open     Volume
Ticker            TSLA        TSLA        TSLA        TSLA       TSLA
Date                                                                 
2021-03-04  207.146667  222.816666  200.000000  218.600006  197758500
2021-03-05  199.316666  209.279999  179.830002  208.686661  268189500
2021-03-08  187.666672  206.710007  186.263336  200.183334  155361000
2021-03-09  224.526672  226.029999  198.403336  202.726669  202569900
2021-03-10  222.686661  239.283340  218.353333  233.433334  181817100
Datentyp Rückgabe yfinance: <class 'pandas.core.frame.DataFrame'>:

Der folgende Code zeigt, wie gleichzeitig Kurse für verschiedene Aktien heruntergeladen werden können:

tickers = ["AAPL","ALV.DE"]

print("\nVersuche Yahoo Finance für mehrere Assets %s :\n" % (tickers))
all_prices = {}
try:
    data2 = yf.download(tickers, period = "5y", interval = "1d", group_by = "ticker")     
except Exception as e:    
    print("Fehler bei Yahoo Daten Download: %s \n" % (e))

if not data2.empty:                            
    print(data2.head())
    #print(type(data2))
    print("Datentyp Rückgabe yfinance: %s\n"  % (type(data2)))
    print("Infos DataFrame:\n" )
    print(data2.info())
/tmp/ipykernel_1409935/1412460413.py:6: FutureWarning: YF.download() has changed argument auto_adjust default to True
  data2 = yf.download(tickers, period = "5y", interval = "1d", group_by = "ticker")
Versuche Yahoo Finance für mehrere Assets ['AAPL', 'ALV.DE'] :
[                       0%                       ]
[*********************100%***********************]  2 of 2 completed
Ticker          ALV.DE                                                 \
Price             Open        High         Low       Close     Volume   
Date                                                                    
2021-03-04  161.655059  164.830148  161.537468  164.634155  1011171.0   
2021-03-05  164.163760  164.242162  161.498260  162.791809  1141281.0   
2021-03-08  163.614980  169.102785  163.458188  168.750000  2010270.0   
2021-03-09  168.828413  169.494782  166.672490  167.221268  1339324.0   
2021-03-10  166.750858  168.162010  166.202080  167.338837  1013966.0   

Ticker            AAPL                                                   
Price             Open        High         Low       Close       Volume  
Date                                                                     
2021-03-04  118.583964  120.385854  115.535360  117.006088  178155000.0  
2021-03-05  117.833990  118.769025  114.512661  118.262543  153766600.0  
2021-03-08  117.785289  117.853468  113.188029  113.334129  154376600.0  
2021-03-09  115.934695  118.885901  115.700939  117.941124  129525800.0  
2021-03-10  118.525532  118.993046  116.343777  116.860001  111943300.0  
Datentyp Rückgabe yfinance: <class 'pandas.core.frame.DataFrame'>

Infos DataFrame:

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 1291 entries, 2021-03-04 to 2026-03-03
Data columns (total 10 columns):
 #   Column            Non-Null Count  Dtype  
---  ------            --------------  -----  
 0   (ALV.DE, Open)    1274 non-null   float64
 1   (ALV.DE, High)    1274 non-null   float64
 2   (ALV.DE, Low)     1274 non-null   float64
 3   (ALV.DE, Close)   1274 non-null   float64
 4   (ALV.DE, Volume)  1274 non-null   float64
 5   (AAPL, Open)      1255 non-null   float64
 6   (AAPL, High)      1255 non-null   float64
 7   (AAPL, Low)       1255 non-null   float64
 8   (AAPL, Close)     1255 non-null   float64
 9   (AAPL, Volume)    1255 non-null   float64
dtypes: float64(10)
memory usage: 110.9 KB
None

Neben dem Abruf von Kursdaten von Yahoo-Finance besteht ebenfalls die Möglichkeit mittels API-Schnittstellen auf Kursinformationen zuzugreifen. Ein API-Schnittstellen Provider ist Alpha Vantage. Nach Registrierung und Erhalt des API-Keys können wir nun auf Börsenkurse zugreifen. Dafür verwenden wir folgenden Code:

from alpha_vantage.timeseries import TimeSeries
import pandas as pd

#### API-Key für Alpha Vantage angeben
api_key = 'DasistkeinechterAPI-Key'

#### Verbindung zu Alpha Vantage aufbauen
ts = TimeSeries(key=api_key, output_format='pandas')
# Erstellt ein TimeSeries-Objekt ts, über das du dann Methoden wie get_daily verwenden kannst.
# Mit output_format='pandas' bekommst du die Daten direkt als pandas DataFrame. Pandas ist sehr praktisch und einfach von der Handhabung

####  Tagesdaten abrufen
data, meta_data = ts.get_daily(symbol='AAPL', outputsize='compact')
# symbol='AAPL' fragt die Daten für die Apple-Aktie ab.
# data enthält die eigentlichen Kurse (Open, High, Low, Close, Volume), meta_data enthält Zusatzinfos (z. B. Abfragezeitpunkt, Symbol).

print(data.head())
# Gibt die ersten fünf Zeilen der Kursdaten aus.
            1. open  2. high   3. low  4. close   5. volume
date                                                       
2026-03-03  263.480   265.56  260.130    263.75  38020971.0
2026-03-02  262.410   266.53  260.200    264.72  41827946.0
2026-02-27  272.810   272.81  262.890    264.18  72366505.0
2026-02-26  274.945   276.11  270.795    272.95  32345114.0
2026-02-25  271.780   274.94  271.050    274.23  33714342.0

Mithilfe des Parameters outputsize können wir festlegen, wie viele Daten wir anfordern. Mit dem Wert compact werden nur die letzten 100 Datenpunkte angefordert. Verwenden wir full fordern wir hingegen den gesamten Datenbestand an.

1. Hinweis: In der Regel haben kostenlose API-Schnittstellen die Tücke, nur ein begrenztes Limit an Abfragen pro Minute oder Tag anfordern zu können. Somit kann der Parameterwert full demnach dazu führen, dass dieses Limit schneller erreicht ist. Aber auch yfinance blockiert in der Regel bei zu vielen Anfragen temporär die IP-Adresse. Zur Lösung dieses Problems können die Schlusskurse als csv-Datei abgespeichert werden, somit stehen sie lokal zur Verfügung. Das kann mithilfe des nachfolgenden Codes durchgeführt werden. Der Code wird hier nur angezeigt, aber nicht ausgeführt, da verhindert werden soll, dass bei jedem Durchlauf dieses Jupyter-Skriptes ein Download erfolgt.

 import yfinance as yf
 import pandas as pd

 Ticker-Symbol für Allianz SE an der Börse Frankfurt/Xetra
 ticker = "ALV.DE"

 #Daten abrufen (01.01.2020 bis 01.01.2025)
 data = yf.download(ticker, start="2020-01-01", end="2025-01-01")

 # Nur Schlusskurse extrahieren
 schlusskurse = data[["Close"]].rename(columns={"Close": "Schlusskurs"})

 # Als CSV-Datei speichern
 schlusskurse.to_csv("Allianz_Schlusskurse_2020_2025.csv")

 print("CSV-Datei wurde gespeichert: Allianz_Schlusskurse_2020_2025.csv")
# import yfinance as yf
# import pandas as pd

# Ticker-Symbol für Allianz SE an der Börse Frankfurt/Xetra
# ticker = "ALV.DE"

# Daten abrufen (01.01.2020 bis 01.01.2025)
# data = yf.download(ticker, start="2020-01-01", end="2025-01-01")

# Nur Schlusskurse extrahieren
# schlusskurse = data[["Close"]].rename(columns={"Close": "Schlusskurs"})

# Als CSV-Datei speichern
# schlusskurse.to_csv("Allianz_Schlusskurse_2020_2025.csv")

# print("CSV-Datei wurde gespeichert: Allianz_Schlusskurse_2020_2025.csv")

2. Hinweis: Alpha Vantage liefert in der kostenlosen Version nur Daten für US-Börsen. Dies ist auch der Grund, wieso wir in dem letzten Code Kursdaten von Apple angefordert haben.

mit Pandas Data-Reader: to do – pip…

import pandas_datareader.data as web
import datetime

# Zeitraum
start = datetime.datetime(2022, 1, 1)
end = datetime.datetime(2023, 1, 1)

# Apple von Yahoo Finance
#df = web.DataReader("AAPL", "yahoo", start, end)
#print(df.head())
#stooq

df = web.DataReader("AAPL", "stooq", start, end)
print(df.head())
               Open     High      Low    Close    Volume
Date                                                    
2022-12-30  126.500  128.020  125.537  128.000  78196363
2022-12-29  126.088  128.541  125.832  127.683  76845792
2022-12-28  127.743  129.080  123.999  124.167  86727333
2022-12-27  129.427  129.457  126.806  128.098  70048896
2022-12-23  128.973  130.448  127.713  129.900  64777618
# FRED Daten: 3-Monats-T-Bill Rate („TB3MS“):
df = web.DataReader("TB3MS", "fred", start, end)
print(df.tail())
            TB3MS
DATE             
2022-09-01   3.13
2022-10-01   3.72
2022-11-01   4.15
2022-12-01   4.25
2023-01-01   4.54

6.2. Darstellung der Kursentwicklung#

6.2.1. Visualisierung mit Matplotlib oder Seaborn#

import yfinance as yf
import matplotlib.pyplot as plt
import seaborn as sns
from datetime import datetime


start_date = datetime(year = 2024, month=1, day = 1)

ticker1 = "AAPL"
stock1 = yf.download(ticker1, start = start_date)
stock1.head()
stock1.tail()

stock1['Close']

plt.figure()
plt.plot(stock1['Close'], label='Closing Price', color='blue')
plt.xlabel("Date")
#plt.xticks(rotation=90)
plt.xticks(rotation=45, ha='right')
plt.legend()
plt.grid()
plt.title(ticker1)
plt.show()
/tmp/ipykernel_1409935/2413817120.py:10: FutureWarning: YF.download() has changed argument auto_adjust default to True
  stock1 = yf.download(ticker1, start = start_date)
[*********************100%***********************]  1 of 1 completed

_images/338dd8f53e4f152da7c672e5d8cc1876de8f5258178ada990217f81b5a4db481.png
#multiple stocks
### Multiple Stocks: Achtung group_by hat Einfluss auf die Struktur des "Doppelarrays"

tickers = ["AAPL","NVDA","META"]
stocks_v1 = yf.download(tickers, start_date,   group_by='ticker') #place ticker name as the top-level column
stocks_v2 = yf.download(tickers, start_date,   group_by='column') # place the OHLCV values as the top-level columns

last_date = stocks_v1[tickers[0]]['Close'].index[-1].date() #.strftime("")
/tmp/ipykernel_1409935/2376945377.py:5: FutureWarning: YF.download() has changed argument auto_adjust default to True
  stocks_v1 = yf.download(tickers, start_date,   group_by='ticker') #place ticker name as the top-level column

[                       0%                       ]
[**********************67%*******                ]  2 of 3 completed
[*********************100%***********************]  3 of 3 completed
/tmp/ipykernel_1409935/2376945377.py:6: FutureWarning: YF.download() has changed argument auto_adjust default to True
  stocks_v2 = yf.download(tickers, start_date,   group_by='column') # place the OHLCV values as the top-level columns

[                       0%                       ]
[**********************67%*******                ]  2 of 3 completed
[*********************100%***********************]  3 of 3 completed

Darstellung mittels Seaborn: Aktie für Aktie mittels For-Loop

plt.figure()
sns.set(style='whitegrid')

for tick in tickers:
    sns.lineplot(data = stocks_v1[tick]["Close"],label=tick)

plt.title("Stock Closing Prices %s -- %s" % (start_date.date(), last_date))
plt.xticks(rotation=45, ha='right')
plt.xlabel("Date")
plt.ylabel("Closing Price ($)")
plt.tight_layout()
plt.show()
_images/deccb09c0705f2ed9962a82df540ebd2849a54ad2b435f363354c1cf78f68952.png

Darstellung mehrere Aktienkurse (bei Multi-Abruf group_by='ticker') mittels Seaborn

plt.figure()
sns.set(style='whitegrid')
sns.relplot(data=stocks_v2['Close'], kind="line",  dashes=False)
plt.title("Stock Closing Prices %s -- %s" % (start_date.date(), last_date))
plt.xticks(rotation=45, ha='right')
plt.xlabel("Date")
plt.ylabel("Closing Price ($)")
plt.tight_layout()

plt.show()
/HOME1/users/personal/dana/miniconda3/envs/finance/lib/python3.11/site-packages/seaborn/axisgrid.py:123: UserWarning: The figure layout has changed to tight
  self._figure.tight_layout(*args, **kwargs)
/tmp/ipykernel_1409935/3982091666.py:8: UserWarning: The figure layout has changed to tight
  plt.tight_layout()
<Figure size 640x480 with 0 Axes>
_images/4e5e24c0e3870e028cd81c1335cad2e44629de71219d34b218c3fbd3b32fc770.png

6.2.2. Visualisierung und technische Chartanalyse von Kursdaten mittels Mplchart#

Das Paket mplchart, siehe Webseite oder Github, liefert eine einfache Möglichkeit Charts der technischen Analyse zu erstellen.

#to do: bitte Demo fuer CSV-Datensatz von oben!! und dann nur zusaetzlich mittels try... fuer aktuelle Daten

from mplchart.chart import Chart
from mplchart.primitives import Candlesticks, Volume
from mplchart.indicators import SMA, RSI, MACD

#Achtung: input mplchart sind OHLCV-DataFrames (also Open, High, Low, Close, Volume mit Datetime-Index, wie yfinance liefert!!!!

# Konfiguration
max_bars = 252 # Zeige das letzte Börsenjahr (in Deutschland gibt es 252 Handelstage) 
indicators = [
    Candlesticks(),
    Volume(),
    SMA(50), 
    SMA(200),
    RSI(), 
    MACD(), 
]

#Daten aus CSV-Datei oben
ticker1 = 'ALV.DE aus CSV'

print(df1["Schlusskurs"].head())  #nicht in OHLCV-Format!!!

#erzeugen kuenstlich dieses Format: Achtung nur Close richtig!!!
ohlc = pd.DataFrame({
    "Date": pd.to_datetime(df1["Datum"]),
    "Open": df1["Schlusskurs"]-10,
    "High": df1["Schlusskurs"] + 20,
    "Low": df1["Schlusskurs"]-20,
    "Close": df1["Schlusskurs"],
    "Volume": 0, #})
}, index=df1.index)

#ohlc["Date"] = pd.to_datetime(ohlc["Date"])
ohlc = ohlc.set_index("Date")

print("Umgewandelter DataFrame:\n")
print(ohlc.head())
print(ohlc.info())
0    163.322479
1    161.515991
2    160.520554
3    160.889252
4    160.962997
Name: Schlusskurs, dtype: float64
Umgewandelter DataFrame:

                  Open        High         Low       Close  Volume
Date                                                              
2020-01-02  153.322479  183.322479  143.322479  163.322479       0
2020-01-03  151.515991  181.515991  141.515991  161.515991       0
2020-01-06  150.520554  180.520554  140.520554  160.520554       0
2020-01-07  150.889252  180.889252  140.889252  160.889252       0
2020-01-08  150.962997  180.962997  140.962997  160.962997       0
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 1275 entries, 2020-01-02 to 2024-12-30
Data columns (total 5 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   Open    1275 non-null   float64
 1   High    1275 non-null   float64
 2   Low     1275 non-null   float64
 3   Close   1275 non-null   float64
 4   Volume  1275 non-null   int64  
dtypes: float64(4), int64(1)
memory usage: 59.8 KB
None
# Plot erzeugen -- to do line 40
chart1 = Chart(ticker1, max_bars=max_bars)
chart1.plot(ohlc, indicators)  #to do: Achtung hier macht Candlestick keinen Sinn, da nur Closing Prices!!
chart1.show()
/HOME1/users/personal/dana/miniconda3/envs/finance/lib/python3.11/site-packages/mplchart/primitives/volume.py:77: UserWarning: Attempting to set identical low and high ylims makes transformation singular; automatically expanding.
  ax.set_ylim(0.0, vmax * 4.0)
_images/0b42b81c859a597c7c04d586f83e523c4c6abd5296947646d5afabe1ca2e1171.png
from mplchart.chart import Chart
from mplchart.primitives import Candlesticks, Volume
from mplchart.indicators import SMA, RSI, MACD

#Achtung: input mplchart sind OHLCV-DataFrames (also Open, High, Low, Close, Volume mit Datetime-Index, wie yfinance liefert!!!!

# Konfiguration
max_bars = 252 #Beschränkung auf das letzte Börsenjahr (in Deutschland gibt es 252 Handelstage) 
indicators = [
    Candlesticks(),
    Volume(),
    SMA(50), 
    SMA(200),
    RSI(), 
    MACD(), 
]


# Daten von Yahoo-Finance abrufen
ticker = "ALV.DE"

print("Versuche Yahoo Finance für %s:\n" % (ticker))
try:
    data = yf.Ticker(ticker).history('2y')  #hier ggf. Zeiten anpassen
except Exception as e:
    print("Fehler bei Yahoo Daten Download: %s \n" % (e))

if not data.empty:
    print(data.head())
    chart = Chart(title = ticker, max_bars=max_bars)
    chart.plot(data, indicators)
    chart.show()
   
Versuche Yahoo Finance für ALV.DE:

                                 Open        High         Low       Close  \
Date                                                                        
2024-03-04 00:00:00+01:00  229.344864  229.799913  228.389258  229.344864   
2024-03-05 00:00:00+01:00  229.572386  231.574600  228.616780  231.574600   
2024-03-06 00:00:00+01:00  231.438088  232.621219  230.846516  231.711121   
2024-03-07 00:00:00+01:00  231.620104  233.394807  231.529088  233.258270   
2024-03-08 00:00:00+01:00  234.031866  235.943079  233.576817  235.533524   

                           Volume  Dividends  Stock Splits  
Date                                                        
2024-03-04 00:00:00+01:00  468562        0.0           0.0  
2024-03-05 00:00:00+01:00  511677        0.0           0.0  
2024-03-06 00:00:00+01:00  857297        0.0           0.0  
2024-03-07 00:00:00+01:00  661843        0.0           0.0  
2024-03-08 00:00:00+01:00  710060        0.0           0.0  
_images/7e6d520d229287dfcb5105526e9fe253a21ae5b4a2876ec3d9569681760b16d2.png

Frage: Wir können wir diesen Chart nun interpretieren?

Der Relative Strenght Index ist ein sogenannter Momentum-Indikator, der in der technischen Analyse verwendet wird und das Ausmaß der jüngsten Kursveränderungen misst. Ein RSI-Wert von 70 oder mehr deutet darauf hin, dass ein Wertpapier überkauft oder überbewertet ist und möglicherweise für eine Trendumkehr oder einen korrigierenden Kursrückgang bereit ist. Ein RSI-Wert von 30 oder darunter weist auf einen überverkauften oder unterbewerteten Zustand hin. Dabei dient zur Berechnung üblicherweise ein Zeitraum über 14 Tage, mitunter auch über acht oder 38 Tage.

Der Moving Average Convergence/Divergence ist ein Indikator für Trendwechsel. Kreuzt die schwarze Linie über die blaue Linie, entsteht ein Kaufsignal. Kreuzt die blaue Linie über die schwarze Linie, entsteht ein Verkaufssignal.

Der Simple Moving Average ist das artithmetische Mittel der letzten t-Handelstage (in unserem Fall der letzten 50 und 200 Handelstage). Ein steigender SMA deutet auf einen Aufwärtstrend hin, während ein fallender SMA auf einen Abwärtstrend schließen lässt (Trendbestimmungsfunktion). Wenn der Kurs von unten an den SMA stößt und von dort abprallt, kann dies als Kaufsignal interpretiert werden. Umgekehrt kann ein Stoß von oben und ein Abprallen nach unten als Verkaufssignal gelten. (Funktion als Wiederstands- und Unterstützungszone).

👉 Weitere Informationen zu Indikatoren finden Sie auf folgender Webseite.

💡 Aufgabe: Versuchen Sie im Selbststudium weitere Chartindiaktoren zu verwenden und interpretieren.