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>
Liegt im validierten Optimum-Plateau 0,50–0,60 (backtest_srclose_prob.py);
Hysterese-Zone verschiebt sich auf 50/60.
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>
backtest_squeeze_srclose.py: S/R-Auto-Close auf Squeeze-Trades vs. reiner
Trailing-Exit ist ein Nullsummen-Wash (H1 +7R, H2 −12R) — der P(break)-Gate
lässt echte Runner (P≥60%) laufen, PF/Tail bleiben erhalten. Kein Ausschluss
der Squeeze-Trades vom S/R-Close nötig.
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>
Die drei `font:<weight> Npx/…`-Shorthands (.ms-chip/.ms-bos-lbl/.sqm-badge) waren
bei den beiden +2px-Runden ausgelassen worden (Skript erfasste nur `font-size`);
jetzt +4px nachgezogen → wirklich ALLE Schriftgrößen einheitlich +4px.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Alle font-size in style.css (Body-Basis 14→16px) und die Chart-fontSize in app.js
um 2px erhöht (User-Vorgabe „alle Schriftarten +2pt").
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>