⚰️ Done — falsifizierte Hypothesen

Vollständige Dokumentation aller getesteten und widerlegten Edge-Hypothesen

Stand: 24. Mai 2026 · Geschrieben für externe Zweitmeinung (Grok/ChatGPT)

Lesehinweis & Methodische Grundlagen

Diese Seite dokumentiert alle Hypothesen, die ich im Rahmen des Börsenbot-Projekts untersucht und gemäß vor-registrierten Kriterien widerlegt habe. Ziel ist, dass eine zweite KI (Grok, ChatGPT) oder ein menschlicher Reviewer jeden Schritt nachvollziehen, prüfen und gegebenenfalls korrigieren kann.

Für jede Hypothese sind folgende Punkte ausgeführt:

Wiederkehrende Methodik:
  • Welch-t-Test (ungepaart, ungleiche Varianzen) für Mittelwertvergleiche zwischen Signal-Tagen und Kontroll-Tagen
  • Train/Test-Split (typisch 2014–2020 vs. 2021–2026) zur Vermeidung von In-Sample-Overfit
  • COVID-Exclusion (15.02.2020 – 30.04.2020) als Robustheits-Check
  • Bonferroni-Korrektur: bei K getesteten Zellen wird die kritische t-Schwelle so erhöht, dass die familienweise Fehlerquote ≤ 5 % bleibt. Konkret: t_crit = z(1 - 0.025/K) (zweiseitig). Beispiel: K=48 → t_crit ≈ 3.0; K=12 → t_crit ≈ 2.7.
  • Pre-Registrierte Gates (G1, G2, …): vor dem Lauf fixiert, nicht ex post angepasst. Wenn eine Hypothese die Gates nicht besteht, gilt sie als widerlegt — kein Nachfrisieren der Parameter.
  • Excess vs. SPY: bei Long-Strategien auf US-Aktien wird das Alpha gegen einen Buy-and-Hold-Benchmark gemessen, nicht gegen Null. Andernfalls würde jede aufwärts driftende Strategie automatisch „signifikant" aussehen.
  • Mindestkorbgröße (typisch ≥ 8 Namen pro Tag): vermeidet die „Cluster-Illusion", bei der ein einzelner Crash-Tag dutzende korrelierte Aktientage gleichzeitig triggert und n künstlich aufbläht.
Was diese Seite NICHT ist: eine vollständige akademische Replikation. Code-Snippets und CSV-Outputs liegen im Repo github.com/defcon3/boersenbot. Wer mathematische Schritte penibel nachvollziehen will, sollte dort einsteigen.

Inhalt

  1. Yen-Carry-Stress als Risk-Off-Detektor RED
  2. Streak-Mean-Reversion: Sektor-Differenzierung RED
  3. FRED-Macro: Yield-Inversion, HY-Spread, Jobless-Claims RED
  4. MA-Crossover: 50/200 Golden/Death Cross RED
  5. SOM-Marktregime als Predictor RED
  6. Close-to-Close Streak-MR auf breitem Korb (Excess vs. SPY) RED
  7. VIX-Fear-Conditioning der Streak-MR RED
  8. GDELT-News-Sentiment-Conditioning RED
  9. Minuten-Momentum (Intraday-Continuation) RED
  10. Open→Close Down-Streak Harvest RED
  11. Dividend Capture DE (DAX-40 + MDAX-50) RED neu · 2026-05-25
  12. Optionsschein vor Dividenden-Stichtag (Put & Call) RED neu · 2026-05-25
  13. Selective Dividend Capture DE (Top-10 aus Train) RED neu · 2026-05-25

📬 Iteration 2: Power-Analyse nach Reviewer-Feedback v3 · 2026-05-25 (unten)

1. Yen-Carry-Stress als Risk-Off-Detektor

RED 2026-05-24

Hypothese

An Tagen mit einer USD/JPY-Tagesänderung kleiner als −X·σ (Yen stärkt sich abrupt = klassisches Carry-Unwind-Signal) sind die nachfolgenden Forward-Returns für US-Risk-Assets (SPY, QQQ, IWM, HYG) über N Handelstage signifikant negativer als an Nicht-Stress-Tagen.

Mechanismus / Überlegung

Der Yen-Carry-Trade läuft seit Jahrzehnten so: institutionelle Investoren leihen sich Yen zu ~0 % Zinsen, tauschen in USD/EUR/EM-Währungen, und investieren in höher rentierende Assets (US-Treasuries, Tech-Aktien, EM-Bonds). Wenn der Yen plötzlich aufwertet (z. B. wegen BoJ-Zinsschritt, Risk-Off-Stimmung, Carry-Unwind-Kaskade), müssen Carry-Trader die Yen-Schulden zurückzahlen — sie verkaufen ihre Risk-Assets, um Yen zu kaufen. Das verstärkt den Yen-Anstieg, was weitere Liquidationen triggert. Klassisch: 2. August 2024, S&P 500 −7 %, Nikkei −12 % in zwei Handelstagen.

Voraussetzungen für die Hypothese

Daten

WechselkursUSD/JPY täglich, Yahoo Finance (Ticker JPY=X), 2000-01-03 bis 2026-05-22, n = 6 851 Tage
Risk-AssetsSPY (n = 6 637), QQQ (6 637), IWM (6 536), HYG (4 811 ab 2007), via yfinance, auto_adjust=True
σ-BerechnungRolling 60-Tage-Std der USD/JPY-Tagesreturns, lag-1 (kein Lookahead)
Train/TestTrain: 2000-01-03 — 2018-12-31; Test: 2019-01-01 — 2026-05-22; COVID-Excl 2020-02-15 — 2020-04-30

Statistische Tests

Welch-t-Test der Differenz mean(forward_return | stress_day) − mean(forward_return | non_stress_day) für alle Kombinationen aus:

Bonferroni-Schwelle: |t_crit| = 3.0 für familienweises α = 0.05.

Pre-Registrierte Gates

Ergebnis

GateBestanden
G1 Train-Direction negativ1 / 48
G2 Test |t| > 3.0 (Bonferroni)0 / 48
G3 n_test ≥ 3048 / 48
G6 Test t < −1.96 (Naiv)0 / 48

Verdict: RED. Sogar das genaue Gegenteil: 47 von 48 Tests zeigen einen positiven Train-Diff, einige nominal signifikant in die falsche Richtung (z. B. SPY/5d-Forward bei −1.0σ: t_train = +3.16).

Interpretation / Lehre

Ein einzelner Tages-Yen-Spike markiert in der Praxis oft das Ende einer Risk-Off-Welle, nicht den Anfang. Der Spike-Tag ist selbst schon der Liquidations-Tag — der Markt fällt am selben Tag, nicht am nächsten. In den Folgetagen folgt häufig ein V-förmiges Rebound, was den positiven Forward- Return erklärt. Der Indikator misst die Reaktion, nicht die Vorhersage.

Mögliche Erweiterung (würde eine neue Pre-Reg erfordern, kein Nachfrisieren): kumulierter Multi-Day-Yen-Trend (z. B. 5d/10d-Z-Score), der das schrittweise Aufbauen einer Carry-Position abbildet, statt nur des Liquidations-Tags. Diese Variante ist nicht getestet.

Code-Referenz

github.com/defcon3/boersenbot/yen_stress_test.py
Log:     yen_stress_test.log
CSV:     yen_stress_results.csv (alle 48 Zellen, IS+OOS-t, n, diff)

2. Streak-Mean-Reversion: Sektor-Differenzierung

RED 2026-05-24

Hypothese

Der bekannte Streak-Mean-Reversion-Effekt (nach N aufeinander­ folgenden Down-Days steigt der Folgetag überdurchschnittlich oft) ist nicht uniform über alle GICS-Sektoren verteilt, sondern in einer bestimmten Sektor-Klasse konzentriert. Drei Sub-Hypothesen:

  1. MR ist in zyklischen Werten stärker (höhere Volatilität → mehr Übertreibung)
  2. MR ist in defensiven Werten stärker (weniger News-Driver → mehr Random-Walk-Reversion)
  3. MR ist in Tech stärker (sektor-spezifische Sentiment-Pattern)

Mechanismus / Überlegung

Der ursprüngliche Streak-Befund (siehe Streak-Seite) war auf 503 S&P-500-Aktien gemessen — als undifferenzierter Aggregat-Korb. Es ist plausibel, dass verschiedene Sektoren grundverschiedene Reversion-Charakteristika haben: defensive Werte (Versorger, Staples) haben weniger spekulative Übertreibung, zyklische (Industrie, Bauzulieferer) reagieren auf News mit fundamentalen Bewegungen statt Sentiment-Schwankungen, Tech-Aktien schwanken oft sentiment- und retail-getrieben.

Voraussetzungen

Daten

UniversumS&P 500 (503 Aktien, aktuelle Liste), GICS-Sektor aus Wikipedia, OHLC via yfinance 2015–2026
Sektor-KlassenZYKLISCH (Industrials, Materials, Consumer Disc., Financials, Energy: 250 Aktien) · DEFENSIV (Staples, Health Care, Utilities, Real Estate: 157) · TECH (IT, Comm Services: 96)
Train/TestTrain: 2015-01-01 — 2020-12-31; Test: 2021-01-01 — 2026-05-22; COVID-Excl
StrategieLong-only, gleichgewichtet, Holding = 1 Handelstag (t+1 Close-to-Close), Excess vs. SPY

Statistische Tests

Für jede Kombination (Sektor-Klasse × N) wird ein Tages-Portfolio gebildet: an jedem Tag enthält das Portfolio alle Sektor-Aktien, die streak ≥ N aufweisen. Excess-Return = Korb-Mittel − SPY-Tagesreturn. Welch-t-Test des Excess gegen Null, n = Anzahl Handelstage mit Korbgröße ≥ 8.

Pre-Registrierte Gates

Ergebnis

KlasseN=4N=5N=6N=7
ZYKLISCH (Test-t)+1.73−0.17+0.36+0.85
DEFENSIV (Test-t)−0.44−0.93−0.26−0.26
TECH (Test-t)+1.01+1.37+1.92+1.27

Aggregat-Gates: G1: 10 / 12, G2 (Bonferroni): 0 / 12, G3: 9 / 12, G4: 12 / 12, G6 (Naiv): 0 / 12. Verdict: RED.

Interpretation / Lehre

Drei lehrreiche Beobachtungen:

  1. Defensive haben das Gegenteil eines MR-Edge — alle vier N-Werte zeigen negative Test-Excess-Returns. Plausibel: weniger spekulative Übertreibung → weniger zu revertieren.
  2. Tech zeigt den stärksten (aber nicht-signifikanten) Hinweis. Test-t bei N=6 ist +1.92, knapp unter dem naiven 1.96-Floor. Aber nur 21 Test-Tage → fragile Statistik.
  3. Der ursprüngliche „6-Tech-Werte-Befund" war Sektor-Bias. Das anfängliche Streak-Pattern (78 % bei 6 Tech-Werten) war demnach ein doppelter Bias: zu kleine Stichprobe UND einseitige Sektor-Auswahl. Auf breitem Universum verwässert TECH (Edge-Hint) mit ZYKLISCH (≈0) und DEFENSIV (Gegenrichtung) zu insgesamt Null.

Code-Referenz

github.com/defcon3/boersenbot/streak_sector_test.py
Log:     streak_sector_test.log
CSV:     streak_sector_results.csv
Cache:   sp500_sectors.csv, sp500_ohlc_2015_2026.pkl

3. FRED-Macro: Yield-Inversion, HY-Spread, Jobless-Claims

RED 2026-05-21

Hypothesen (drei klassische Makro-Heuristiken)

Mechanismus

Alle drei sind Standard-Lehrbuch-Indikatoren der Makro-Ökonomie: Yield-Inversion war historisch ein verlässlicher Rezessionsvorbote (1970er–2008). HY-Credit-Spreads weiten sich in Krisen aus, weil Investoren Risikoprämien für junk bonds fordern. Jobless-Claims sind ein zeitnaher Indikator für Arbeitsmarkt-Verschlechterung, die typischerweise vor Konsumeinbrüchen kommt.

Voraussetzungen

Daten

FRED-SerienT10Y2Y (Yield-Spread), BAMLH0A0HYM2 (HY-OAS), ICSA (Initial Claims), via FRED-API mit eigenem Key
AktienSPY, QQQ, IWM via yfinance, 2000–2026
Forward-Windows5, 10, 20, 60 Handelstage
Test-Anzahl3 Hypothesen × 4 Windows × 3 Assets = 36 Tests

Pre-Registrierte Gates

Ergebnis

HypotheseOOS-BefundVerdict
H1 Yield-InversionTrain: −0.74 %, t=−2.58 ✓; Test: +1.43 %, t=+4.56 — Direction FLIPFAIL
H2 HY-SpreadFRED hat Serie ab April 2026 auf 3 J. Historie limitiert — nicht testbarN/A
H3 Claims-MA-ChangeTrain: t=−3 bis −7 ✓; Test: SPY-20d t=−2.37 (nominal), QQQ t=−3.11 (1 Bonferroni-PASS von 36); IWM t=+0.98 (inkonsistent)FAIL

Aggregat: 1 / 36 Bonferroni-PASS = exakt im Zufallsbereich (Erwartungswert bei α=0.05 und Bonferroni: ~1 zufälliger Hit pro 20 Tests, korrigiert auf 1 echter / 36 Tests). Verdict: RED.

Interpretation / Lehre

H1 Direction-Flip: Die Yield-Inversion 2022/23 wurde nicht von einer Rezession gefolgt. Stattdessen rallye-te der Markt. Der historische Mechanismus (Inversion → Rezession → Aktienmarkt-Crash) brach durch den Strukturwandel der Fed-Politik (massive Fiscal-Support, kein klassischer Konjunkturzyklus).

H3 Cross-Asset-Inkonsistenz: SPY und QQQ zeigen schwache Effekte, IWM (Small Caps) sogar Gegenrichtung. Wenn ein vermeintlicher Makro-Mechanismus drei breite US-Indices unterschiedlich treffen würde, ist es kein universeller Mechanismus, sondern Datenfischen.

Code-Referenz

github.com/defcon3/boersenbot/fred_macro_tests_v3.py
Helper:  fred_helper.py (mit .fred_key)
Log:     im Repo, plus Memory [[fred-macro-falsified]]

4. MA-Crossover: 50/200 Golden/Death Cross

RED 2026-05-21

Hypothese

Klassisch: Wenn der 50-Tage-MA den 200-Tage-MA von unten kreuzt („Golden Cross"), steigt die Aktie in den Folgewochen überdurchschnittlich. Umgekehrt für Death Cross.

Erweitert: Über ein Grid von 5 fast × 6 slow × 6 horizon = 150 Parameter-Kombinationen finden wir die Zelle mit dem besten In-Sample-Edge (f=20, s=50, h=10) — und testen sie OOS.

Mechanismus

Klassische Trend-Following-Heuristik aus der Technischen Analyse: ein Aufwärts-Kreuzungssignal indiziert Momentum, das sich fortsetzt. Death Cross indiziert Abwärtstrend.

Voraussetzungen

Daten

Universum502 S&P-500-Aktien
DatenTages-OHLC 2014–2026 via yfinance
Gridfast ∈ {5,10,20,50,100}, slow ∈ {20,50,100,150,200,250}, horizon ∈ {1,3,5,10,20,60}
OOS-SplitIS 2014–2021, OOS 2022–2026

Statistische Tests

Pro Parameter-Zelle: Welch-t-Test des Strategie-Excess-Returns vs. SPY-Buy-Hold, über alle 502 Aktien aggregiert. Pre-Registrierte OOS-Strategie-Test mit Gates G1–G5 (siehe unten).

Pre-Registrierte Gates

Ergebnis

PhaseExcess vs. SPYt-StatGate
IS 2014–2021+0.252 %+3.02G1 PASS
OOS 2022–2026−0.177 %−1.45G2 FAIL
OOS netto@5bps−0.227 %−1.86G3 FAIL
OOS ohne COVID−0.177 %≈ OriginalG4 FAIL

Edge ist OOS verschwunden und hat das Vorzeichen gedreht. Auch die rohe Mean-Differenz (rawMB) ist OOS = −0.28 %, also nicht nur SPY-relativ, sondern absolut.

Interpretation / Lehre

Wer 12 Jahre rückblickend ein 5×6×6-Grid durchprobiert (150 Zellen), findet mit hoher Wahrscheinlichkeit irgendeine Zelle, die im IS „signifikant" aussieht — auch bei reinem Rauschen. Mit α=0.05 und 150 Zellen erwartet man ~7.5 zufällige IS-Treffer. Selbst nominal t=4-5 in 150 Zellen ist nicht aussagekräftig (Bonferroni: kritisches t müsste bei ~+3.5 liegen). OOS-Split mit Pre-Reg ist deshalb nicht Bürokratie, sondern der Filter, der IS-Artefakte von echten Edges trennt.

Code-Referenz

github.com/defcon3/boersenbot/crossover_grid.py     (IS-Grid)
github.com/defcon3/boersenbot/crossover_strategy_test.py  (OOS Pre-Reg)
Web:    https://veitluther.de/analysis/crossover

5. SOM-Marktregime als Predictor

RED 2026-05-19

Hypothese

Eine Self-Organizing Map (Kohonen-Map) kann die Marktstruktur in diskrete Regime-Cluster zerlegen. Wenn dem so ist, sollte der bekannte Streak-MR-Edge (N=6 Down-Days → next-day-up) conditional auf bestimmte Regime-Knoten signifikant stärker sein als unkonditional.

Mechanismus

Märkte haben verschiedene „Regime" (Trend, Range, Krise, Euphorie). Ein Edge, der nur in einem Regime funktioniert, würde unkonditional verwässert erscheinen. Ein guter Regime-Classifier sollte diese versteckten Edges aufdecken.

Daten & Setup

Statistischer Test

Pro Regime-Knoten (8×8 = 64 Index-Knoten): Binomialtest des bekannten Streak-MR-Edges (STREAK_LEN=6). Nullhypothese: Streak-Folgetagswahrscheinlichkeit = OOS-Basisrate (0.5416). H1: höher.

Pre-Registriertes Gate

Ergebnis

1 von 30 belegten Knoten hat p < 0.05 unkorrigiert = 3.3 %. Das ist unter der erwarteten Zufallsfalse-Positive-Rate von 5 %. Selbst ohne Multiple-Testing-Korrektur kein bestätigter Regime-Edge. Verdict: RED.

Interpretation / Lehre

SOM ist explorativ/beschreibend, aber kein Prädiktor. Die UI auf /analysis/som visualisiert Cluster mit Chernoff-Faces und einer Trajektorie der letzten 90 Tage — als deskriptive Hilfe zum Markt-Verstehen. Sie ist nicht als Signal-Generator gedacht. Ein Caveat-Banner auf der Seite stellt das klar.

Code-Referenz

github.com/defcon3/boersenbot/som_regime.py
Web:    https://veitluther.de/analysis/som

6. Close-to-Close Streak-MR auf breitem Korb (Excess vs. SPY)

RED 2026-05-18

Hypothese

Der breite Streak-MR-Effekt (nach N=3..7 Down-Days steigt der Folgetag überdurchschnittlich oft, basierend auf 503 S&P-500-Aktien) ist auch handelbar als marktrelatives Alpha, nicht nur deskriptiv: Long-Korb der Streak-Aktien vs. SPY produziert signifikant positive Excess-Returns.

Mechanismus

Wenn Mean-Reversion in vielen Aktien gleichzeitig auftritt, kann man einen diversifizierten Long-Korb bauen. Die SPY-Komponente filtert das allgemeine Marktrisiko, übrig bleibt das idiosynkratische MR-Alpha.

Daten & Setup

Pre-Registrierte Gates

Ergebnis

KorbgrößeOOS-t (Excess)OOS netto@10 bpsVerdict
minKorb ≥ 2 (winzig, 2–3 Namen)positiv aber t<1.4negativundiversifiziert
minKorb ≥ 5t ≈ +1≈ 0nicht signifikant
minKorb ≥ 8 (handelbar)alle t < +1.6≈ 0 bis negativRED

Klassisches IS-OOS-Decay-Muster: IS überall stark/signifikant (Effekt war im Train robust), OOS bei handelbarer Korbgröße nirgends signifikant. Positiver OOS-Rest nur in winzigen 2–3-Namen-Körben (undiversifizierbar, t < 1.4, netto negativ). Realer MaxDD bestätigt: frühere −50…−93 % MaxDDs waren Kompounding-Artefakt, real ~−20…−35 %. Verdict: RED.

Interpretation / Lehre

Der bekannte Streak-MR-Effekt ist gegen die bedingte Basisrate (0.518 P[Folgetag↑]) real, in diesem Sinne ein deskriptiv messbarer statistischer Effekt. Aber er ist kein handelbares marktrelatives Alpha: gegen SPY-Buy-Hold gemessen verschwindet er bei handelbarer Korbgröße. Die ehrliche Interpretation: „Aktien, die n Tage gefallen sind, steigen am nächsten Tag häufiger als der Schnitt — aber nicht mehr als der breite Markt am selben Tag." Damit kein verwertbarer Edge gegen Buy-Hold.

Code-Referenz

github.com/defcon3/boersenbot/cc_meanrev_excess.py
Log:    cc_meanrev_excess.log
Web:    https://veitluther.de/analysis/streak (mit OOS-Tabelle)

7. VIX-Fear-Conditioning der Streak-MR

RED 2026-05-18

Hypothese

Der Streak-MR-Edge funktioniert nicht im Durchschnitt, aber conditional auf hohe Marktangst (VIX-Perzentil > X, oder VIX-Backwardation, oder VIX-Spike): Long-Down-Streak-Aktien in Angst-Phasen sollte signifikante Excess-Returns produzieren.

Mechanismus

In Angst-Phasen überreagieren Marktteilnehmer (Panik-Verkäufe), Aktien fallen unter ihren Fair Value. Mean-Reversion sollte in diesen Phasen stärker greifen als in ruhigen Phasen. Drei Sub-Signale:

Pre-Registrierte Gates

Ergebnis

ConditionerIS-EffektOOS bei minKorb≥8Verdict
FEARexØ +0.5…+1.2 %, t=2–3t nie ≥ +1.9, netto@10 ≈ 0/neg.FAIL
SPIKEmoderater IS-Effektnetto ≈ 0/negativFAIL
BACKWARDATIONstark ISnetto ≈ 0/negativFAIL

Klassische IS-Falle: eine Demo hätte „bewiesen" gemeldet (IS-t=2–3 ist visuell überzeugend). OOS am ehrlichen Gate (minKorb≥8): kollabiert. Plus: Anzahl Monate mit aktivem Signal schrumpft auf 13–25 → „Edge nur in ~20 Crash-Monaten" = vor-registrierte Disqualifikation. Verdict: RED.

Interpretation / Lehre

VIX-basierte Sentiment-Conditioner sind backtest-bar, das ist ihr Vorteil gegenüber News-Sentiment-Approaches. Aber sie liefern OOS keinen Edge. Die Erklärung: die VIX-FEAR-Phasen sind ohnehin schon Crash-Monate, in denen alles volatil ist — der Conditioner pickt kein zusätzliches Signal heraus, er erzeugt nur eine kleinere und stark korrelierte Stichprobe, in der Rauschen leichter signifikant aussieht.

Code-Referenz

github.com/defcon3/boersenbot/cc_meanrev_vix.py
Log:    cc_meanrev_vix.log

8. GDELT-News-Sentiment-Conditioning

RED 2026-05-19

Hypothese

Wie H7, aber mit GDELT-News-Sentiment statt VIX als Conditioner. NEG-Tone oder DROP-Tone (Tagesänderung) sollte den Streak-MR-Edge stark machen.

Daten

Ergebnis

Exakt gleiche Versagensart wie VIX-Conditioner. In winzigen 2-Namen-Körben spektakuläre OOS-Ergebnisse: NEG/DROP, N≥7/h3: +41 bps, t=3.13. Aber das vor-registrierte handelbare Gate (minKorb≥8, MedKorb 12–21) zeigt: bestes NEG-Setup (N≥4/h5) t=+1.89 < 2.0; bei N≥7/h3 kippt es signifikant negativ (−0.349 %, t=−2.28). Starke DROP-Treffer ruhen auf 3–4 OOS-Tagen / 3–4 Monaten = vor-registrierter Disqualifikator.

Verdict: RED. Backtest-bare Gratis-Sentiment-Quellen (VIX-Familie + GDELT) damit erschöpft.

Interpretation / Lehre

Hätte ich vor der Pre-Reg „+41 bps, t=3.13!" als Befund verkauft, hätte das überzeugend ausgesehen. Aber die Stichprobe waren 2-Namen-Körbe, drei OOS-Treffer in 3 Monaten — das ist nicht handelbar, sondern Datenfischen. Die vor-registrierten Disqualifikatoren (mindKorb, MedKorb, n_months) sind genau dafür da: sie verhindern Demos.

Code-Referenz

github.com/defcon3/boersenbot/cc_meanrev_gdelt.py
ETL:     gdelt_market_tone_etl.py
Logs:    cc_meanrev_gdelt.log, gdelt_market_tone_etl.log

9. Minuten-Momentum (Intraday-Continuation)

RED 2026-05-18

Hypothese

Nach N aufeinanderfolgenden Minuten in dieselbe Richtung läuft die Bewegung weiter (Continuation, klassisches Momentum auf Minuten-Ebene). Handelbar als Long-Continuation-Strategie auf Minute t+k.

Mechanismus

Order-Flow-Persistenz: institutionelle Iceberg-Orders, die über mehrere Minuten ausgeführt werden, sollten kurzfristiges Momentum erzeugen. Plus Retail-Herdenverhalten in Reaktion auf Kursbewegungen.

Daten & Setup

Ergebnis

SchrittBefund
Naive Klassifikation (LDA/SVM/XGB)Acc 0.500, AUC ≈ 0.50, Edge 0.08–0.17 bps vs. Ø-Move 3.85 bps
(N, k)-Gitter rawP(Continuation) hochsignifikant UNTER Basis → schwache Reversion, nicht Continuation
Excess vs. SPY (Mkt-Kontext)Reversion-Magnitude kollabiert → Roh-Reversion war v. a. Markt-MR + Bid-Ask-Bounce
Lockerer Trend (X von W Min)Spannweite ≈ 0.8 bps < Kosten

Vier Null-Befunde: naive ML-Klassifikation Münzwurf; (N,k)-Gitter zeigt Reversion (nicht Continuation); Markt-Conditioning frisst den Effekt; X-von-W-Trend unter Kosten. Verdict: RED.

Interpretation / Lehre

Auf Minuten-Ebene gilt — wenn überhaupt — schwache Reversion, nicht Continuation. Aber die Magnitude (~0.8 bps) liegt deutlich unter den Bid-Ask-Spreads und Kosten. Das deckt sich richtungskonsistent mit dem Tages-MR-Befund: Mean-Reversion ist ein realer Effekt auf Tagesebene, aber auf Minuten-Ebene zu klein für Handel. Faktor-Modell auf dieses Rauschen wäre Overfit auf Bid-Ask-Bounce.

Code-Referenz

github.com/defcon3/boersenbot/intraday_streak.py
github.com/defcon3/boersenbot/intraday_streak_mkt.py
github.com/defcon3/boersenbot/trend_next.py

10. Open→Close Down-Streak Harvest

RED 2026-05-18

Hypothese

Statt Close-to-Close-Trades (mit Overnight-Risiko): kaufe am Morgen-Open, verkaufe am Abend-Close, nur an Tagen nach Down-Streaks. Vereint den validierten Tages-MR-Edge mit einer No-Overnight-Regel.

Mechanismus

Wenn der MR-Edge schon Open-to-Open / Close-to-Close gilt, sollte der Großteil des Effekts im Intraday-Move stecken — Overnight-Returns sind strukturell flach/leicht negativ in den USA. Open→Close vermeidet Overnight-Risiko (Gap-Down).

Daten & Setup

Ergebnis

Auf Aktie-Tag-Ebene hochsignifikant (t bis +11.55, alle ***). Aber das ist die Cluster-Illusion: an Crash-Tagen triggern dutzende korrelierte Aktien gleichzeitig, n korreliert aufgebläht. Auf Tages-Portfolio-Ebene (ehrliches n = Anzahl Handelstage, gleichgewichteter Korb):

Streak-LängeOOS-t (Tages-Portfolio)OOS netto@5bps
2+ down+0.73−0.83
4+ down−0.04−1.26
5+ down+0.06−1.04
6+ down−1.01−1.90
GAP < −2 %+0.88+0.14

Tages-Portfolio bricht zusammen. Nur GAP<−2 % zeigt einen schwachen in-sample-Rest. Der spätere Gap-Korb-Nachfass-Test (gap_bounce_study.py) identifizierte einen schwachen idiosynkratischen Rest (gelb, kein Live-Status). Verdict: RED für den Down-Streak-O→C-Harvest.

Interpretation / Lehre

Die Aktie-Tag-Ebene täuscht durch Clustering. Bei sauberem Tages-Portfolio mit Mindestkorbgröße verschwindet der Effekt. Methodisch: bei Hypothesen über breite Aktien-Körbe muss n IMMER die Anzahl der unkorrelierten Zeitachsen-Einheiten sein, nicht die Anzahl der Aktien-Tag-Beobachtungen.

Code-Referenz

github.com/defcon3/boersenbot/open_close_study.py
github.com/defcon3/boersenbot/open_close_validate.py
github.com/defcon3/boersenbot/gap_bounce_study.py (Nachfass GAP-Korb)

11. Dividend Capture DE (DAX-40 + MDAX-50)

RED 2026-05-25 Pre-registered

Hypothese

Kauf einer deutschen Aktie am letzten Cum-Day (Tag T−1 vor dem Ex-Dividenden-Tag), Verkauf an Tag T+N mit N ∈ {1, 3, 5, 10, 20}. Erwartung: Brutto-Drop am Ex-Tag ist kleiner als die Brutto-Dividende (akademisch dokumentiertes „Drop-Ratio < 1"), und die Lücke ist groß genug, um nach Kapitalertragsteuer (26.375 % auf Brutto-Div) noch einen positiven Excess-Return gegenüber einem DAX-Buy-and-Hold zu erzielen.

Mechanismus

Mögliche Ursachen für eine Drop-Ratio < 1: steuerheterogene Investor-Klassen (steuerbefreite Pensions-/Stiftungs-Investoren treiben den Preis nach Ex), Mikrostruktur-Effekte am Stichtag, Verhaltens-Effekte. Deutsche Aktien zahlen typisch 1× jährlich aus → große Einzeldividenden statt US-Quartalstrippel, ungewöhnliches Volumen-Profil.

Daten & Setup

Pre-Registrierte Gates

Ergebnis

N n_test Mean Train (%) t Train Mean Test (%) t Test Median Test (%) Gates
1 493 −0.299 −4.64 −0.306 −3.44 −0.269 0/4 ❌
3 493 −0.328 −3.50 −0.471 −3.83 −0.420 0/4 ❌
5 493 −0.308 −2.48 −0.423 −2.57 −0.348 0/4 ❌
10 493 −0.299 −1.85 −0.824 −3.64 −0.773 0/4 ❌
20 493 +0.040 +0.17 −1.016 −2.99 −1.354 0/4 ❌
Verdict: RED — strukturell falsifiziert, sogar negativer Edge. Kein einziges Hold-Window besteht G1. Excess-Return ist in Train und Test signifikant negativ, in allen 5 Hold-Windows. Je länger gehalten, desto größer der Verlust (N=20 → mean = −1.02 %).

Interpretation / Lehre

  1. Drop-Ratio ≥ 1 im untersuchten Sample. Der Ex-Day-Drop ist im Mittel mindestens so groß wie die Brutto-Dividende — der akademische Drop-Ratio-<-1-Effekt taucht hier nicht handelbar auf.
  2. Steuer-Mechanik schlägt voll durch. Verlust ~0.3 %/Trade bei N=1 = Größenordnung des Brutto-Steuerabzugs auf typische Dividenden-Yields.
  3. Längeres Halten verstärkt den Verlust. Vermutlich Mean Reversion der Einzelaktien gegen den DAX-Index — deutsche Single-Names underperformen den Index strukturell im Test-Zeitraum, ungeachtet der Dividende.
  4. Survivor-Bias zugunsten der Strategie war eingebaut (aktuelle DAX-40-Komposition statt Point-in-Time). Strategie ist trotzdem RED — der Befund ist nach unten robust.
  5. Pre-Reg-Disziplin bewahrt: ein Lauf, klares RED, kein Tuning nach Sektor/Yield. Differenzierte Varianten wären eine neue Pre-Reg, kein Patch.

Code-Referenz

github.com/defcon3/boersenbot/dividend_capture_test.py
preregs/dividend_capture_de_2026_05_25.md
Pre-Reg-Commit: 871bac1b · Result-Commit: 9c4f5fb2

12. Optionsschein-Strategie vor dem Dividenden-Stichtag (Put & Call)

RED 2026-05-25 Theoretisch + empirisch falsifiziert

Hypothese (zwei Varianten)

H1a (Put): Kauf eines Put-Optionsscheins vor dem Ex-Dividenden-Tag, profitiere vom Kursabschlag am Ex-Tag.
H1b (Call): Wenn der Kursabschlag bereits im Optionspreis eingepreist ist, müsste der Call vor dem Ex-Tag billiger sein — also Call kaufen und profitieren, wenn der Drop kleiner ausfällt als erwartet.

Theoretische Falsifikation (Put-Call-Parity)

Optionspreise sind per Konstruktion dividenden-bereinigt. Aus der erweiterten Put-Call-Parity:

C − P = S − K·e^(−rT) − D·e^(−rT)

mit D = erwartete Dividende vor Expiry,
    r = risikoloser Zins, T = Restlaufzeit

Daraus folgt direkt:

Empirische Verschärfung über Befund #11

Hypothese #11 (Dividend Capture DE) hat gezeigt, dass die Drop-Ratio in Deutschland ≥ 1 ist — der Spot fällt im Mittel mindestens so viel wie die Brutto-Dividende, oft sogar mehr (mean Excess-Return je Trade negativ über alle 5 Hold-Windows).

Konsequenz für die Optionsschein-Strategien:

Zusätzliche Kosten-Killer (deutsche Optionsscheine)

Test-Status

Keine empirische Studie durchgeführt, weil:

Das Verdict ist daher theoriegestützt (Put-Call-Parity als geschlossene Form) plus empirisch indirekt verschärft durch Befund #11. Eine separate Pre-Reg + empirischer Live-Test bleibt für eine zukünftige Iteration möglich, aber unattraktiv: erwartete Effektgröße per Theorie ≈ 0, Kosten 1–3 % je Trade.

Verdict: RED — theoretisch falsifiziert per Put-Call-Parity, empirisch zusätzlich verschärft durch Befund #11 (Drop-Ratio ≥ 1 in DE). Sowohl Put- als auch Call-Variante sind systematisch unprofitabel. Die Strategie ist mathematisch begründet wertlos — vor Kosten ≈ 0, nach Kosten signifikant negativ.

Interpretation / Lehre

  1. Optionspreise enthalten alle bekannten zukünftigen Cash-Flows. Wer auf einen „im Voraus eingepreisten" Effekt setzt, wettet gegen das Bewertungs-Modell selbst, nicht gegen den Markt.
  2. Symmetrie-Test: Wenn eine Hypothese in der einen Richtung falsifiziert ist, ist ihre Umkehrung nicht automatisch der Edge — oft ist sie aus dem gleichen Grund tot. Hier: Put-Variante scheitert per Parity → Call-Variante scheitert per Parity ebenso.
  3. Empirie kann Theorie verschärfen: Befund #11 macht die Call-Variante schlechter als die theoretische Null-Erwartung, weil der reale Drop größer ist als der erwartete.
  4. Spread + Theta als sicheres Loss: bei reinen „nahezu Fair-Value"-Strategien fressen Transaktionskosten und Zeitwertverlust jede theoretische Asymmetrie auf.

Code-Referenz

Keine Empirie — Verdict folgt aus Put-Call-Parity (Lehrbuch)
plus Befund #11 (Drop-Ratio ≥ 1).
Theoretischer BS-Rekonstruktions-Test wäre tautologisch
(per Modell-Annahme exakt 0), daher nicht durchgeführt.

13. Selective Dividend Capture DE (Top-10 aus Train)

RED 2026-05-25 Pre-registered #2

Vorlauf — warum es überhaupt diesen Test gibt

Hypothese #11 hat die universelle Dividend-Capture-Strategie (alle 90 Aktien) klar falsifiziert. Im Post-Mortem fiel auf: einige Aktien hatten deskriptiv positive Captures (Top 10 mit Mean +1.65 % bis +4.32 %). Ein Sanity-Check (Random-5d-Fenster derselben Aktien vs Div-5d-Fenster) ergab, dass die Outperformance auf Div-Tage konzentriert ist (+2.71 % vs −0.01 %). Das hob den Prior für eine selektive Variante auf ~20–25 %.

Hypothese

Aktien mit hoher Dividend-Capture-Performance in Train (2010–2018) sind auch in Test (2019–2025) Outperformer. Konkret: Top-10-Train (Ranking nach mean Excess bei N=5) liefert in Test ein positives Mean-Excess > +0.5 % je Trade.

Pre-Registrierte Gates

Top-10 aus Train (2010–2018)

RangTickerUnternehmenTrain-Meann
1SRT3.DESartorius Vorzüge+3.24 %9
2DUE.DEDürr AG+3.23 %8
3STO3.DESto SE+2.12 %8
4PAH3.DEPorsche Automobil Holding+1.86 %11
5DEZ.DEDeutz AG+1.85 %5
6NEM.DENemetschek SE+1.41 %9
7EVK.DEEvonik+0.91 %5
8AIR.DEAirbus+0.81 %8
9ADS.DEAdidas+0.78 %9
10LXS.DELanxess+0.77 %9

Test-Ergebnis (Test-Periode 2019–2025)

TickerUnternehmenTest-MeannTrain→Test
LXS.DELanxess+2.52 %7bleibt positiv ✓
AIR.DEAirbus+1.17 %5bleibt positiv ✓
EVK.DEEvonik−0.01 %8flat
ADS.DEAdidas−1.10 %6Flip
NEM.DENemetschek−1.12 %7Flip
PAH3.DEPorsche Holding−1.18 %7Flip
STO3.DESto SE−1.23 %7Flip
DEZ.DEDeutz−1.37 %5Flip
DUE.DEDürr−1.58 %7Flip
SRT3.DESartorius−2.71 %7starker Flip (war Train-Rang 1!)

Aggregat-Stats + Gates

MetrikWertGate
n (Test)66
Mean Test-Excess−0.68 %G1, G4 ❌
t-Test (einseitig)−1.34G2 ❌
Median−0.85 %G3 ❌
Wilcoxon-p (greater)0.993G3 ❌
Aktien mit Test-Mean > 02 / 10G5 ❌
Verdict: RED — alle 5 Gates fail. Die Train-Top-10 sind in Test mehrheitlich Verlierer. Sartorius (Train-Rang 1, +3.24 %) wird im Test zum schlechtesten Performer (−2.71 %). Nur 2 von 10 Aktien halten ihre Train-Performance OOS. Die Selektion war Rauschen, kein Pattern.

Wichtigste Lehre: Überlappung Train-Top-10 vs. Test-Top-10

Aus dem post-mortem-Sanity-Check zu #11 kannten wir bereits die deskriptiven Test-Top-10. Vergleich:

Die Identität der „Dividend-Capture-Outperformer" ist nicht zeitlich stabil. Wer in einer Dekade Top war, ist in der nächsten nicht (außer Zufalls-LXS).

Methodische Selbstkritik

Der Sanity-Check, der diese Pre-Reg #2 motiviert hat (Top-10 aus Test vs. Random-in-Test), war zirkuläre Selektion: Wir hatten die Best-Performer ausgewählt und dann zufällige Tage derselben Aktien als Vergleich herangezogen — klar war Test besser. Die Drift-Frage „wäre auch ein Random-5d-Fenster positiv?" wurde durch die Selektion automatisch beantwortet, weil wir nach den besten Div-Performern selektiert hatten.

Erst der saubere Train→Test-Split (= Pre-Reg #2) hat das Cherry-Picking entlarvt. Lehre für künftige Sanity-Checks: niemals Subset selektieren und im selben Datensatz „validieren". Selektion muss aus Train kommen, Validierung aus Test.

Code-Referenz

github.com/defcon3/boersenbot/selective_dividend_capture_test.py
preregs/selective_dividend_capture_de_2026_05_25.md
Pre-Reg-Commit: ad95df6a · Result-Commit: 5ebf144f

Schlussbetrachtung

Was alle Falsifikationen gemeinsam haben

Drei wiederkehrende Versagensmuster:

  1. IS-OOS-Decay (Crossover, CC-MR Excess, VIX-Conditioner, GDELT): Effekt stark im Train, weg oder umgekehrt im Test. Klassisches Overfitting.
  2. Cluster-Illusion (Open→Close, naive Streak): Aktie-Tag-Ebene zeigt astronomische t-Werte, weil korrelierte Crash-Tage n aufblähen. Tages-Portfolio-Ebene entlarvt das.
  3. Strukturelle Brüche (FRED Yield-Inversion): historische Mechanismen brechen durch Regime-Wechsel (Fed-Politik, Fiscal-Support). Macro-Heuristiken aus den 1970–2000ern gelten 2020+ nicht mehr.

Was übrig bleibt (separat dokumentiert)

Aktuell laufen drei Strategien live, die aus der Falsifikationen-Logik entstanden sind und ehrlich validiert wurden:

Details auf der Fazit-Seite.

Hinweise an externe Reviewer (Grok / ChatGPT)

Was ich an Zweitmeinung suche:

  • Methodische Fehler in den Pre-Reg-Definitionen (Sind die Gates fair? Zu lasch oder zu strikt?)
  • Statistische Schwächen (Cluster-Korrektur, Bonferroni-Konservativismus, Sample-Selection)
  • Hypothesen, die ich übersehen habe (was ist mit X, Y, Z?)
  • Fehlinterpretation der RED-Verdikte (welche Befunde wären eigentlich gelb/grün, wenn man die Gates anders setzt?)

Was ich NICHT suche: reines Lob, generische ML-Vorschläge ohne klare Hypothese, oder Strategien, die nur in Bull-Märkten funktionieren.

Reproduzierbarkeit

Sämtlicher Code ist im öffentlichen Repo: github.com/defcon3/boersenbot. Jede falsifizierte Hypothese hat ein eigenes Python-Skript, das aus yfinance / FRED / GDELT die Daten holt und die hier dokumentierten Zahlen reproduziert. Cache-Dateien (*.pkl) sind aus Größengründen nicht im Git, werden aber beim ersten Lauf automatisch erzeugt.

📬 Power-Analyse (Iteration 2 — Mai 2026)

Reviewer-Feedback 2026-05-24 v3 · überarbeitet 2026-05-25

Warum diese Sektion existiert

Ein RED-Verdict bei einer Hypothese heißt im strengen Sinn nur: die Pre-Reg-Gates wurden nicht bestanden. Es heißt nicht automatisch „der Effekt existiert nicht". Wenn die Stichprobe klein ist und der wahre Effekt mittelgroß, kann der Test diesen Effekt schlicht nicht erkennen — die Studie ist underpowered. Die Power-Analyse trennt diese beiden Fälle: „echtes Null" gegen „nicht messbar".

Reviewer (Grok / ChatGPT) hat darauf hingewiesen, dass mehrere Tests knapp unter der Bonferroni- oder Naive-Schwelle scheitern. Genau diese Fälle verdienen einen Power-Check, sonst überdehnt man die Aussage „RED" zu „Effekt definitiv null".

Zwei Kernaussagen, die hier verteidigt werden:
  • Hohe Power + RED → starker Hinweis, dass der Effekt real nicht (oder höchstens minimal) existiert.
  • Niedrige Power + RED → unentschieden („we don't know"). RED ist formal korrekt, aber methodisch nicht endgültig.

Kernbegriffe in zwei Minuten

Power (1 − β)
P(reject H₀ | H₁)
Wahrscheinlichkeit, einen echten Effekt zu finden, wenn er da ist. Standard 80 %.
MDE
(z_α + z_β)·σ/√n
Minimum Detectable Effect — kleinster Effekt, den der Test bei gegebenem n mit 80 % Power finden würde.
Sample Size für 80 %
((z_α+z_β)·σ/μ)²
Anzahl Beobachtungen, die nötig wäre, um den beobachteten Effekt μ mit 80 % Power zu detektieren.
Cohen's d
|μ| / σ
Standardisierte Effektgröße. Konvention: 0.2 klein · 0.5 mittel · 0.8 groß.

Test-Typ: einseitiger One-sample t-Test gegen 0 (gerichtete Hypothesen), α = 0.05, z_α = 1.6449, z_β = 0.8416. σ wird aus dem beobachteten t-Wert rekonstruiert: σ = μ·√n / t.

Drei untersuchte Fälle — Übersicht

Fall n beob. μ beob. t σ (impl.) Power(beob.) MDE @80% n für 80%
A) TECH N=6 (Sektor) 21 +0.302 % +1.92 0.721 % 60.8 % ±0.391 % 36
B) FRED H3 SPY-20d 70 −0.710 % −2.37 2.506 % 76.6 % ±0.745 % 78
C) CC-MR Excess (minKorb≥8) 300 +0.080 % +1.40 0.990 % 40.3 % ±0.142 % 947

Fall A — TECH N=6 (Streak-MR Sektor-Differenzierung)

Kontext: Im Streak-MR-Sektor-Test hatte die TECH-Untergruppe mit N=6 consecutive down-days einen t-Wert von +1.92 bei nur n = 21 Signaltagen. Naive-Schwelle (t = 1.96) knapp verfehlt, Bonferroni-Schwelle (t = 2.7 bei K=12) deutlich. Das wirft die Frage auf: ist der Effekt nicht da — oder war die Stichprobe zu klein?

n (Test)
21
Beobachteter Effekt μ
+0.302 %
t-Wert / p-Wert (einseitig)
+1.92 / 0.035
Cohen's d
0.419
klein–mittel
Power bei n = 21
60.8 %
MDE @ 80 % Power
±0.391 %
n für 80 % Power
36
Abb. A1 — Power als Funktion der Stichprobengröße bei drei hypothetischen Effekt-Größen. Vertikale Linien markieren das tatsächliche n = 21 (beobachtet) und n = 36 (80 %-Ziel bei μ = 0.302 %).
Abb. A2 — Beobachteter Effekt (+0.302 %) im Vergleich zur Minimum Detectable Effect-Schwelle (±0.391 %) bei n = 21. Der beobachtete Effekt liegt 23 % unter der Detektions-Schwelle — gerade nicht signifikant erfassbar.
Lesart: Wenn der wahre Effekt 0.302 % ist (Punktschätzer aus den 21 Tagen), hätten 36 Test-Tage gereicht, um ihn mit 80 % Power signifikant zu finden. Bei nur 21 Tagen war die Wahrscheinlichkeit, ihn überhaupt zu finden, 60.8 %. Die Studie ist underpowered für diesen Effekt-Bereich.

Konsequenz: RED-Verdict bleibt formal korrekt (Pre-Reg-Gates nicht bestanden), aber die ehrliche Aussage ist „Studie zu klein, nicht entscheidbar", nicht „Effekt definitiv null". → Re-Test mit längerer Historie ist methodisch vertretbar, siehe Ausblick unten.

Fall B — FRED H3 SPY-20d (Jobless-Claims-MA-Change)

Klassischer Recession-Indikator: steigende Jobless-Claims sollten 20 Tage später SPY-Returns drücken. Test über 70 Signaltage, beobachteter Effekt −0.71 %, t = −2.37. Bonferroni-Schwelle (|t| = 3.0 bei K = 5 H3-Varianten) deutlich verfehlt.

n (Test-Signaltage)
70
Beobachteter Effekt μ
−0.710 %
t-Wert / p-Wert (einseitig)
−2.37 / 0.010
Cohen's d
0.283
klein
Power bei n = 70
76.6 %
Annualisierter Excess
−8.95 %
(−0.71 % je 20d × 252/20)
Abb. B1 — Cohen's d im Vergleich der drei Fälle. B hat die kleinste standardisierte Effektgröße — der Test hat ihn trotzdem mit 76.6 % Power untersucht, weil n vergleichsweise groß war.
Lesart: Power 76.6 % ist knapp unter 80 %, aber im Rahmen. Beobachteter Effekt (−0.71 %) liegt fast exakt auf der MDE (±0.745 %), die Studie war für genau diese Größenordnung dimensioniert. Bonferroni-Versagen ist hier nicht durch Stichproben-Mangel erklärbar.

Konsequenz: Der eigentliche Falsifikationsgrund ist die Cross-Asset-Inkonsistenz (IWM t = +0.98 in falscher Richtung) und der Train-Test-Direction-Flip (Train −0.74 %, Test +1.43 %). Power ist hier kein Problem — RED ist methodisch ehrlich. Annualisiert wären −8.95 % zwar wirtschaftlich relevant, aber der Effekt ist eben nicht reproduzierbar quer-asset.

Fall C — Close-to-Close MR Excess (breiter Korb, minKorb≥8)

Vergleich Korb-Excess-Return vs. SPY-B&H an Signal-Tagen. Repräsentative Test-Zelle: n = 300, μ = +0.08 %, t = +1.40 — also schon deskriptiv winzig. Anders als bei A und B ist die spannende Frage hier nicht „ist der Effekt da", sondern: würde er überhaupt etwas bedeuten, wenn er da wäre?

n (Test)
300
Beobachteter Effekt μ
+0.080 %
t-Wert / p-Wert (einseitig)
+1.40 / 0.081
Cohen's d
0.081
vernachlässigbar
Power bei n = 300
40.3 %
MDE @ n = 300
±0.142 %
n für 80 % Power
947
~4 Jahre Daily
Abb. C1 — Beobachteter Effekt (+0.08 %) gegen Minimum Detectable Effect (±0.142 %). Der beobachtete Effekt ist nur 56 % der MDE — bei dieser Stichprobengröße statistisch nicht von Null trennbar.
Lesart: Die Studie kann den beobachteten Effekt nicht signifikant nachweisen, weil er kleiner als die MDE ist. Selbst wenn der wahre Effekt +0.08 % wäre, bräuchte man n ≈ 950 Tage (4 Jahre täglich), um ihn auf 80 % Power zu bringen.

Doppel-Konsequenz: (1) RED steht — die Statistik kann den Effekt nicht von Null trennen. (2) Selbst falls der Effekt real wäre: nach Handelskosten (typisch 5–10 bps Spread + Slippage je Trade) wäre praktisch nichts mehr übrig. Practical Significance ist hier wichtiger als Statistical Significance — und sie fehlt ebenfalls.

Power-Level + Verdict-Type für alle 13 RED-Hypothesen

Klassifikation aller bisher dokumentierten RED-Verdikte nach dem Schema oben. Power Level = Einschätzung der Aussagekraft (High = großes n und/oder klar messbarer Effekt; Medium = im Rahmen, aber nicht voll 80 %; Low = underpowered für die gemessene Effekt-Größe). Verdict Type = Art des RED: Strukturell heißt OOS-Kollaps, Direction-Flip, Cross-Asset-Inkonsistenz oder Cluster-Artefakt — die Hypothese ist endgültig falsifiziert. Inconclusive heißt RED formal, aber Power zu niedrig — Re-Test mit längerer Historie wäre legitim.

# Hypothese n (Test) Observed Effect Power Level Verdict Type Kommentar
1 Yen-Carry-Stress ~6500 div. (OPPOSITE) High Sauber falsifiziert 47/48 OPPOSITE — Spike misst Reaktion, nicht Vorhersage
2 Streak-MR Sektor (TECH N=6) 21 +0.302 % Low Underpowered Power 60.8 % — Re-Pre-Reg mit längerer Historie sinnvoll
3 FRED Macro Trio (Yield/HY/Claims) 70 – 4500 −0.71 %
(SPY-20d)
Medium Sauber falsifiziert Cross-Asset-Inkonsistenz (IWM in falscher Richtung)
4 MA-Crossover 50/200 (S&P-500) ~7500 IS+, OOS Flip High Sauber falsifiziert IS-Lookback-Artefakt, OOS Vorzeichen-Flip
5 SOM-Marktregime als Predictor ~5000 1/30 sig. High Sauber falsifiziert 1/30 = exakte Zufallsrate
6 Close-to-Close MR Excess (breiter Korb) 300 +0.080 % Low Praktisch irrelevant Effekt < MDE und < typische Handelskosten (5–10 bps)
7 VIX-Conditioner für Streak-MR ~5000 IS+, OOS ≈ 0 Medium Sauber falsifiziert IS-Falle, OOS kollabiert
8 GDELT-News-Sentiment-Conditioning ~2000 Cluster Medium Sauber falsifiziert 2-Namen-Korb → Cluster-Illusion
9 Minuten-Momentum (Intraday-Continuation) dünn ~ 0 Low Underpowered 4 Null-Befunde, Daten zu dünn, Mechanismus implausibel
10 Open→Close Down-Streak Harvest ~5000 Cluster Medium Sauber falsifiziert Down-Streak-Tag-Cluster, kein echter Excess
11 Dividend Capture DE (DAX-40 + MDAX-50) 493 −0.31 % bis −1.02 % High Sauber falsifiziert Negativer Edge: Drop-Ratio ≥ 1, Steuer 26.375 % schlägt voll durch
12 Optionsschein vor Dividende (Put & Call) n/a ≈ 0 (per Theorie) High Sauber falsifiziert Put-Call-Parity preist Dividende ein; #11 zeigt Drop-Ratio ≥ 1 → beide Varianten tot
13 Selective Dividend Capture DE (Top-10 aus Train) 66 −0.68 % Medium Sauber falsifiziert Train-Top-10 ≠ Test-Top-10 (Überlappung 1/10); Sartorius war Train-Rang 1, wird zum Test-Schlusslicht

n-Werte sind teilweise Schätzungen aus den jeweiligen Backtest-Logs (Daily-Universe-Tests vs. Signal-Tag-Tests vs. Sektor-Untergruppen). Quelle: siehe Hypothesen-Sektionen oben sowie Code-Logs im Repo.

Zusammenfassung — was die Power-Analyse über die 13 RED-Verdikte aussagt

  • 10 von 13 — Sauber falsifiziert (Yen-Carry, FRED Trio, MA-Crossover, SOM, VIX-Conditioner, GDELT, Open→Close, Dividend Capture DE, Optionsschein vor Dividende, Selective Dividend Capture DE): Power reicht aus oder Theorie ist geschlossen (Put-Call-Parity). Falsifikationsgrund ist methodisch (Direction-Flip, OOS-Kollaps, Cross-Asset-Inkonsistenz, Zufallsrate, Cluster-Artefakt, struktureller Verlust, Modell-Tautologie, Selection-Instability) — nicht statistische Schwäche. Diese Hypothesen sind endgültig tot.
  • 2 von 13 — Underpowered (Streak-TECH-N=6, Minuten-Momentum): Stichprobe zu klein für die beobachtete Effekt-Größe. RED formal korrekt, aber Re-Pre-Reg mit längerer Historie wäre methodisch legitim.
  • 1 von 13 — Praktisch irrelevant (Close-to-Close MR Excess): Effekt selbst zu klein für Handelskosten. Selbst falls statistisch nachweisbar wäre, ökonomisch wertlos.

Praktische Konsequenzen für zukünftige Tests:

  1. Power vor dem Lauf prüfen — vor einer Pre-Reg überlegen, ob n groß genug ist, um den erwarteten Effekt mit ≥ 80 % Power zu finden.
  2. MDE als Sanity-Check — wenn der erwartete Effekt < MDE, lohnt sich der Test nicht oder n muss erhöht werden.
  3. Practical Significance trennen von Statistical — auch ein winziger signifikanter Effekt ist nutzlos, wenn er kleiner als die Handelskosten ist.

Ausblick — nächste Schritte

Re-Test TECH N=6 als neue Pre-Registered Hypothese. Fall A (n=21, Power 60.8 %) ist der naheliegendste Kandidat. Skizze:

  • Pre-Reg-Periode: Test-Window auf 2014–2020 (Train) vs. 2021–2026 (Test) ausweiten — voraussichtlich n ≈ 50–80 Signaltage im Test-Block, statt 21.
  • Gate G1: Train-Direction positiv und |t| > 2.0.
  • Gate G2: Test |t| > 2.0 (einseitig, ohne Bonferroni, weil es diesmal nur eine Hypothese ist — keine 12-Zellen-Suche).
  • Gate G3: Power-Check vor dem Lauf: n soll für beobachteten Effekt 0.30 % mindestens 75 % Power liefern (n ≥ 32).
  • Falsifikations-Bedingung: ein einziger Lauf entscheidet. Kein Parameter-Tuning post-hoc. Kein Subset-Slicing.

Wenn dieser Test besteht, ist TECH N=6 ein Edge-Kandidat (nicht „bewiesener Edge" — dafür bräuchte es OOS-Holdout und Forward-Test). Wenn er scheitert, ist die Hypothese auch bei größerer Power tot. Beides sind belastbare Aussagen — anders als das aktuelle „nicht entscheidbar".

Fall C (CC-MR Excess) und Fall 9 (Minuten-Momentum) bekommen keine Re-Tests: der Effekt ist bei C zu klein für Kosten, bei Minuten-Momentum fehlen schlicht freie Daten in ausreichender Dichte.

Code-Referenz

github.com/defcon3/boersenbot/power_analysis.py
Log:    power_analysis.log
Charts: Plotly inline (siehe Quelltext dieser Seite)