diff --git a/CLAUDE.md b/CLAUDE.md index db577a6..5eb93b3 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -3193,7 +3193,7 @@ hatte am 2026-07-30 bereits **2213 ausgewertete Zeilen**, ohne dass jemand hinsa | Verdict-Module auf Prädiktivität (`verdict_votes`) | ≥25 000 Verdicts | 8142 (33 %) | | **Manuelle Trades: Stufe 2** (was trennt Gewinner von Verlierern?) | ≥300 manuelle Trades **mit `ctx_*`** | 0 (Sammlung ab 04.08.) | | **Auto-Squeeze: B5-Abbruchprüfung** (Latte vorab fixiert) | ≥20 Squeeze-Trades ab 01.08. | 2 (10 %) | -| M30-Level-Umstellung live gegenprüfen | ≥30 S/R-Closes seit 30.07. | 17 (57 %) | +| ~~M30-Level-Umstellung live gegenprüfen~~ | **ERLEDIGT 04.08.** — s. u. | ✅ | | M1-Squeeze Variante B | ≥180 Tage `candles_m1` | 14 (8 %) | | News-Score-Prädiktivität | ≥90 Tage Sammlung | 9 (10 %) | @@ -3207,6 +3207,32 @@ bildet den Vorrang jetzt genauso ab wie der Engine-Start; mit einem Szenario ver (runtime `true` gegen validiert `false` → wird gemeldet). Neu überwacht: `auto_signal` (soll `false`) und `auto_squeeze` (soll `true`). +### ✅ M30-Level-Umstellung live gegengeprüft (04.08.) — bestätigt, mit einem Vorbehalt + +| Zeitraum | n | Med. Lots | **EUR/Lot** | Ø Move | +|---|---|---|---|---| +| **vorher** (M5-Level) | 89 | 0,81 | **+17,53** | 0,202 $ | +| **nachher** (M30-Level) | 28 | 0,53 | **+36,92** | 0,427 $ | + +Ertrag **je Lot mehr als verdoppelt**, Ø-Kursbewegung je Trade ebenfalls — deckt sich +mit der Backtest-Erwartung („R-Ertrag rund doppelt") und mit dem Mechanismus (M30-Level +liegen 1,95×ATR auseinander statt 0,61×ATR, der Trade läuft also länger). + +⚠⚠ **Die NORMIERUNG war entscheidend, sonst wäre der Schluss falsch gewesen.** +Unnormiert sah der 04.08. wie der Treiber aus (Ø **+55,41 €** je Trade gegen +19,30 € +im Rest). **Je Lot ist heute aber praktisch identisch zum Rest** (+38,81 gegen +35,87) +— der Unterschied war reine Positionsgröße (Median 1,36 statt 0,46 Lots, weil das +Konto an diesem Tag von ~800 auf ~1.400 € wuchs). Ø-EUR-Vergleiche über Zeiträume mit +unterschiedlicher Positionsgröße sind ungültig; das gehört bei jeder künftigen +Live-Auswertung mitgedacht. + +⚠ **Nicht der Level-Quelle ALLEIN zuzuordnen:** am 31.07. kamen das +P(break)-Nachtraining UND die Schwellensenkung 0,55 → 0,35 dazu. Getrennt: +30.07. (nur M30-Level, altes Modell) n=**8**, +19,88 €/Lot · ab 31.07. (M30 + neues +Modell) n=20, +43,73 €/Lot. Das Fenster mit nur der Umstellung ist zu klein für eine +Zuordnung. **Der kombinierte Effekt ist bestätigt, die Ursachenaufteilung nicht.** +Beide Änderungen waren im Backtest validiert und zeigen live in dieselbe Richtung. + *(erledigt und ausgetragen: P(break)-Genauigkeit → `analyze_pbreak_live.py` 31.07., Modell daraufhin nachtrainiert · Chartmuster-Kontrolltest → 30.07., Muster schlagen die Kontrolle in beiden Hälften, Gewicht 1,0)* diff --git a/measurement_reminder.py b/measurement_reminder.py index 95e6ae0..54e94e2 100644 --- a/measurement_reminder.py +++ b/measurement_reminder.py @@ -145,18 +145,13 @@ CHECKS = [ "→ `auto_squeeze=false` (B5-Rückbau, kein Ego). Sonst weiterlaufen " "lassen. Zahlen: /api/squeeze_monitor bzw. Statistik-Tab.", }, - { - "key": "m30_levels", - "title": "M30-Level-Umstellung live gegenprüfen", - "why": "Seit 2026-07-30 kommen S/R-Level + P(break) aus M30 statt M5 " - "(Backtest: R-Ertrag ~2×, AUC 0,721). Live gegenprüfen: bringt der " - "S/R-Auto-Close jetzt mehr pro Trade als vorher?", - "have": lambda: _q("SELECT COUNT(*) FROM trades WHERE closed_by='sr_close' " - "AND pnl IS NOT NULL AND exit_time >= " - "strftime('%s','2026-07-30')"), - "need": 30, "unit": "S/R-Closes seit der Umstellung", - "cmd": "sr_close-Trades vor/nach 2026-07-30 vergleichen (ØEUR, Trefferquote)", - }, + # (erledigt 2026-08-04: „M30-Level-Umstellung live gegenprüfen" — Ertrag JE LOT + # +17,53 → +36,92 €, Ø-Move je Trade 0,202 → 0,427 $, also verdoppelt wie im + # Backtest erwartet. ⚠ Normierung war entscheidend: unnormiert sah HEUTE wie der + # Treiber aus (Ø +55 € vs +19 €), je Lot ist heute aber praktisch identisch zum + # Rest (+38,81 vs +35,87) — der Unterschied war reine Positionsgröße. + # ⚠ NICHT der Level-Quelle allein zuzuordnen: am 31.07. kamen P(break)-Nachtraining + # und Schwelle 0,55→0,35 dazu; das Fenster mit NUR der Umstellung hat n=8.) # (erledigt 2026-07-30: Chartmuster-Kontrolltest gegen generischen Swing-Bruch — # Muster schlagen die Kontrolle in beiden Hälften (+0,022/+0,108) → Gewicht 1,0) {