Warchhold Research

BestenlisteBuild-Dossier

Baustein: Session-Loss-Limit / Circuit-Breaker auf Squeeze-Release (Han/Zhou)

Score 46/100
baustein_ohne_mehrwert (A/B: Traeger PF 1.37 vs Overlay 0.75) — Baustein verworfen, Traeger unveraendert [retro-korrigiert 2026-07-03: urspruengliches 'edge_kandidat' galt dem Traeger, nicht dem Baustein]2026-07-03Risk Overlay (Session Circuit-Breaker)Tier 1dax_squeeze_session_breaker

🧩 Baustein-Test — Variante von dax_squeeze_release. Der Trial-Vergleich unten isoliert den Baustein-Beitrag (Trial 1 = Träger pur).

Hypothese & Vorregistrierung

Rationale: Baustein-A/B aus Han/Liu/Xu/Zhou 'Sharpe Ratio Timing with Stop Loss' (SSRN 5511318) + offengelegtem Vorlaeufer 'Taming Momentum Crashes' (Sharpe 0.166->0.371, linker Tail eliminiert). Uebertragbarer Kern = Session-Loss-Limit/Circuit-Breaker als Overlay, kein Entry-Edge. Traeger ist dax_squeeze_release, gezielt gewaehlt weil dessen Digest-Situationsprofil den Baustein isoliert testbar macht: PF 1.7 in range_day, aber PF 0.02 (trend_up_day) / 0.05 (trend_down_day) — genau die Trend-Fehltage, an denen ein Circuit-Breaker den fetten linken Schwanz kappen soll. Kernhypothese: der Breaker senkt den Verlust in den Trend-Regimen, ohne die range_day-Gewinne zu beschneiden (Tail-/Verteilungs-Effekt, nicht Mittelwert-Edge).

Abweichungen von der Quelle: Quelle US-Aktien-Momentum-Portfolios, Tagesfrequenz, MONATLICHER Reset, Erloes bis Monatsende risikofrei geparkt. Wir: single-series DAX-1m-Intraday, Pruefung je Bar-Close, TAEGLICHER Reset (Session = natuerliches Rebalancing), 'Parken' = kein Re-Entry bis Hard-Cut 20:00. Schwelle als fixe Punkte-Groesse (kumuliert realisiert+offen, je qty) statt der ebenfalls genannten '-X*ATR'-Variante — bewusst EIN interpretierbarer, plateau-kalibrierbarer Parameter statt zwei gekoppelte. Traeger-Regelwerk 1:1 aus dax_squeeze_release (TTM-Squeeze-Defaults, 09:00-Floor, Hard-Cut 20:00, Initial-SL>=10, Stop-Updates>=8 vom Close, Cooldown).

Quelle: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5511318

Vorregistriertes Optimizer-Grid (festgelegt VOR dem ersten Backtest — Anti-Overfitting)

  • breaker_loss_points: 30 / 45 / 60 / 80 / 100
  • max_trades_per_day: 2 / 3 / 4

Der Baustein hat genau einen freien Parameter — die Verlustschwelle X (breaker_loss_points). Er wird als PLATEAU-Region abgetastet (30..100 Pkt, ~2-4 volle SL-Distanzen bei DAX-1m-ATR), NICHT punktoptimiert (atr-trailing-stop-plateau-robustness): gesucht ist ein stabiler Bereich, in dem der Tail-Nutzen ohne Whipsaw-Schaden traegt, kein einzelnes Optimum. max_trades_per_day (2/3/4) ist der zweite risikobegrenzende Hebel, der mit dem Breaker interagiert (weniger Trades/Tag kappt kumulierten Verlust unabhaengig) — beide is_optimizable, innerhalb MANIFEST-min/max, 5x3=15 Kombinationen (<=24).

Backtest-Trials (mit Slippage 0.5 Pkt)

TrialnWRPFPnL (Pkt)Max DDPF o. Slip
Traeger PUR (Breaker AUS = reine Squeeze-Release-Referenz)use_session_breaker=false17226.2%1.37+7349011.48
+ Session-Loss-Limit 60 Pkt (Quellen-nahe Default-Schwelle)use_session_breaker=true, breaker_loss_points=6017225.6%0.75-490790
+ Session-Loss-Limit 40 Pkt (engerer Circuit-Breaker)use_session_breaker=true, breaker_loss_points=4016526.1%0.75-467765

Robustheit (bestes Trial)

PF-90%-Konfidenzintervall

0.552.7

Top-3-Trades am Gewinn

57%

PF bei +1.0 Pkt Slippage

1.17

2026-03: +9462026-04: -2772026-05: +1542026-06: -88
RegimenPFPnL
range_day1341.65+939
mixed_day91.93+115
volatile_day70.95-6
trend_down_day60.05-83
trend_up_day160.02-230

Test-Timeline

Jeder weitere Test dieses Builds (Optimizer-Sweep, Forward-Monat, Re-Run) erscheint hier automatisch.

  1. 🔨

    2026-07-03

    Build + Backtest (Auto-Build-Agent)

    baustein_ohne_mehrwert (A/B: Traeger PF 1.37 vs Overlay 0.75) — Baustein verworfen, Traeger unveraendert [retro-korrigiert 2026-07-03: urspruengliches 'edge_kandidat' galt dem Traeger, nicht dem Baustein]

  2. 🌏

    2026-07-03

    Nikkei-Cross-Check (Transfer-Test, ATR-skaliert)

    n=0 · PF ? · PnL 0 Pkt

  3. 🧪

    2026-07-11

    Parameter-Sweep (vorregistriertes Grid, Wochenend-Optimizer)

    Vollständiger Report

    Optimizer-Lauf 2026-07-11 — Baustein: Session-Loss-Limit / Circuit-Breaker auf Squeeze-Release (Han/Zhou)

    Vorregistriertes Grid (15 Kombis, festgelegt beim Bau am 2026-07-03, vor jedem Ergebnis). Grid-Begruendung: Der Baustein hat genau einen freien Parameter — die Verlustschwelle X (breaker_loss_points). Er wird als PLATEAU-Region abgetastet (30..100 Pkt, ~2-4 volle SL-Distanzen bei DAX-1m-ATR), NICHT punktoptimiert (atr-trailing-stop-plateau-robustness): gesucht ist ein stabiler Bereich, in dem der Tail-Nutzen ohne Whipsaw-Schaden traegt, kein einzelnes Optimum. max_trades_per_day (2/3/4) ist der zweite risikobegrenzende Hebel, der mit dem Breaker interagiert (weniger Trades/Tag kappt kumulierten Verlust unabhaengig) — beide is_optimizable, innerhalb MANIFEST-min/max, 5x3=15 Kombinationen (<=24).

    Split: IS 17.03.2026 – 17.05.2026 (Auswahl) | OOS 17.05.2026 – 20.06.2026 (einmaliger Test) | Embargo: letzte 21 Tage gesperrt

    In-Sample Top 10 (von 15)

    KombinWRPFPnL (Pkt)
    {"breaker_loss_points": 30.0, "max_trades_per_day": 3}11826.27%1.5118+730 Pkt
    {"breaker_loss_points": 45.0, "max_trades_per_day": 3}11826.27%1.5118+730 Pkt
    {"breaker_loss_points": 60.0, "max_trades_per_day": 3}11826.27%1.5118+730 Pkt
    {"breaker_loss_points": 80.0, "max_trades_per_day": 3}11826.27%1.5118+730 Pkt
    {"breaker_loss_points": 100.0, "max_trades_per_day": 3}11826.27%1.5118+730 Pkt
    {"breaker_loss_points": 30.0, "max_trades_per_day": 4}15626.92%1.3097+560 Pkt
    {"breaker_loss_points": 45.0, "max_trades_per_day": 4}15626.92%1.3097+560 Pkt
    {"breaker_loss_points": 60.0, "max_trades_per_day": 4}15626.92%1.3097+560 Pkt
    {"breaker_loss_points": 80.0, "max_trades_per_day": 4}15626.92%1.3097+560 Pkt
    {"breaker_loss_points": 100.0, "max_trades_per_day": 4}15626.92%1.3097+560 Pkt

    IS-Auswahl: {"use_session_breaker": false, "breaker_loss_points": 30.0, "max_trades_per_day": 3} (Expectancy 6.1833, PF 1.5118, n=118)

    Parameter Stability Map (volle Grid-Flaeche, 15 Kombis)

    Nachbar-Stabilitaet: 2/3 Nachbarn positiv, Nachbar-Ø/Optimum = 0.3 (ISOLIERTES OPTIMUM — Zufallsverdacht)

    <details><summary>Alle Kombis (IS)</summary>
    KombinPFExpectancyPnL
    {"breaker_loss_points": 100.0, "max_trades_per_day": 2}790.6929-4.1332-327
    {"breaker_loss_points": 100.0, "max_trades_per_day": 3}1181.51186.1833+730
    {"breaker_loss_points": 100.0, "max_trades_per_day": 4}1561.30973.589+560
    {"breaker_loss_points": 30.0, "max_trades_per_day": 2}790.6929-4.1332-327
    {"breaker_loss_points": 30.0, "max_trades_per_day": 3}1181.51186.1833+730
    {"breaker_loss_points": 30.0, "max_trades_per_day": 4}1561.30973.589+560
    {"breaker_loss_points": 45.0, "max_trades_per_day": 2}790.6929-4.1332-327
    {"breaker_loss_points": 45.0, "max_trades_per_day": 3}1181.51186.1833+730
    {"breaker_loss_points": 45.0, "max_trades_per_day": 4}1561.30973.589+560
    {"breaker_loss_points": 60.0, "max_trades_per_day": 2}790.6929-4.1332-327
    {"breaker_loss_points": 60.0, "max_trades_per_day": 3}1181.51186.1833+730
    {"breaker_loss_points": 60.0, "max_trades_per_day": 4}1561.30973.589+560
    {"breaker_loss_points": 80.0, "max_trades_per_day": 2}790.6929-4.1332-327
    {"breaker_loss_points": 80.0, "max_trades_per_day": 3}1181.51186.1833+730
    {"breaker_loss_points": 80.0, "max_trades_per_day": 4}1561.30973.589+560
    </details>

    Out-of-Sample (je genau 1 Lauf)

    nWRPF (m.Slip)PnL (m.Slip)PF (o.Slip)PnL (o.Slip)
    Optimiert7230.56%1.2428+180 Pkt1.3608+250 Pkt
    Baseline (Anker)7230.56%1.2428+180 Pkt

    Verdict-Regel + IS-Auswahl basieren auf den realistischen Werten mit Slippage; „o. Slip" ist der Idealwert ohne Ausführungskosten.

    Verdict

    Optimierung BESTAETIGT (OOS) — in Forward-Validierung übernommen

    Regel: bestätigt nur wenn OOS-PF >= 1.1 UND OOS-n >= 10 UND optimiert >= Baseline im OOS.