Tageszeit-Drift gemessen: Morgens-runter/Nachmittags-rauf widerlegt
analyze_tageszeit.py misst die ROHE Kursdrift je Berliner Stunde (nicht den Signal-Edge). 80k M5-Bars, DST-korrekt, 2 Halften, Ueberschuss gegen den Tagesschnitt. Ergebnis: Vormittag 08-12 kippt zwischen den Halften, Nachmittag 14-18 ist robust NEGATIV - beide Halften der Vermutung fallen durch. Groessenordnung ohnehin unter dem Spread (staerkste robuste Stunde ~0,03 $/h vs 0,0225 $ Spread). Korrektur am eigenen Skript: der erste Entwurf hatte einen ATR-Filter (< 0,06 uebersprungen) plus ATR-Normierung. Der Filter verwarf ausgerechnet die ruhigen Morgenstunden der aelteren Periode (n 138-391 statt 1740) und erzeugte so den vermeintlichen Befund. Beides entfernt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
6af4c868bc
commit
d75789ac72
@@ -352,6 +352,30 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
||||
Richtung → +12, „⭐⭐ Konfluenz M30+H1"; H1 dagegen → −8. Per Backtest belegt:
|
||||
Ø-Edge ×3,5 (+0,016 nur-M30 → +0,056 M30+H1). `_htf_sign` holt zusätzlich
|
||||
H1-Bars. Mess-Tool: `python backtest_improve.py 8000`.
|
||||
- **„Morgens fällt der Kurs, nachmittags steigt er" = WIDERLEGT (gemessen
|
||||
`analyze_tageszeit.py`, 2026-08-04, User-Beobachtung):** ROHE Kursdrift je
|
||||
Berliner Stunde (nicht Signal-Edge wie `backtest_hourly_split.py`), 80k M5-Bars
|
||||
(17.06.25–04.08.26), DST-korrekt via `zoneinfo`, 2 Hälften, Überschuss gegen den
|
||||
jeweiligen Tagesschnitt (sonst färbt das Regime alle Stunden ein: H1 fiel, H2 stieg).
|
||||
**Beide Hälften der Behauptung fallen durch:** Vormittag 08–12 **kippt**
|
||||
(H1 +0,55 / H2 −2,90 Zehntel-Cent je Bar), Nachmittag 14–18 ist zwar
|
||||
vorzeichen-robust, aber **NEGATIV in beiden** (−0,23/−2,10) — also das Gegenteil
|
||||
der Vermutung. Robust auf: 0/2/5/8/15/23 Uhr · robust ab: 17/21/22 Uhr — kein
|
||||
Vormittag/Nachmittag-Muster, sondern verstreute Einzelstunden aus 24 Tests.
|
||||
⚠ **Größenordnung macht es ohnehin unhandelbar:** die stärkste robuste Stunde
|
||||
(23:00, +2,2/+3,4) sammelt über eine volle Stunde ~0,03–0,04 $ — der Spread allein
|
||||
ist **0,0225 $**. Selbst wenn die Drift echt wäre, ist sie kleiner als die Kosten.
|
||||
⚠ Std 2:00 sticht mit +33,0 in H2 hervor, hat dort aber nur n=648 (vs. ~1740 sonst)
|
||||
= dünne Sonntag-Open-/Feiertagsstunde, Ausreißer-verdächtig.
|
||||
⚠⚠ **Methodik-Lehre (eigener Fehler, dokumentiert):** der ERSTE Lauf meldete
|
||||
„Vormittag 08–12 robust negativ" — Artefakt eines **selbst eingebauten ATR-Filters**
|
||||
(`atr < 0,06` übersprungen + ATR-Normierung). In den ruhigen Morgenstunden der
|
||||
älteren Periode liegt der ATR unter dem Floor → von 1.740 Bars je Stunde blieben
|
||||
**138–391** übrig, und zwar ausgerechnet die ungewöhnlich volatilen Morgen.
|
||||
Genau die Stunden, um die es ging, waren eine verzerrte Teilstichprobe. Gleiche
|
||||
Fehlerklasse wie das ORB-Selektions-Artefakt 2026-07-17 (ATR-Skip statt Floor).
|
||||
**Regel: ein Filter, der Bars nach einer Eigenschaft verwirft, die mit der
|
||||
untersuchten Achse korreliert, ERZEUGT den Befund.**
|
||||
- **Tageszeit-Gate = AUS geschaltet (User-Vorgabe 2026-07-22, `[trading] dead_hours=`
|
||||
leer — bewusst GEGEN die Messung).** Jetzt **config-steuerbar** (`wave.set_dead_hours`,
|
||||
Komma-Liste von Stunden; leer=aus). Gemessener Default im Code = `0,1,2,3,4,5,6,7,12,16`
|
||||
|
||||
Reference in New Issue
Block a user