Versuchsdossier · alle Versuche im Kandidatenvergleich
DAX Directional-Change Overshoot-Trend (Overshoot/θ-Persistenz-Gate, Glattfelder/Houweling/Olsen 2025)
Wer zahlt und warum?
Nach einem bestätigten θ-Richtungswechsel liegen jenseits des alten Extrems die Schutz-Stops der Gegenseite, und schubweise eintreffende Information wird über mehrere Minuten verarbeitet. Stop-Kaskaden und Momentum-Flow tragen den neuen Lauf dann systematisch weiter als θ. Genau diese Zustände zeigt das mittlere Overshoot/θ der zuletzt abgeschlossenen DC-Zyklen über 1 an. Unter der Random-Walk-Null ist es exakt 1, und ein DC-Trendfolger verdient brutto OS − θ = 0. Bei R_t ≥ 1,25 sollte der Lauf nach dem Einstieg am Bestätigungspunkt im Mittel über den Gegen-DC-Exit hinaustragen.
Widerlegt, wenn: PF < 1,0 bei n ≥ 50 im gegateten Baseline-Trial. Ebenso widerlegt, wenn der gegatete Arm den ungegateten Kontrollarm (gate_margin = 0) nicht übertrifft: Dann ist R_t keine handelbare Persistenz-Information, und der DAX folgt auf Skala θ der Martingal-Null bzw. ist mean-reverting.
Prüfliste nach Arnott, Harvey und Markowitz
Sieben Fragen aus „A Backtesting Protocol in the Era of Machine Learning“ (2019). Die Einstufung folgt festen Regeln aus den Feldern dieses Bauergebnisses.
| Punkt | Einstufung | Beleg |
|---|---|---|
| MotivationGab es vor dem Test eine ökonomische Begründung? | Ja | Mechanik und Vorhersage vor dem Test im Hypothesenregister (HYP-20260926-a10848d2). |
| MehrfachtestsSind alle Versuche gezählt und wird dafür korrigiert? | Teilweise | 3 Varianten vor dem Lauf im Trial Ledger registriert (trl_4792b8b044a4). Das geltende Urteil korrigiert nicht für die Zahl der Versuche. |
| Daten und KostenSind Datenfenster, Datenstand und Kosten festgehalten? | Ja | Fenster 2026-03-17 bis 2026-09-05, Datenstand 2026-09-25, Slippage 0,5 Pkt je Seite; Engine-Fingerabdruck im Manifest. |
| Prüfung außerhalb der StichprobeWurde auf Daten geprüft, die beim Bau nicht bekannt waren? | Nein | Nur in-sample. Das Ergebnis dieses Baus ist kein Nachweis. |
| Stabilität über die ZeitHängt das Ergebnis an einem einzelnen Zeitraum? | Nein | Keine Monatsaufteilung im Ergebnis. |
| KomplexitätIst die Regel sparsam genug für die Datenmenge? | Ja | 2 echte Varianten, 1 variierter Parameter (gate_margin). Regel: höchstens 2 variierte Parameter und 3 Varianten. |
| ForschungskulturWird auch das Scheitern veröffentlicht? | Ja | Jeder Bau erscheint unabhängig vom Ergebnis, dieses Dossier eingeschlossen; Kontrollarme stehen sichtbar daneben. |
Hypothese & Vorregistrierung
Rationale: Ausstiegsquote unterschritten (stop_exit 17/175 = 9,7 % < 25 %), kein brauchbarer Exit-Lab-Befund verfügbar: Die einzigen noch nicht gebauten Exit-Lab-Träger dax_pivot_level_reversal (bt.pnl_pts −51,3) und dax_timely_orb (−503,8) sind laut live_bt_parity.json paritätsgesperrt. Der erneuerte Befund zu dax_ib_extension_fade (−69,0) ist ebenfalls gesperrt, und seine Top-Policies wurden am 18.09. bereits ohne Mehrwert getestet. Gebaut wird daher Fund 1 aus dem Literatur-Log vom 26.09. als Standalone-Nebenarm, den das Log selbst skizziert. Beide dort genannten Gate-Träger sind blockiert: hull_suite_v3_final durch Sperrfrist (21.09.) und Parität (−68,1), dax_round_number_reversal durch Sperrfrist (20.09.). Der Standalone-Escape landet in component_kind=strategy, der einzigen Kategorie mit Lernsignal (19/119 = 16 % gegenüber regime 0/33, stop_exit 0/17, indicator 0/6). Die Trend-Familie steht bei 1/15. Das Gegenargument ist mechanisch: Alle bisherigen Trend-Bauten (Alexander, Donchian, PSAR, KAMA, Aroon …) waren unkonditionierte Filterregeln. Unter der Martingal-Null (E[Overshoot] = θ nach einem θ-Richtungswechsel) ist deren Brutto-Erwartung analytisch null, der Misserfolg also zwingend. Dieser Bau konditioniert erstmals exakt auf die Abweichung von dieser bekannten Null. Mit Trial 2 (ungegatet) enthält er zudem die eigene Falsifikation. Challenger gegen dax_alexander_filter (PF 0,82, zuletzt am 05.07. getestet, damit der am längsten nicht geprüfte Vertreter der Zickzack-Familie) mit vola-skaliertem θ statt fix 20 Pkt. Den Signal-Mining-Fund vom 20.09. (Breakout Long) habe ich als echte Dublette von dax_day_range_breakout_long verworfen: identische Regel, Tagesspannen-Position > 0,95, min_range 15, dort PF 0,26.
Abweichungen von der Quelle: Glattfelder/Houweling/Olsen (arXiv 2501.06032) liefern nur den DC-/Overshoot-Rahmen ohne Performance-Zahlen. Ihre Delta-Engine handelt kontrarian mit Multi-Schwellen-Skalierung (±u), das wird NICHT übernommen. Barak/Razmi/Mousavi (SSRN 5525163) wählen θ per LightGBM-Meta-Learner mit Krypto-/On-Chain-Features. Stattdessen wird die im Research-Log hergeleitete, feature-freie Persistenz-Statistik R_t = Mittel(OS/θ) mit exakter Nullhypothese 1 genutzt (Log-Eigenherleitung aus Taylor 1975 / Lehoczky 1977, kein Quellen-PnL-Claim). θ ist vola-skaliert in Punkten (Anteil der mittleren Vortagesspanne) statt fixer 1/2/4 %. Die DC-Statistik ist Close-basiert statt tickbasiert. Das Extrem-Tracking startet pro Tag neu, das Overnight-Gap zählt nicht als DC. Am Tagesende offene Zyklen werden als rechts-zensiert verworfen: Das verhindert Lookahead, erzeugt aber einen dokumentierten Längen-/Inspektions-Bias (R_t in Trendphasen verzögert). OS wird ab dem theoretischen DC-Niveau (Anker ± θ) gemessen, damit die Bar-Diskretheit den Quotienten nicht verzerrt. Das Gate wird erst ab 30 abgeschlossenen Zyklen aktiv, auch im Kontrollarm, damit alle Arme dieselbe Periode handeln. Zusätzlich gibt es einen protektiven Initial-Stop θ (≥ 10 Pkt). Stop-and-Reverse läuft mit 1-Bar-Versatz (Single-Position-Framework). Cooldown 5 Bars nach Stop-Out, Cap 6 Trades/Tag. Die Log-Vorgaben zur Gate-Korrelation gegen dax_hull_hurst_gate und zur OS/θ-Verteilungsdiagnose sind Review-Aufgaben und nicht Teil des Plugins.
Quelle: https://arxiv.org/abs/2501.06032
Vorregistriertes Optimizer-Grid (festgelegt VOR dem ersten Backtest — Anti-Overfitting)
- theta_frac: 0.5 / 0.75 / 1
- gate_margin: 0.25 / 0.35
- cycle_window: 30 / 36 / 40
theta_frac deckt die Log-Spanne c ∈ {0,5; 1,0} der mittleren Tagesspanne mit einem Mittelpunkt ab. gate_margin enthält nur die beiden im Log fest vorregistrierten Werte m ∈ {0,25; 0,35}; bei SE(R_t) ≈ 0,17 ist m < 0,25 ein Rausch-Gate, deshalb gibt es kein Feingrid. cycle_window folgt der Log-Vorgabe N ≈ 30–40 abgeschlossene Zyklen. 3 × 2 × 3 = 18 Kombinationen, alle innerhalb der MANIFEST-Grenzen und is_optimizable.
Backtest-Trials (mit Slippage 0.5 Pkt)
| Trial | n | WR | PF | PnL (Pkt) | Max DD | PF o. Slip |
|---|---|---|---|---|---|---|
| Baseline (Log-Default: θ = 0,5 × Tagesspanne, N = 36, Gate R_t ≥ 1,25) | 0 | 0,0% | — | +0 | 0 | — |
| Kontrollarm ungegatet (gate_margin = 0 → vola-skalierte Alexander-Revision, prüft Martingal-Null PF ≈ 1)Kontrollegate_margin=0 | 86 | 45,4% | 0,73 | -1.066 | 1.701 | — |
| Strengeres Gate (Log-vorregistriert m = 0,35, ≈ 2 SE über Null)gate_margin=0.35 | 0 | 0,0% | — | +0 | 0 | — |
Test-Timeline
Jeder weitere Test dieses Builds (Optimizer-Sweep, Forward-Monat, Re-Run) erscheint hier automatisch.
2026-09-26
Build + Backtest (Auto-Build-Agent)
Der Test fand keinen Vorteil gegenüber Zufall und Kosten. Ausgeschlossen ist ein Vorteil damit nicht: Bei der vorhandenen Stichprobe blieben kleine Vorteile unentdeckt (Power-Hinweis im Dossier).
2026-09-26
Nikkei-Gegenprobe (Transfer-Test, ATR-skaliert)
Nicht gelaufen: Die Nikkei-Gegenprobe ist seit dem 17.09.2026 abgeschaltet (Betreiberentscheid: nur DAX).