Die Plattform für Leveraged ETF Strategien
Follow your strategy. Not your emotions.
Strategien · SMA-Trendfolge

SMA steht für Simple Moving Average, auf Deutsch gleitender Durchschnitt.

Von vorn lesen: Kapitel 1 Die Regel

Gehebelte ETFs können in kurzer Zeit einen großen Teil ihres Werts verlieren.

Kapitel 11 von 13

Selbst nachrechnen

Das öffentliche Repository auf GitHub enthält Beispielpakete mit erfundenen Daten, einem kurzen Python-Skript und der Referenzausgabe. Wer das Skript ausführt, erhält die Referenzausgabe Zeile für Zeile.

Was im Repository liegt

Maschinenlesbare Übersicht: llms.txt.

Lokal ausführen

Nötig ist Python 3; das Skript nutzt nur die Standardbibliothek, eine Installation braucht es nicht.

git clone https://github.com/Andre0512/letf-strategies.git
cd letf-strategies/examples/sma-signal
python3 recompute.py input.csv > ergebnis.csv
diff ergebnis.csv output.csv

Gibt diff nichts aus, stimmt jede Zeile. Dieselben Zeilen gelten in examples/leverage-model.

Die Rechnung in Kurzform

Der erste Block zeigt die Schritte der Regel, Handelstag für Handelstag. Der zweite Block zeigt das Hebelmodell, das den Kurs eines Produkts vor seiner Auflage nachbaut.

# Kurse sind um Splits und Ausschüttungen bereinigt.
für jeden Handelstag t:
    durchschnitt = Mittel der letzten FENSTER Indexstände bis t
    Vortag drin:     linie = durchschnitt * (1 - PUFFER / 100)
    Vortag draußen:  linie = durchschnitt * (1 + PUFFER / 100)
    drin, wenn der Index am Schluss von t >= linie, sonst draußen
    wechselt der Zustand: Handel zum Schlusskurs des Signaltags,
        mit VERZOEGERUNG so viele Handelstage später
    bei jedem Handel: wert = wert * (1 - KOSTEN / 100)
    im Produkt: wert folgt dem Produktkurs
    draußen: wert wächst um den Tageszins aus max(Zinssatz, 0),
        ohne bekannten Zinssatz gilt ERSATZ = 2.5 Prozent im Jahr
# Hebelmodell: Kurs vor der Auflage, Tag für Tag
tage = Kalendertage seit dem Vortag
brutto = 1 + HEBEL * Tagesrendite des Index
ter = 1 - TER * tage / 365
finanzierung = 1 - (HEBEL - 1) * (Zinssatz + Aufschlag) * tage / 360
    nur bei HEBEL über 1, sonst finanzierung = 1
kurs = kurs_vortag * brutto * ter * finanzierung * weitere Faktoren

Die Parameter

Mit diesen Werten rechnet die Seite, wenn niemand sie ändert:

FENSTER = 200       # Handelstage; die Seite zeigt 200, 220 und 255
PUFFER = 0          # Prozent um den Durchschnitt
BESTAETIGUNG = 1    # Tage, fest
VERZOEGERUNG = 0    # Handelstage zwischen Signal und Handel
KOSTEN = 0          # Prozent je Handel
ZINSSATZ = ESTR / SOFR / SONIA  # Tagesgeldsatz nach Währung des Produkts: EUR, USD, GBP
ERSATZ = 2.5        # Prozent im Jahr, wenn der Satz unbekannt ist

Deine Fassung kann diese Werte ändern: das Fenster zwischen 50 und 500 Handelstagen, den Puffer zwischen 0 und 5 Prozent und die Kosten je Handel zwischen 0 und 1 Prozent. Die Bestätigung bleibt bei 1 Tag.

Datenregeln

  • Handelskalender: Der Kalender kennt die Börsenfeiertage in den USA, im Euroraum und in Großbritannien; für den Weltindex gibt es keinen Feiertagskalender. Zum Signaltag zählt der nächste Produktkurs innerhalb von 4 Kalendertagen. Die Anzeige folgt dem Kalender des Produkts.
  • Splits und Bereinigung: Index und Produktkurse sind um Splits und Ausschüttungen bereinigt.
  • Nachbau vor der Auflage: Vor dem ersten echten Kurs eines Produkts rechnet die Seite seinen Kurs mit dem Hebelmodell rückwärts, siehe den zweiten Block unter „Die Rechnung in Kurzform“. Ab dem ersten echten Kurs gilt dieser.
  • Währung: Weicht die Währung des Produkts von der des Index ab, rechnet ein Wechselkurs sie für abgeleitete Fassungen um.

Die Spalten

Die Eingabe trägt je Handelstag Datum, Index, Produktkurs und Geldmarktsatz, in der ersten Zeile dazu Fenster, Puffer und Umschlagkosten. Die Ausgabe hat diese Spalten:

Spalte Bedeutung
date Tag der Zeile
index_rounded Index auf zwei Stellen, nur für die Anzeige
sma Durchschnitt über das Fenster, ungerundet
line Durchschnitt mit Puffer nach dem Zustand des Vortags, ungerundet
line_state aufwaermen, drin oder draussen am Schlusskurs
invested Geld im Produkt am Schlusskurs, ja oder nein
signal start, einstieg, ausstieg oder leer
money_interest_day Tagessatz des Geldmarkts, der an diesem Tag gutgeschrieben wird
trading_cost Kosten des Trades am Ausführungstag
value_strategy Wert der Strategie, 100 am ersten Tag mit Produktkurs
value_hold 100 mal Produktkurs durch den ersten Produktkurs

Alle Spalten mit Einheit und Zeitbasis stehen im README des Pakets.

Warum zwei Pakete

sma-signal zeigt die Regel: Durchschnitt, Linie mit Puffer und die Entscheidung, ob das Geld im Produkt oder im Geldmarkt liegt, angewendet auf einen Produktkurs. leverage-model zeigt das Produkt selbst: der tägliche Neuabgleich des Hebels, laufende Kosten und Finanzierung, und daraus der Kurs vor der Auflage. Die Seite nutzt vor der Auflage diesen Modellkurs und danach echte Kurse des Produkts.

Warum erfundene Daten

Indexstände und Produktkurse gehören ihren Anbietern, und deren Lizenz erlaubt kein öffentliches Repository. Darum sind alle Zahlen erfunden: eine Formel für den Index und drei gesetzte Tage für Start, Ausstieg und einen Gleichstand. Sie sagen nichts über einen Markt. Wer eigene Kurse hat, setzt sie in dieselben Spalten.

Was die Seite genauso rechnet

Mit denselben Produktkursen, denselben Signaltagen, denselben Geldmarktsätzen (ohne bekannten Satz 2,5 %) und denselben Umschlagkosten rechnet die Seite dieselbe Wertkurve; das Signal vergleicht die Seite am ungerundeten Rohstand des Index, den sie nicht zeigt; das Paket führt dieselbe Regel an seiner erfundenen Reihe vor. Vor der Auflage steht das Hebelmodell dahinter.

Acht Tage aus dem Paket, mit einem Fenster von 210 Handelstagen, 1,5 % Puffer und 0,15 % Umschlagkosten. Am dritten Tag fällt der Index unter die Linie, das Geld geht in den Geldmarkt, und die Linie springt um den Puffer über den Durchschnitt. Ab dem fünften Tag liegt der Index wieder über dem Durchschnitt, aber unter dieser Linie; das Geld bleibt draußen und trägt Zins.

Alle Zahlen sind erfunden. Werte seit dem Start bei 100.

Datum Index Linie Im Markt (ja/nein) Wert der Strategie
1925-11-04 113.43 111.91 ja 73.88
1925-11-05 113.56 111.91 ja 74.05
1925-11-06 111.34 111.90 nein 74.11
1925-11-09 113.80 115.30 nein 74.12
1925-11-10 113.89 115.30 nein 74.13
1925-11-11 113.94 115.30 nein 74.14
1925-11-12 113.95 115.30 nein 74.15
1925-11-13 113.91 115.30 nein 74.16
Kapitel 12 von 13FAQ