Versuchsdossier · alle Versuche im Kandidatenvergleich
DAX Round-Number Breakout / Stop-Loss-Cascade (Osler)
Robustheits-Score 47.5/100 · vorläufigWer zahlt und warum?
Für diesen Bau ist keine Mechanik vor dem Test registriert. Er stammt aus der Zeit vor dem Hypothesenregister (03.09.2026) oder kam ohne Vorhersage aus.
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? | Nein | Bau ohne registrierte Vorhersage. |
| MehrfachtestsSind alle Versuche gezählt und wird dafür korrigiert? | Nein | Keine Registrierung im Trial Ledger nachgewiesen. |
| Daten und KostenSind Datenfenster, Datenstand und Kosten festgehalten? | Nein | Kein Run-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? | Ja | Kein einzelner Monat trägt das Ergebnis (4 Monate); Aufteilung nach Marktphasen vorhanden. |
| KomplexitätIst die Regel sparsam genug für die Datenmenge? | Ja | 3 echte Varianten, 2 variierte Parameter (break_buffer_points, grid_step). 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. |
Hypothese & Vorregistrierung
Rationale: Osler (JF 2003 / JIMF 2005 'Stop-Loss Orders and Price Cascades', SR150) dokumentiert per FX-Orderbuch, dass Stop-Cluster knapp jenseits runder Marken beim Kreuzen eine selbstverstaerkende Momentum-Kaskade ausloesen. Diese Kaskaden-Seite wurde bislang NIE real getestet: im gebauten dax_round_number_reversal lieferte Trial 2 (mode=breakout) n=0, weil dort die gekreuzte Marke fehlerhaft aus der Zellgrenze des aktuellen Close statt aus prev_close vs. Close hergeleitet wurde (Close liegt strukturell immer unter upper_mark -> Bedingung nie erfuellbar). Diese Datei korrigiert die Cross-Detektion. Kernhypothese: der Rundmarken-Durchbruch traegt an Trend-/Momentum-Tagen — genau dort, wo der Reversal-Build die Rundmarken-Ebene stark trug (trend_up_day PF 1.36, trend_down_day PF 3.87). Challenger gegen die Breakout-Familie (dax_orb_retest, dax_donchian) mit distinktem Trigger (psychologische 100er-Marke + Stop-Kaskade statt N-Bar-Extrem).
Abweichungen von der Quelle: Original ist FX-Interbank-Orderbuch 1999-2000; hier single-series DAX-Index 1m ohne Orderbuch — die Stop-Cluster bleiben unbeobachtet, nur ihre Preis-Konsequenz (Durchbruch der Rundmarke, prev_close vs. Close) wird gehandelt. R-Multiple-Take-Profit, first_touch_only-Gate (nur erster Durchbruch je Marke/Tag) und ATR-skalierte Stops hinter der gekreuzten Marke sind unsere Umsetzung; die Quelle gibt keine expliziten Exits. Keine Uhrzeit-Gates im Code — Entry-Floor 09:00 / Hard-Cut 20:00 kommen aus dem Slot.
Quelle: https://www.newyorkfed.org/medialibrary/media/research/staff_reports/sr150.pdf
Vorregistriertes Optimizer-Grid (festgelegt VOR dem ersten Backtest — Anti-Overfitting)
- grid_step: 50 / 100
- break_buffer_points: 2 / 4 / 8
- tp_r_mult: 1 / 1.5 / 2
grid_step: primaerer (100er) vs. sekundaerer (50er) psychologischer Stop-Cluster laut Osler/Donaldson-Kim. break_buffer_points: Mindest-Penetration jenseits der Marke, um Spread/Noise-Fehltrigger von echten Kaskaden-Durchbruechen zu trennen (2/4/8 Pkt Plateau statt Punktoptimierung). tp_r_mult: Kaskaden-Momentum-Ziel als R-Multiple (1.0-2.0), literaturnah zum kurzlebigen Follow-Through. 2x3x3 = 18 Kombinationen <= 24, alle innerhalb der MANIFEST-min/max.
Backtest-Trials (mit Slippage 0.5 Pkt)
| Trial | n | WR | PF | PnL (Pkt) | Max DD | PF o. Slip |
|---|---|---|---|---|---|---|
| Baseline (Osler Stop-Cascade, 100er, break_buffer 4) | 155 | 45,2% | 0,97 | -115 | 723 | 1,01 |
| 50er-Sekundaer-Clustergrid_step=50 | 219 | 41,6% | 0,85 | -662 | 1.077 | — |
| Starke-Penetration-Bestaetigung (break_buffer 8)break_buffer_points=8 | 150 | 42,0% | 0,94 | -212 | 846 | — |
Robustheit (bestes Trial)
PF-90%-Bereich über Handelstage
—
Kein Tagesintervall gespeichert. Einzeltrade-Intervall (zu eng, nur zum Vergleich): 0.71 – 1.32
Top-3-Trades am Gewinn
11%
PF bei +1.0 Pkt Slippage
0.88
| Regime | n | PF | PnL |
|---|---|---|---|
| range_day | 105 | 1.06 | +121 |
| volatile_day | 9 | 1.63 | +93 |
| trend_down_day | 10 | 1.38 | +87 |
| mixed_day | 4 | 1.23 | +18 |
| trend_up_day | 27 | 0.52 | -433 |
Test-Timeline
Jeder weitere Test dieses Builds (Optimizer-Sweep, Forward-Monat, Re-Run) erscheint hier automatisch.
2026-07-07
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-07-07
Nikkei-Gegenprobe (Transfer-Test, ATR-skaliert)
Keine Signale im Nikkei-Handelsfenster (02:00–08:00 Berlin) — kein Transfer-Ergebnis.