Versuchsdossier · alle Versuche im Kandidatenvergleich
Baustein: Pre-Open-Lern-Gate (Biais/Hillion/Spatt 1999, JPE) auf Overnight-Gap-Fade
Robustheits-Score 55.2/100 · vorläufigWer zahlt und warum?
In der dünnen Nacht- und Früh-Pre-Open-Phase bewegen wenige Teilnehmer mit kleinen, jederzeit revidierbaren Orders den Preis, ohne dass die Kasse handelt. Dieser Gap-Anteil ist Inventar- und Liquiditätsrauschen und wird zurückgehandelt, sobald um 09:00 die volle Kassenliquidität und die Market Maker der Auktion einsetzen. In der Call-Phase direkt vor der Eröffnungsauktion müssen sich informierte Teilnehmer festlegen, weil Zurückziehen teuer wird (BHS 1999: früh Rauschen, spät Lernen). Den Gap-Anteil, den diese Phase baut, tragen informierte Orders; er ist permanent und darf nicht gefadet werden. Das Gate entfernt also genau die Fade-Trades gegen informierten Auktions-Flow.
Widerlegt, wenn: PF von Trial 2 < 1.05 bei n >= 30 ODER PF von Trial 2 nicht über dem von Trial 1 (Gate wirkt nur als zufällige Ausdünnung, wie für einen gehandelten FDAX-Pre-Open befürchtet); zusätzlich widerlegt, wenn Trial 3 (nur Gegenlauf der Call-Phase) keine höhere Trefferquote als Trial 1 zeigt
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-20260928-383ef462). |
| MehrfachtestsSind alle Versuche gezählt und wird dafür korrigiert? | Teilweise | 3 Varianten vor dem Lauf im Trial Ledger registriert (trl_45784df7ef5b). 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-07, 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? | Teilweise | Eingefroren für den Vorwärtstest; der erste Messmonat steht noch aus. |
| Stabilität über die ZeitHängt das Ergebnis an einem einzelnen Zeitraum? | Ja | Kein einzelner Monat trägt das Ergebnis (6 Monate); Aufteilung nach Marktphasen vorhanden. |
| KomplexitätIst die Regel sparsam genug für die Datenmenge? | Teilweise | 3 echte Varianten, 3 variierte Parameter (lambda_max, late_phase_bars, use_preopen_gate). 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; die Placebo-Kontrolle steht im Dossier. |
Eingefroren – erster Messmonat Oktober 2026
Jeden Monat laufen die unveränderte Baseline (Baustein: Pre-Open-Lern-Gate (Biais/Hillion/Spatt 1999, JPE) auf Overnight-Gap-Fade — Traeger pur (A/B-Kontrolle)) und der Baustein (Baustein: Pre-Open-Lern-Gate (Biais/Hillion/Spatt 1999, JPE) auf Overnight-Gap-Fade — mit Baustein (A/B-Overlay)) genau einmal auf denselben ungesehenen Daten: 2026-10 · 2026-11 · 2026-12 · 2027-01. Nach Monat 2 oder 3 wird bei mindestens 20 Overlay-Trades abgebrochen, wenn PF ≤ 1,00 ist oder das Overlay die Baseline nicht schlägt.
Erst nach 4 Monaten, mindestens 30 Trades, PF ≥ 1,20, besserem PnL als die Baseline und mindestens 2 positiven Monaten darf eine unabhängige DEMO-Prüfung beginnen. Das ist ausdrücklich noch keine Slot-Freigabe.
Paar dax_gap_preopen_learning_gate-2026-09-28-overlay · Freeze 2026-09-28 · Kosten 0.5 Pkt Slippage · Source 0c1eb91e416c4b48…
🧩 Baustein-Test — Variante von dax_overnight_gap_fade. Der Trial-Vergleich unten isoliert den Baustein-Beitrag (Trial 1 = Träger pur).
Hypothese & Vorregistrierung
Rationale: Ausstiegsquote unterschritten, kein brauchbarer Exit-Lab-Befund verfügbar. (stop_exit 21/192 = 10,9 %; alle offenen Exit-Lab-Träger sind gesperrt oder ohne Vorsprung: timely_orb −503,8, pivot_level_reversal −51,3 und hull_suite_v3_final −68,1 Pkt im Paritäts-File; round_number bereits zweimal gebaut, zuletzt heute; sigma_adaptive in der Sperrfrist seit 23.09. und Top-Policies +3/−68 Pkt; ib_extension_fade: alle Policies schlechter als Baseline.) Gebaut wird deshalb Klassik-Fund 2 vom 2026-09-28 (Biais/Hillion/Spatt 1999, JPE, Tier 1) als Regime-Baustein auf dem Träger dax_overnight_gap_fade. Der Baustein zerlegt den Gap nach der Zeitstruktur des Pre-Open-Pfads und fadet nur den Anteil aus der dünnen Früh-/Nachtphase, nicht den Anteil, den die Call-Phase kurz vor dem Open gebaut hat. Das Merkmal ist im Korpus neu und distinkt von Größen-, z-Score-, Close-Location- und Vola-Gates. Zur Trägerwahl: Letzter Baustein am 05.09., also keine 7-Tage-Sperrfrist. Der Träger fehlt im Paritäts-File, das gilt als fail-open. Die Portfolio-Empfehlung (bau_familien: Gap Fade/Follow) wird befolgt. Der empfohlenen Bausteinart stop_exit folge ich nicht, weil es keinen baubaren Exit-Befund gibt. E13: Familie Gap Fade/Follow 3/8 = 37,5 %, Bausteinart regime 14/36 = 38,9 %, beides über dem Schnitt. Entscheidbarkeit: Der Träger macht rund 15 Trades pro Monat (n=90 im Bau vom 05.09.). Das Gate lässt erwartet rund 9–10 Trades pro Monat durch. Der enge Ausgang (TP halber Gap-Fill, Time-Exit 30 Bars, Streuung um 35 Pkt) gehört zu den schneller entscheidbaren Designs im Power-Plan. Einschränkung: Der Träger ist selbst schwach (PF 1,11 bei n=90, hängt an 2026-04). Der A/B misst also einen Delta-Beitrag, keinen Edge. Kein Befund ab M3 in mechanism_findings.
Abweichungen von der Quelle: BHS 1999 ist ein Mikrostruktur-Befund (GMM-Test Rauschen vs. Lernen indikativer Pre-Open-Preise, Paris Bourse, 1990er) ohne Handelsregel und ohne Kostenmodell. Die Übertragung auf ein Gap-Fade-Gate stammt aus dem Klassik-Log 2026-09-28, F2. Der DAX-Pre-Open ist ein gehandelter CFD/FDAX-Preis und kein indikativer Preis. Die Spätphase ist als die letzten late_phase_bars 1m-Bars vor dem Session-Open definiert (Default 10 ≈ Xetra-Call-Phase 08:50–09:00), ohne Uhrzeit im Code. Fehlen Pre-Open-Bars, arbeitet das Gate fail-open (Träger-Verhalten, debug-Event PREOPEN_GATE_UNAVAILABLE). Der im Log vorgeschlagene Destatis-08:00-Release-Block (Trial 3) ist nicht gebaut, weil kein verifizierter Release-Kalender vorliegt. Trial 3 testet stattdessen die reine Gegenlauf-Bedingung (lambda_max 0), die das Log als saubersten Hypothesentest nennt. Vom Träger unterscheidet sich das Plugin nur in zwei Punkten: Die Session-Open-Erfassung läuft über SessionLabel.MAIN statt über eine hart kodierte Minute (die Engine klassifiziert identisch über die close_ts-Stunde), und das Entry-Fenster wird in Bars seit dem Open gezählt statt über die Uhrzeit (gleiche 31 Bars). Einstieg, SL/TP, Time-Exit und alle Träger-Defaults sind unverändert.
Quelle: https://ideas.repec.org/a/ucp/jpolec/v107y1999i6p1218-1248.html
Vorregistriertes Optimizer-Grid (festgelegt VOR dem ersten Backtest — Anti-Overfitting)
- lambda_max: 0 / 0.15 / 0.3 / 0.5
- late_phase_bars: 5 / 10 / 15
Vorregistriert vor jedem Ergebnis, 4 × 3 = 12 Kombinationen. lambda_max spannt die Selektionsschärfe auf: 0.0 steht für reinen Gegenlauf der Spätphase (BHS-Idealfall), 0.30 ist der Log-Default, 0.50 lässt Gaps durch, die zur Hälfte spät entstanden sind (schwaches Gate). late_phase_bars 5/10/15 deckt die im Log offen benannte Kalibrierungsunsicherheit ab, wo die informative Spätphase beginnt (08:55 / 08:50 / 08:45). Die Träger-Parameter bleiben fix, damit der Grid nur den Baustein misst.
Backtest-Trials (mit Slippage 0.5 Pkt)
| Trial | n | WR | PF | PnL (Pkt) | Max DD | PF o. Slip |
|---|---|---|---|---|---|---|
| Träger pur (dax_overnight_gap_fade-Default, Gate aus)use_preopen_gate=false | 101 | 30,7% | 1,20 | +222 | 216 | 1,31 |
| BHS-Pre-Open-Gate (Log-Default: lambda_max 0.30, Spätphase 10 Bars)use_preopen_gate=true, lambda_max=0.3, late_phase_bars=10 | 87 | 29,9% | 1,24 | +234 | 201 | — |
| BHS-Gegenlauf (nur faden, wenn die Call-Phase schon gegen den Gap läuft: lambda_max 0.0)use_preopen_gate=true, lambda_max=0, late_phase_bars=10 | 41 | 39,0% | 1,97 | +384 | 145 | — |
Robustheit (bestes Trial)
PF-90%-Bereich über Handelstage
1.02 – 3.55
41 Handelstage. Einzeltrade-Intervall (zu eng, nur zum Vergleich): 0.99 – 3.41
Top-3-Trades am Gewinn
40%
PF bei +1.0 Pkt Slippage
1.68
Statistik-Härtung: Ertrag je Trade 9.35 Pkt; mit 80 % Sicherheit nachweisbar wäre erst ein Vorteil ab etwa 18.6 Pkt (Tagescluster berücksichtigt) — UNTERPOWERT: die Stichprobe ist zu klein, um diesen Wert von null zu trennen.
🎲 Placebo-Kontrolle (zeit-gejitterte Zufalls-Entries, gleiche Trade-Geometrie)
Kandidat 383.5 Pkt vs. Placebo-Median 177.5 / p95 341.9 Pkt · Perzentil-Rang 100%
Kandidat > p95 der Placebos — Timing traegt echten Beitrag
| Regime | n | PF | PnL |
|---|---|---|---|
| range_day | 41 | 1.97 | +384 |
Test-Timeline
Jeder weitere Test dieses Builds (Optimizer-Sweep, Forward-Monat, Re-Run) erscheint hier automatisch.
2026-09-28
Build + Backtest (Auto-Build-Agent)
Auf der Bauhistorie schnitt die Ausgangsstrategie mit Baustein besser ab. Ob der Unterschied größer ist als die zufällige Schwankung, wurde nicht gemessen; das entscheidet erst der gepaarte Vorwärtstest. (A/B: PF 1.20->1.97, PnL +222->+384) — Forward/Review noetig
2026-09-28
Gepaarter Forward-Vertrag eingefroren
2026-10 / 2026-11 / 2026-12 / 2027-01 · Baseline und Overlay je Monat genau einmal · ein Pass geht danach in die autonome Agentenprüfung für DEMO; keine Nutzerbestätigung nötig
2026-09-28
Nikkei-Gegenprobe (Transfer-Test, ATR-skaliert)
Nicht gelaufen: Die Nikkei-Gegenprobe ist seit dem 17.09.2026 abgeschaltet (Betreiberentscheid: nur DAX).