Commit Graph
123 Commits
Author SHA1 Message Date
Axel HocksandClaude Opus 4.8 9f34180bc1 Auto-Squeeze: Wiedereinstiegs-Sperre nach jedem Close + Margin 95%
- 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>
2026-07-28 10:07:27 +02:00
Axel HocksandClaude Opus 4.8 ae6bbb2f35 Chartmuster grafisch: SVG-Skizze in Karte + Trigger/Ziel-Linien im PWA-Chart
- patterns.py: nur AKTIVE, kursnahe Muster (abgearbeitete/Ziel erreicht raus,
  _MAX_DIST_ATR=5.0 Distanz-Filter)
- get_bars liefert bei M30 die Muster (patterns.snapshot) fürs Chart-Overlay
- app.js: _patternSvg-Skizze je Muster-Karte + 2 stärkste Muster als
  Trigger-/Ziel-Preislinien im M30-Chart; Gitternetz dezenter (#10151c)
- style.css: .pt-svg; index.html v=116->117; CLAUDE.md aktualisiert

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-27 19:13:47 +02:00
Axel HocksandClaude Opus 4.8 21d855b163 Chartmuster im MT5-Terminal zeichnen (Datei-Bridge + SR_Levels.mq5 v1.11)
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>
2026-07-27 18:59:25 +02:00
Axel HocksandClaude Opus 4.8 9dc26ad48f backtest_patterns.py + Circuit Breaker aus (User)
- 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>
2026-07-27 18:55:48 +02:00
Axel HocksandClaude Opus 4.8 e5589da08b Neues Modul: Visuelle Chartmuster-Erkennung (core/patterns.py) — reine Anzeige
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>
2026-07-27 18:49:40 +02:00
Axel HocksandClaude Opus 4.8 cd8ee5b01b Circuit Breaker: Tagesverlust-Stopp (daily_loss_limit_pct=8) — Überlebens-Basis
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>
2026-07-27 17:39:55 +02:00
Axel HocksandClaude Opus 4.8 873b67a521 Vertipper-Schutz für Notfall-Stop: Minimum-Floor (emergency_min_eur=3)
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>
2026-07-27 14:36:27 +02:00
Axel HocksandClaude Opus 4.8 fe8b439f1d analyze_pbreak_threshold.py: Recall/Precision der P(break)-Schwelle
Befund: nur 46%/60% der echten Durchbrüche haben P≥40% — Durchbrüche sind über
alle P-Stufen verstreut (Basisrate ~37%, AUC ~0,71). Modell kalibriert
(Precision@40% = 53-57%). Schwelle 0,40 würde Abpraller mitlaufen lassen →
außerhalb des validierten 0,50-0,60-Plateaus. sr_close_pbreak bleibt 0,55.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-27 11:54:43 +02:00
Axel HocksandClaude Opus 4.8 c3295c6a82 Entry-Raum-Gate zurück auf 0,6 (User: zu viel WARTEN)
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>
2026-07-24 22:21:59 +02:00
Axel HocksandClaude Opus 4.8 d61c4a3634 Gesamtempfehlung-Paket: 2 Rollouts, 3 Anzeige-Features, 2 Messungen (v=114)
- 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>
2026-07-24 20:57:56 +02:00
Axel HocksandClaude Opus 4.8 c3c6a8ce5f Gewinn-Close-Automatik wieder AN: 3% Margin beim Öffnen
sr_close_min_gain_pct=3.0 (User-Vorgabe; Notfall-Stop-Automatik bleibt aus).
Retry-sichere Armierung unverändert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 20:21:17 +02:00
Axel HocksandClaude Opus 4.8 0700baa5aa S/R-Close-Schwelle sr_close_pbreak 0,60 → 0,55 (User-Wunsch)
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>
2026-07-24 20:17:45 +02:00
Axel HocksandClaude Opus 4.8 30f08842d2 Gegen-Squeeze-Exit unter Vola-Regimen re-getestet: erneut verworfen
backtest_squeeze_exit_vol.py: echte Squeeze-Entries, 4 Exit-Varianten,
ATR-Terzil-Split + letzte 30 Tage. Effekt ~0 (±0,005 R/Trade), Vorzeichen
kippt zwischen Regimen, Worst-Case in allen Varianten identisch (SL greift
bei echten Brüchen zuerst). 3. Messung derselben Idee, gleiche Antwort —
Live-Exit bleibt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 20:10:54 +02:00
Axel HocksandClaude Opus 4.8 c1994b369a Nacht-Guard für Auto-Squeeze wieder AN (0–7 Uhr keine Trades)
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>
2026-07-24 20:03:13 +02:00
Axel HocksandClaude Opus 4.8 be054f3741 Squeeze × S/R-Close geprüft: Wash, keine Änderung
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>
2026-07-24 19:32:31 +02:00
Axel HocksandClaude Opus 4.8 bfe3c4206c G/V im Header extra-fett (weight 800, analog Gesamtempfehlung, v=113)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 18:46:39 +02:00
Axel HocksandClaude Opus 4.8 d9eafe32f7 Gewinn-Close & Notfall-Stop nicht mehr beim Öffnen setzen
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>
2026-07-24 17:56:49 +02:00
Axel HocksandClaude Opus 4.8 4bc7679ba3 Übersehene font:-Shorthands mitvergrößert (v=112)
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>
2026-07-24 17:50:24 +02:00
Axel HocksandClaude Opus 4.8 25a0c6c826 Schriftgrößen nochmal +2px (v=111, gesamt +4px)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 17:47:47 +02:00
Axel HocksandClaude Opus 4.8 03ef1c75e6 Schriftgrößen global +2px (v=110)
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>
2026-07-24 17:45:26 +02:00
Axel HocksandClaude Opus 4.8 027995d1e7 Gegen-/Stop-Seiten-Anzeige P(Durchbruch) (stop_approach, v=109)
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>
2026-07-24 16:19:39 +02:00
Axel HocksandClaude Opus 4.8 6318817ac1 README.md hinzugefügt (Setup + Architektur-Überblick)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 08:33:29 +02:00
Axel HocksandClaude Opus 4.8 75d28827e8 Initial commit: Oil Trading Bot (MT5, WTI)
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>
2026-07-24 08:29:23 +02:00