Auto-Squeeze-Nachtsperre von 0-7 auf 3-6 Uhr verkuerzt (User-Vorgabe)
Gemessen (backtest_cost_gate.py, Teil 2): es gibt KEINE toten Stunden - alle 24 Stunden sind in beiden Halbjahren positiv, keine ist beidhaelftig negativ. Std 0 ist sogar die staerkste des Tages (OeR +1,48/+1,51) und lag im alten Gate. Jedes Fenster kostet also Ertrag; die Sperre kauft ausschliesslich Beaufsichtigungs-Ruhe. Gewaehlt wurde deshalb nach PREIS, nicht nach Edge: 3-6 ist das guenstigste Fenster mit noch >=4 h Schutz (SigmaR -12,5/-62,9 gegen -42,4/-242,6 bei 0-7 = ~27 %). Freigegeben: 0, 1, 2, 7 Uhr. Die 4-h-Untergrenze ist gesetzt, nicht gemessen. Umsetzung: neues [trading] auto_squeeze_night_hours (Default 3,4,5,6, leer = aus), genutzt von _check_auto_squeeze und _check_auto_signal. _SQUEEZE_NIGHT bleibt als STATISTISCHE Nacht-Definition fuer Entry-Checkliste und B4-Monitor - dort gilt die Kostenfalle weiter und der Altdaten-Vergleich bleibt stabil. 7 Parse-Faelle getestet (Default, fehlender Schluessel, leer, Muell, Rueckwaerts-Kompatibilitaet). Live verifiziert am NEUEN Snapshot-Feld squeeze_night_hours = 3,4,5,6 und am Startup-Log; genau eine Instanz auf 8000. Offen und als Reminder hinterlegt: der Backtest modelliert keine Slippage, und die freigegebenen Stunden liegen in der duennsten Liquiditaet. Nach 15 Squeeze-Trades aus 0/1/2/7 Uhr gegen die Erwartung pruefen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
cdee6eced7
commit
1c9bb34095
@@ -1418,9 +1418,26 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
||||
ENTRY` + Telegram + Fehlschlag-Push. Snapshot `auto_squeeze`/`squeeze_entry_count`;
|
||||
Toggle `POST /api/autosqueeze` (`set_auto_squeeze`) = Dashboard-Button **🚀 BRK**
|
||||
(blau=AN, ersetzt den alten Dry-Run-AUTO-Button). **Dead-Hour-Guard = AN
|
||||
(User-Vorgabe 2026-07-24, `[trading] auto_squeeze_skip_night=true`):** der Bot
|
||||
eröffnet **nachts 0–7 Uhr KEINE** Squeeze-Trades (`_SQUEEZE_NIGHT=(0..7)`,
|
||||
`_squeeze_skip_night` → `_check_auto_squeeze` return; kein Entry UND kein Reverse).
|
||||
(User-Vorgabe 2026-07-24, `[trading] auto_squeeze_skip_night=true`) — **Fenster
|
||||
seit 2026-08-05 auf `3,4,5,6` VERKÜRZT** (`[trading] auto_squeeze_night_hours`,
|
||||
User-Vorgabe „verkürze auf die wirklich toten Stunden"; war fest 0–7):** der Bot
|
||||
eröffnet in diesen Stunden **KEINE** Squeeze-Trades (`_squeeze_night_hours` →
|
||||
`_check_auto_squeeze` return; kein Entry UND kein Reverse; leere Liste = aus).
|
||||
⚠ **`_SQUEEZE_NIGHT=(0..7)` bleibt bestehen, ist aber NICHT mehr das Gate** — es
|
||||
ist jetzt nur noch die STATISTISCHE Nacht-Definition für die Entry-Checkliste
|
||||
(dort gilt die Kostenfalle weiterhin, s. u.) und den Tag/Nacht-Split im
|
||||
B4-Monitor (damit der Vergleich mit den Altdaten stabil bleibt). Der
|
||||
Auto-Signal-Pfad nutzt dasselbe neue Fenster (ist ohnehin aus).
|
||||
⚠⚠ **Die Verkürzung ist NICHT ertrags-begründet, sondern preis-begründet** —
|
||||
gemessen ist **keine einzige Nachtstunde in beiden Halbjahren negativ**, jede
|
||||
geblockte Stunde kostet Ertrag (Details beim Fallbeispiel unten). 3–6 ist
|
||||
schlicht das **günstigste Fenster mit noch ≥4 h Schutz**: Preis ΣR
|
||||
**−12,5/−62,9 R** gegen **−42,4/−242,6** bei 0–7 = **~27 %** der bisherigen
|
||||
Kosten. Freigegeben sind **0, 1, 2 und 7 Uhr**. ⚠ Std 0 ist dabei die **beste
|
||||
Stunde des ganzen Tages** für den Squeeze (ØR +1,48/+1,51) — sie zu blocken war
|
||||
der teuerste Einzelposten. Live verifiziert am neuen Snapshot-Feld
|
||||
`squeeze_night_hours` + Startup-Log „Auto-Squeeze-Nachtsperre: 3:00, 4:00, 5:00,
|
||||
6:00". Zurück auf den alten Stand: `auto_squeeze_night_hours = 0,1,2,3,4,5,6,7`.
|
||||
Doppelt begründet: (1) **gemessen** unrentabel (`backtest_realcosts.py`, Spread÷Nacht-
|
||||
ATR 0,32–0,50×ATR, beide Halbjahre negativ = Kostenfalle) und (2) **kein Trade
|
||||
soll unbeaufsichtigt nachts feuern, während der User schläft** — Auslöser: „müsste
|
||||
@@ -1503,8 +1520,34 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
||||
(P(break) nachtrainiert, 15-Min-Regel aus, Trail 1,5→1,0). (3) Der
|
||||
**Beaufsichtigungs-Grund** („kein Trade soll feuern, während ich schlafe",
|
||||
User-Vorgabe 2026-07-24) ist eine Präferenz und wird von keiner Zahl berührt.
|
||||
✅ **Deshalb KEINE Änderung vorgenommen** — `auto_squeeze_skip_night` bleibt `true`.
|
||||
Die Messung liegt vor, die Entscheidung ist eine Nutzungs-, keine Messfrage.
|
||||
✅ **Konsequenz (User-Vorgabe 2026-08-05 „verkürze auf die wirklich toten
|
||||
Stunden"): Fenster von 0–7 auf 3–6 verkürzt** — Details oben beim Guard.
|
||||
⚠⚠ **Die Prämisse der Vorgabe hält der Messung nicht stand: es gibt KEINE toten
|
||||
Stunden.** Je Stunde einzeln, sequentiell, beide Halbjahre — **alle 24 Stunden
|
||||
sind in beiden Hälften positiv**, keine einzige ist beidhälftig negativ. Die
|
||||
ruhigsten Nachtstunden (n über beide Hälften): 5 (41 Ausbrüche) · 4 (56) · 3 (61)
|
||||
· 6 (62); die aktivsten 7 (75) · 0/2 (72) · 1 (71). ⚠ **Std 0 ist die stärkste
|
||||
Stunde des gesamten Tages** (ØR +1,483/+1,510, ΣR +22,2/+86,1) — ausgerechnet sie
|
||||
lag im alten Gate.
|
||||
Damit ist die Auswahl **keine Ertrags-Optimierung, sondern eine Preis-Minimierung
|
||||
für eine Präferenz** — und deshalb auch nicht overfitting-gefährdet: es wird keine
|
||||
prädiktive Behauptung aufgestellt. Preisliste (ΣR gegen „kein Gate"):
|
||||
| Fenster | Std | Preis H1 | Preis H2 |
|
||||
|---|---|---|---|
|
||||
| 4–5 | 2 | −3,9 | −18,1 |
|
||||
| 4–6 | 3 | −6,8 | −39,9 |
|
||||
| **3–6 (gewählt)** | **4** | **−12,5** | **−62,9** |
|
||||
| 2–5 | 4 | −12,8 | −77,2 |
|
||||
| 0–7 (alt) | 8 | −42,4 | −242,6 |
|
||||
Die 4-Stunden-Untergrenze ist **gesetzt, nicht gemessen** — darunter wäre der
|
||||
Schutzzweck hinfällig. Wer weniger Schutz will, nimmt 4–5 (fast gratis); wer den
|
||||
alten Stand will, trägt `0,1,2,3,4,5,6,7` ein.
|
||||
⚠ **Was die Verkürzung NICHT ausräumt:** die drei Vorbehalte oben gelten
|
||||
unverändert — vor allem die **nicht modellierte Slippage** (dünnes Nacht-Buch,
|
||||
Tail 0,75×ATR über den Stop). Die freigegebenen Stunden 0/1/2/7 liegen mitten in
|
||||
der dünnsten Zeit. **B4-Pflicht: die Squeeze-Trades aus 0/1/2/7 Uhr getrennt
|
||||
mitzählen** — bleiben sie hinter der Erwartung (ØR ~+0,5 R), war die Slippage
|
||||
der Grund und das Fenster gehört zurück auf 0–7.
|
||||
**Stop-&-Reverse = AUS (Default, `[trading] auto_squeeze_reverse=false`,
|
||||
`_squeeze_reverse`; User-Vorgabe 2026-07-17):** War kurz scharf, dann abgeschaltet —
|
||||
nur der **flat-Entry ist gemessen-validiert**, der Reverse ist unbelegt, verdoppelt
|
||||
|
||||
Reference in New Issue
Block a user