From dd7c4e6b1564480f7b33a58ee2f910b3cec0b21a Mon Sep 17 00:00:00 2001 From: Axel Hocks Date: Fri, 7 Aug 2026 15:35:34 +0200 Subject: [PATCH] Notfall-Stop auf 8 % der Margin aktiviert (User-Entscheidung, gegen die Messung) auto_emergency_margin_pct 0 -> 8. Gewaehlt wurde die MILDESTE Variante: Delta -14 EUR ueber 1022 Trades ist praktisch neutral, sie feuert bei rund 16 % der Trades. Schuetzt wenig, kostet wenig - eine Versicherung mit kleiner Praemie. Sizing bleibt ausdruecklich bei 95 % (margin_pct nicht mitgeaendert). Bezugsgroesse ist die MARGIN DIESER Position, nicht das Konto: bei ~670 EUR/Lot sind 8 % rund 54 EUR/Lot, bei den aktuellen 2,33 Lots etwa 124 EUR. Der Modus hat Vorrang vor auto_emergency_pct und auto_emergency_loss, beide bleiben 0. AKTIVIERUNG braucht einen Neustart - und die bereits offene Position bekommt den Stop auch danach NICHT. Verifiziert an engine.py:884: der Wiederherstellungs-Zweig setzt fuer ein wiedererkanntes Ticket _emergency_margin_armed_ticket = ticket und _emergency_loss auf den persistierten Wert (hier null), damit ein Neustart keine gesetzte Entscheidung ueberschreibt (Fix 2026-07-17). Der 8-%-Stop greift ab der naechsten neuen Position. Neustart daher am besten fahren, wenn das Konto flat ist. Neu im Config-Waechter (validiert = 0), damit die Abweichung sichtbar bleibt. Backup: oil_widget_config.ini.bak-2026-08-07-emergency Zurueck: auto_emergency_margin_pct = 0 Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 24 ++++++++++++++++++++++++ measurement_reminder.py | 16 ++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 54a6a24..1a65ae4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4995,6 +4995,30 @@ erholt hätten. Damit ist es die **fünfte** unabhängige Messung dieser Klasse (15-Minuten-Regel · `backtest_adverse_nosignal` · Flip auf das Signal · Notfall-Stop · Flip auf den HTF-Trend) — **alle negativ.** +✅✅ **UMGESETZT auf User-Entscheidung (2026-08-07): `auto_emergency_margin_pct += 8`** — bewusst **gegen** die Messung, wie beim Auto-Squeeze. Gewählt wurde die +**mildeste** Variante: Δ **−14 €** über 1.022 Trades ist praktisch neutral, sie +feuert bei ~16 % der Trades. Sie schützt wenig und kostet wenig — eine +Versicherung mit kleiner Prämie, die im schlechten Regime hilft und im guten +kostet. **Sizing bleibt bei 95 %** (ausdrücklich nicht mitgeändert). +Backup `oil_widget_config.ini.bak-2026-08-07-emergency`. +⚠ **Bezugsgröße ist die MARGIN DIESER Position, nicht das Konto** — bei ~670 €/Lot +sind 8 % rund **54 €/Lot** (bei den aktuellen 2,33 Lots ≈ **124 €**). Der Modus +hat **Vorrang** vor `auto_emergency_pct` (Konto-%) und `auto_emergency_loss` +(Fixwert); beide bleiben 0. Der Vertipper-Schutz `emergency_min_eur=3` gilt nur +für manuelle UI-Eingaben, nicht für diesen Pfad. +⚠⚠ **AKTIVIERUNG braucht einen NEUSTART** (`_emergency_margin_pct` lebt im +Speicher) — **und die bereits offene Position bekommt ihn auch danach NICHT.** +Grund (verifiziert an `engine.py:884`): der Wiederherstellungs-Zweig setzt für +ein wiedererkanntes Ticket `_emergency_margin_armed_ticket = ticket` und +`_emergency_loss` auf den persistierten Wert (hier `null`) — bewusst so, damit +ein Neustart keine gesetzte Entscheidung überschreibt (Fix 2026-07-17). **Der +8-%-Stop greift also ab der NÄCHSTEN neuen Position.** Daraus folgt: den +Neustart am besten fahren, wenn das Konto **flat** ist — er nützt der laufenden +Position ohnehin nichts und vermeidet das Risikofenster. +✅ Neu im **Config-Wächter** (`measurement_reminder.py`, validiert = `0`), damit +die Abweichung sichtbar bleibt. **Zurück: `auto_emergency_margin_pct = 0`.** + ✅ **Was stattdessen belegt ist:** der Verlust-Hebel liegt in der **SL-Breite** (live 2,0×ATR_M15 ≈ 3,6×ATR_M5, Worst bis −5,6×ATR; per Broker-SL geschlossene Trades hätten mit dem kanonischen Exit **1.229 €** weniger verloren) und damit diff --git a/measurement_reminder.py b/measurement_reminder.py index 5ad36aa..b4075ae 100644 --- a/measurement_reminder.py +++ b/measurement_reminder.py @@ -270,6 +270,22 @@ CHECKS = [ # (Die meisten verworfenen Tests sind config-UNABHÄNGIG: PDH/PDL, Volume Profile, # Chartmuster, Liquidity Sweeps testen Signalklassen auf rohen Preisdaten.) CONFIG_DEPS = [ + { + # ⚠ Bewusste Abweichung von der Messung (User-Entscheidung 2026-08-07), + # deshalb hier überwacht — wie `auto_sr_close`. + "key": "auto_emergency_margin_pct", "test": "kontrafaktisch, 1022 Trades", + "validated": "0", + "why": "AKTIV auf 8 seit 2026-08-07 auf User-Wunsch. Kontrafaktisch über " + "1022 echte Trades ist KEINE Schwelle besser als gar kein Stop: " + "ohne Stop +358 € · 3 % −293 · 5 % −639 · 8 % −14 · 15 % −416 · " + "30 % −331 (Δ gegen ohne). 8 % ist die mildeste Variante und " + "praktisch neutral — sie schützt wenig und kostet wenig. Auch je " + "Einstiegsart trägt keine Schwelle robust (bei 'ohne Signal' sieht " + "8–10 % gut aus, aber beide Nachbarn kippen = Rauschen). " + "⚠ Mechanismus aller Früh-Ausstiege hier: Trefferquote steigt, " + "Ertrag fällt (Gewinner-Kappen) — fünfmal unabhängig gemessen. " + "Zurück: auto_emergency_margin_pct = 0.", + }, { "key": "entry_room_atr", "test": "backtest_entryroom.py", "validated": "0.6",