Warchhold Research

BestenlisteBuild-Dossier

Turn-of-Month Long-Bias (Ariel 1987 / Lakonishok-Smidt 1988)

Score 27.7/100
schwaches Signal — unverifiziert2026-08-07Seasonality / Calendar (Turn-of-Month Long-Bias)Tier 1dax_turn_of_month_long

Hypothese & Vorregistrierung

Rationale: Ariel (1987, JFE) + Lakonishok/Smidt (1988, RFS) + McConnell/Xu (2008, FAJ): nahezu die gesamte positive Marktpraemie faellt auf ein schmales Fenster um den Monatswechsel (letzter Handelstag + erste ~3 Handelstage), Treiber ist ein Liquiditaets-/Cashflow-Zyklus (Flow, nicht rein behavioral). NEUE Kalender-Familie, distinkt von den bereits beackerten Wochentag- (dax_week_open_hour_long) und Vorfeiertag-Effekten. Standalone-Strategie, kein Carrier -> keine Traeger-Sperrfrist. Parity-Hinweis: kein Carrier betroffen, live_bt_parity fail-open irrelevant fuer Standalone. Erwartung gedaempft: enges US-[0:+3]-Fenster ist arbitriert (Decay), breiteres [-3:+3] robuster; ~20 TOM-Tage im BT-Fenster -> unterpowert, Forward-Validierung entscheidet.

Abweichungen von der Quelle: Original ist ein Tages-/Overnight-Effekt auf US-Aktienindizes; hier auf eine DAX-Index-Einzelzeitreihe intraday relokalisiert (Entry am Session-Open 09:00, Halten bis Hard-Cut 20:00 mit Katastrophen-/Trailing-Stop) — der historisch grosse Overnight-Anteil wird nicht erfasst, daher potenziell schwaecher. Handelstage werden ueber Wochentage (Mo-Fr) approximiert (Boersen-Feiertage verschieben die Position leicht). Long-only per Konstruktion (der Effekt ist ein Long-Bias).

Quelle: https://www.sciencedirect.com/science/article/abs/pii/0304405X87900663

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

  • pre_days: 1 / 2 / 3
  • post_days: 3 / 5 / 8
  • sl_points: 40 / 60

Fensterbreite ist der einzige literaturgestuetzte Freiheitsgrad: pre_days/post_days spannen die dokumentierten Konventionen auf (Lakonishok/Smidt eng [0:+3], Ariel breit [-1:+8], Decay-robustes [-3:+3]). sl_points variiert nur die Katastrophen-Stop-Weite (Risk), keine Signal-Suche. 3x3x2 = 18 Kombinationen (<= 24), alle innerhalb der MANIFEST-min/max.

Run-ManifestEngine fdc45ed9854b19c5 (78 Dateien)Fenster 2026-03-172026-07-17Datenstand 2026-08-06Slippage 0.5 PktTrials vorregistriert: 3 (trl_381cc30a1564)Strategie-Bytes 471318392a41c5db

Backtest-Trials (mit Slippage 0.5 Pkt)

TrialnWRPFPnL (Pkt)Max DDPF o. Slip
Baseline (Lakonishok/Smidt [0:+3])pre_days=1, post_days=31338.5%1.01+31461.08
Robustes Fenster [-3:+3]pre_days=3, post_days=32138.1%0.77-76190
Ariel breite erste Monatshaelfte [-1:+8]pre_days=1, post_days=83240.6%1.18+80260

Robustheit (bestes Trial)

PF-90%-Konfidenzintervall

0.482.44

Top-3-Trades am Gewinn

64%

PF bei +1.0 Pkt Slippage

1.03

Statistik-Härtung: Block-Bootstrap-CI (Tages-Blöcke, ehrlicher als iid): PF 0.462.53 über 32 Handelstage. EV 2.49 Pkt vs. minimal nachweisbarer Edge 15.25 Pkt — UNTERPOWERT (Stichprobe zu klein für diesen Edge). ⚠ Ergebnis hängt am Monat 2026-06 (ohne ihn: -187.7 Pkt).

🎲 Placebo-Kontrolle (zeit-gejitterte Zufalls-Entries, gleiche Trade-Geometrie)

Kandidat 79.8 Pkt vs. Placebo-Median 79.3 / p95 266.2 Pkt · Perzentil-Rang 55%

Kandidat <= p80 der Placebos — von Zufalls-Timing nicht klar unterscheidbar

2026-03: -462026-04: -572026-05: -1222026-06: +2682026-07: +37
RegimenPFPnL
range_day311.17+76
trend_up_day199+4

Test-Timeline

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

  1. 🔨

    2026-08-07

    Build + Backtest (Auto-Build-Agent)

    schwaches Signal — unverifiziert

  2. 🌏

    2026-08-07

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

    n=0 · PF ? · PnL 0 Pkt

  3. 🧪

    2026-08-18

    Parameter-Sweep (vorregistriertes Grid, Wochenend-Optimizer)

    Vollständiger Report

    Optimizer-Lauf 2026-08-18 — Turn-of-Month Long-Bias (Ariel 1987 / Lakonishok-Smidt 1988)

    Vorregistriertes Grid (18 Kombis, festgelegt beim Bau am 2026-08-07, vor jedem Ergebnis). Grid-Begruendung: Fensterbreite ist der einzige literaturgestuetzte Freiheitsgrad: pre_days/post_days spannen die dokumentierten Konventionen auf (Lakonishok/Smidt eng [0:+3], Ariel breit [-1:+8], Decay-robustes [-3:+3]). sl_points variiert nur die Katastrophen-Stop-Weite (Risk), keine Signal-Suche. 3x3x2 = 18 Kombinationen (<= 24), alle innerhalb der MANIFEST-min/max.

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

    Governance: IS-Ledger trl_91534ee4be85 · OOS-Ledger trl_f043d220b425; beide Payloads vor dem jeweiligen ersten Engine-Aufruf gebunden.

    In-Sample Top 10 (von 18)

    KombinWRPFPnL (Pkt)
    {"post_days": 5, "pre_days": 1, "sl_points": 60.0}1450.0%1.8223+166 Pkt
    {"post_days": 3, "pre_days": 1, "sl_points": 60.0}955.56%1.7581+119 Pkt
    {"post_days": 8, "pre_days": 1, "sl_points": 60.0}2352.17%1.7245+240 Pkt
    {"post_days": 5, "pre_days": 2, "sl_points": 60.0}1752.94%1.7096+166 Pkt
    {"post_days": 8, "pre_days": 2, "sl_points": 60.0}2653.85%1.6603+240 Pkt
    {"post_days": 3, "pre_days": 2, "sl_points": 60.0}1258.33%1.629+119 Pkt
    {"post_days": 8, "pre_days": 3, "sl_points": 60.0}2951.72%1.4876+203 Pkt
    {"post_days": 5, "pre_days": 3, "sl_points": 60.0}2050.0%1.4503+130 Pkt
    {"post_days": 3, "pre_days": 3, "sl_points": 60.0}1553.33%1.3387+82 Pkt
    {"post_days": 8, "pre_days": 1, "sl_points": 40.0}2347.83%1.133+47 Pkt

    IS-Auswahl: {"pre_days": 1, "post_days": 8, "sl_points": 60.0} (Expectancy 10.4383, PF 1.7245, n=23)

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

    Nachbar-Stabilitaet: 3/3 Nachbarn positiv, Nachbar-Ø/Optimum = 0.74 (PLATEAU — robust)

    <details><summary>Alle Kombis (IS)</summary>
    KombinPFExpectancyPnL
    {"post_days": 3, "pre_days": 1, "sl_points": 40.0}90.567-8.5844-77
    {"post_days": 3, "pre_days": 1, "sl_points": 60.0}91.758113.2089+119
    {"post_days": 3, "pre_days": 2, "sl_points": 40.0}120.6323-6.4483-77
    {"post_days": 3, "pre_days": 2, "sl_points": 60.0}121.6299.8967+119
    {"post_days": 3, "pre_days": 3, "sl_points": 40.0}150.5607-7.8153-117
    {"post_days": 3, "pre_days": 3, "sl_points": 60.0}151.33875.4673+82
    {"post_days": 5, "pre_days": 1, "sl_points": 40.0}140.8675-2.1207-30
    {"post_days": 5, "pre_days": 1, "sl_points": 60.0}141.822311.8893+166
    {"post_days": 5, "pre_days": 2, "sl_points": 40.0}170.8836-1.7535-30
    {"post_days": 5, "pre_days": 2, "sl_points": 60.0}171.70969.7841+166
    {"post_days": 5, "pre_days": 3, "sl_points": 40.0}200.7771-3.483-70
    {"post_days": 5, "pre_days": 3, "sl_points": 60.0}201.45036.479+130
    {"post_days": 8, "pre_days": 1, "sl_points": 40.0}231.1332.0265+47
    {"post_days": 8, "pre_days": 1, "sl_points": 60.0}231.724510.4383+240
    {"post_days": 8, "pre_days": 2, "sl_points": 40.0}261.12161.7881+46
    {"post_days": 8, "pre_days": 2, "sl_points": 60.0}261.66039.2292+240
    {"post_days": 8, "pre_days": 3, "sl_points": 40.0}291.01510.229+7
    {"post_days": 8, "pre_days": 3, "sl_points": 60.0}291.48767.0072+203
    </details>

    Out-of-Sample (je genau 1 Lauf)

    nWRPF (m.Slip)PnL (m.Slip)PF (o.Slip)PnL (o.Slip)
    Optimiert922.22%1.3545+33 Pkt1.4837+42 Pkt
    Baseline (Anker)425.0%3.3996+80 Pkt

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

    Verdict

    Optimierung NICHT bestätigt — Baseline behalten, kein Edge-Nachweis

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