Problem: trail.enabled lebte nur im Speicher -> nach jedem restart_server.bat war
das Trailing aus, die (auch per Auto-Squeeze eroeffnete) Position lief nur mit dem
Broker-SL (kein Breakeven/Time-Stop). Die magic-match-Wiedererkennung reaktivierte
es nie; der User musste es manuell einschalten (real 2026-07-29).
Fix:
- emergency_state.json persistiert zusaetzlich "trail" (=trail.enabled) per-Ticket.
- _check_auto_close-Restore-Zweig: erkannte Position + trail war AN -> trail.toggle,
Log "Trailing wiederhergestellt ... nach Neustart". War es AUS (manuelles SL/TP),
bleibt es aus (persistierter Zustand entscheidet, kein TP-Ueberschreiben).
- Change-Detection im _pos_loop persistiert bei jeder Aenderung (auch Selbst-
Deaktivierung bei manueller SL/TP-Erkennung), nur bei Aenderung -> kein I/O je Tick.
Verifiziert: Live-Position 48763789 nach Deploy-Neustart automatisch mit Trailing
wiederhergestellt (Log + Snapshot trail.enabled=True). Keine Loop-Fehler.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Nach Notfall/SL/Time-Stop/manuellem Close eröffnet der Auto-Squeeze ~3 min
nicht in gleicher Richtung wieder (_SQUEEZE_REENTRY_COOLDOWN_S=180). Verhindert
die Open->Instant-Close-Kaskade bei zu engem Stop (real 27.07. -3-EUR-Stop killte
Entry #1 in 16s, Squeeze noch aktiv -> sofort Re-Entry #2).
- _check_auto_close erfasst Flat-Uebergang (_pos_close_ts/_pos_close_dir via
_open_pos_dir); Squeeze-Entry-Pfad prueft ihn nach dem S/R-Cooldown.
- margin_buffer_pct 80 -> 95 (User-Vorgabe)
- CLAUDE.md aktualisiert
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Engine schreibt die top-2 erkannten Muster als PT;name;dir;trigger;target;status
in sr_levels.csv; SR_Levels.mq5 zeichnet Trigger-/Nackenlinie (rot=bear/gruen=bull,
kraeftig) + gepunktete Ziel-Linie + Label. Reine Anzeige. Indikator nach Update
mit F7 neu kompilieren.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- backtest_patterns.py: misst die Chartmuster (echte patterns.py-Logik), 2 Halbjahre.
Befund: ØR sieht positiv aus, aber Ziel-Trefferquote nur 13-38% → positiver R ist
Trailing-Exit-Artefakt (Breakout+Trailing), KEIN Muster-Edge. Deckt sich mit
backtest_doubletop (Ziel-Exit=negativ). Muster bleiben reine Anzeige; Kontrolle
(generischer Breakout) fehlt noch fuer sauberen Beleg.
- daily_loss_limit_pct=0 (Circuit Breaker auf User-Wunsch wieder deaktiviert).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Erkennt aus M30-Swing-Pivots: Doppeltop/-boden, Kopf-Schulter/inverse SKS,
Tasse+Henkel/invers, auf-/absteigendes+symmetrisches Dreieck. Je Muster Richtung,
Trigger/Nackenlinie, Measured-Move-Ziel, Status (bildet sich/bestätigt/ungültig),
Güte. Dashboard-Karte #card-patterns + Disclaimer (v=116). KEIN Signal, kein
Verdict-Gewicht — Signal-Einfluss erst nach Backtest (Muster-Klasse 2x verworfen,
hohe Beweislast). Live getestet: findet bestätigten Doppeltop.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
User-Ziel autonomes Handeln → Notbremse im Code (vorher abgelehnt, reaktiviert).
Erreicht der Tages-P&L (realisiert+offen) -8% der Balance, schließt der Bot die
Position und sperrt neue Auto-Trades bis zum naechsten Tag. _check_circuit_breaker
im _pos_loop (Startup-Grace, ~30s realized-cache, Berlin-Datum-Reset), blockt
Auto-Squeeze, Snapshot + roter Frontend-Banner (v=115). 80%-Margin bleibt (User).
Mit 5 Szenarien getestet.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ein manuell gesetzter Notfall-Stop unter dem Minimum wird als "aus" behandelt.
Root-Cause (2026-07-27): User setzte versehentlich -1 €; der Wert lag unter dem
Spread UND vererbte sich per _emergency_remember auf alle Folge-Trades → jeder
neue Trade wurde in Sekunden per Notfall-Close geschlossen ("sofort geschlossen").
Guard in set_emergency, mit 6 Werten getestet. Live-Notfall-Stop zusätzlich auf
0 geräumt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Am selben Tag von 1,0 auf 0,6 zurück — gemischtes Regime (M15/M30 ab, M5/H1
auf) erzeugte gefühlt zu viele WARTEN-Phasen. 0,6 vs 1,0 = Frequenz-gegen-Edge,
gemessen 1,0 netto besser; User priorisiert Frequenz.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Entry-Raum-Gate 0,6→1,0 (Messung lag vor: beide Hälften besser)
- Konfidenz-Kalibrierung gemessen (analyze_verdict_calibration.py): conf
INVERTIERT zwischen Regimen → keine P(Erfolg)-Aufwertung, kein Konf-Sizing
- verdict_votes-Logging (1×/min) für spätere Copilot/Elliott-Entscheidung
- Order-Dialog zeigt eigenen Ausrichtungs-Split (36/40 Trades ohne Signal: −423€)
- Live-Kosten-Chip (Spread/ATR) im Verdict
- P(break)×Entry-Raum-Freigabe gemessen VERWORFEN (Flip in jeder Schwelle,
backtest_entryroom_pbreak.py) — 13. verworfener Signal-Eingriff
- News-Konflikt-Chip + recommendations.news_score wieder befüllt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
auto_squeeze_skip_night=true (User-Vorgabe): der Bot öffnet nachts keine
autonomen Squeeze-Trades mehr — löst „muss automatisch schließen wenn ich
nicht da bin" durch Nicht-Öffnen, und ist gemessen ohnehin unrentabel
(Nacht-Spread/ATR 0,32–0,50, beide Halbjahre negativ). Tagsüber bleibt der
Auto-Close-Stack (Broker-SL + Trailing + Time-Stop + S/R-Close).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sr_close_min_gain_pct und auto_emergency_margin_pct auf 0 (User-Vorgabe): beim
Eröffnen einer Position wird nichts mehr automatisch armiert, nur manuell im UI
gesetzte Werte greifen. Mechanik bleibt im Code (reaktivierbar via ini).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Zeigt die Durchbruchwahrscheinlichkeit fuer das Level, dem sich der Kurs auf der
Gegen-/Stop-Seite der offenen Position naehert (LONG->Support darunter,
SHORT->Resistance darueber) — reine Anzeige, kein Auto-Close. Vorher per
backtest_pbreak_calibration.py belegt: Modell haelt auf der Gegen-Seite
out-of-sample (AUC 0,68/0,72 in beiden Haelften), niedriger P-Bereich kalibriert.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Headless FastAPI-Backend (server.py + core/engine.py) mit Mobile-PWA (web/),
Strategie-/Backtest-Suite und Doku. Secrets, DB, Logs und Laufzeit-State sind
via .gitignore ausgeschlossen; Config-Vorlage: oil_widget_config.ini.example.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>