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:
Einbettung und Anzeigen von Kursdaten
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:
Wenn es sich um eine .xlsx-Datei handelt muss im Vorfeld in die Python-Umgebung
openpyxl
installiert werden; handelt es sich um eine .csv-Datei reicht die Installation vonpandas
in der Python-Umgebung zu.Datenimport mittels relativer Pfade siehe Pandas-Abschnitt Section 4.8 Datenexport und -import von CSV-Datensätzen und Pandas DataFrames
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üfenpip 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
2025-09-23 00:00:00+02:00 349.899994 350.100006 347.100006 348.200012
2025-09-24 00:00:00+02:00 347.000000 347.600006 345.700012 346.000000
2025-09-25 00:00:00+02:00 345.600006 350.799988 345.100006 349.299988
2025-09-26 00:00:00+02:00 352.600006 358.799988 352.299988 358.100006
2025-10-01 00:00:00+02:00 355.000000 358.399994 354.600006 357.700012
Volume Dividends Stock Splits
Date
2025-09-23 00:00:00+02:00 335118 0.0 0.0
2025-09-24 00:00:00+02:00 362950 0.0 0.0
2025-09-25 00:00:00+02:00 408063 0.0 0.0
2025-09-26 00:00:00+02:00 676522 0.0 0.0
2025-10-01 00:00:00+02:00 50591 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_3382364/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
2020-10-01 149.386673 149.626663 144.806671 146.919998 152224500
2020-10-02 138.363327 146.376663 138.333328 140.463333 214290000
2020-10-05 141.893326 144.546661 139.776672 141.116669 134168400
2020-10-06 137.993332 142.926666 135.350006 141.263336 147438900
2020-10-07 141.766663 143.300003 137.949997 139.956665 129383100
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_3382364/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
2020-10-01 130.029616 130.217774 126.219511 127.144592 1321453.0
2020-10-02 126.109753 127.646344 125.153306 127.630661 1046682.0
2020-10-05 129.214308 130.688167 128.054020 130.547058 928832.0
2020-10-06 130.923361 133.196876 129.810122 132.506989 898369.0
2020-10-07 132.648095 133.055764 129.919876 130.641129 914196.0
Ticker AAPL
Price Open High Low Close Volume
Date
2020-10-01 114.430515 114.508334 112.669898 113.603706 116120400.0
2020-10-02 109.810111 112.222454 109.158392 109.936562 144712000.0
2020-10-05 110.802312 113.467557 110.452132 113.321648 106243800.0
2020-10-06 112.543443 112.951990 109.187570 110.072746 161498200.0
2020-10-07 111.492912 112.397540 111.016275 111.940361 96849000.0
Datentyp Rückgabe yfinance: <class 'pandas.core.frame.DataFrame'>
Infos DataFrame:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 1292 entries, 2020-10-01 to 2025-10-01
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: 111.0 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
2025-09-30 254.855 255.919 253.110 254.63 37704259.0
2025-09-29 254.560 255.000 253.010 254.43 40127687.0
2025-09-26 254.095 257.600 253.780 255.46 46076258.0
2025-09-25 253.205 257.170 251.712 256.87 55202075.0
2025-09-24 255.220 255.740 251.040 252.31 42303710.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.933 128.457 125.967 128.437 77929881
2022-12-29 126.519 128.981 126.262 128.120 76583912
2022-12-28 128.180 129.522 124.423 124.591 86431778
2022-12-27 129.869 129.899 127.240 128.536 69810179
2022-12-23 129.414 130.893 128.150 130.345 64556865
# 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_3382364/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

#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_3382364/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_3382364/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()

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_3382364/3982091666.py:8: UserWarning: The figure layout has changed to tight
plt.tight_layout()
<Figure size 640x480 with 0 Axes>

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)

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
2023-10-02 00:00:00+02:00 205.818808 206.592397 201.313822 202.678970
2023-10-03 00:00:00+02:00 201.859878 203.498058 200.494730 201.086288
2023-10-04 00:00:00+02:00 200.221708 201.450347 198.765544 199.903168
2023-10-05 00:00:00+02:00 200.176191 201.905386 198.902058 200.858765
2023-10-06 00:00:00+02:00 201.632361 204.135132 201.450344 204.135132
Volume Dividends Stock Splits
Date
2023-10-02 00:00:00+02:00 937778 0.0 0.0
2023-10-03 00:00:00+02:00 714829 0.0 0.0
2023-10-04 00:00:00+02:00 919410 0.0 0.0
2023-10-05 00:00:00+02:00 720576 0.0 0.0
2023-10-06 00:00:00+02:00 864116 0.0 0.0

❓ 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.