Gesamtempfehlung: Selbst-Kalibrierung, voller Ausrichtungs-Split, Block-Gruende,

Elliott entmachtet (v=144)

Vier Verbesserungen, alle aus dem Gemessenen abgeleitet — kein neues Signal.
Ausgangspunkt: die Karte hat genau eine belegte Funktion, das Veto; als Prognose
ist sie ein Muenzwurf (48-51 % ueber 1.071 Episoden).

(1) SELBST-KALIBRIERUNG. Neue Tabelle rec_outcomes: eine Zeile je EPISODE
    (Richtungswechsel, nicht je Minute), Auswertung ~alle 5 min gegen candles_m1
    nach 30/60 min, Snapshot rec_track, Zeile #vd-selfcal. Gegen 50 % zu lesen.
    Warum der groesste Hebel: die Qualitaet war bis heute unsichtbar und musste
    auf Nachfrage rueckwirkend gemessen werden. Dasselbe Muster
    (pbreak_predictions) hat den Ausfall des P(break)-Modells LIVE aufgedeckt.
    Mit 4 Szenarien getestet (tests_rec_outcomes.py). Zwei Fehlschlaege dabei
    waren Testfehler, keine Code-Fehler — dokumentiert.

(2) alignment_stats auf die VOLLE Historie (1.216 statt 40 Trades) und
    zusaetzlich je Lot. Absolute Euro-Vergleiche sind bei wechselnder
    Positionsgroesse ungueltig (Lehre 04.08.). Damit steht die einzige
    beidhaelftig robuste Aussage der Karte auf ihrer vollen Stichprobe.

(3) Block-Gruende sichtbar (block_mix -> #vd-blocks): "heute X % ohne Block ·
    entry_room … · min_conf …". Bisher nur per DB-Abfrage zu beantworten.

(4) ELLIOTT: Verdict-Gewicht 1,0 -> 0. Gemessen ueber 15.544 Zeilen hatte es mit
    1.384 Episoden die groesste Stichprobe der Tabelle und ist darin flach
    (-0,075/+0,032, 50 % Treffer) — bei 25,9 % Einfluss auf die Nadel, weil es
    in nur 1 % der Zeilen schweigt. Chip bleibt, Stimme entfaellt.
    ⚠ Folge: die Nadel schlaegt staerker aus (real +0,33 -> +1,00).

⚠ Namenskollision beim Bau gefunden und behoben: die neue Klasse hiess zuerst
.vd-track — so heisst bereits die Schiene der Bias-Nadel; sie waere
ueberschrieben worden. Jetzt .vd-selfcal.

Live verifiziert: alignment je Lot, block_mix (93 von 1381 ohne Block),
rec_outcomes angelegt, Elliott weight=0 bei erhaltenem Chip, v=144 ausgeliefert,
eine Instanz auf Port 8000.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-06 23:21:52 +02:00
co-authored by Claude Opus 5
parent 4f85d2ce75
commit 874ee16e00
9 changed files with 705 additions and 48 deletions
+54 -1
View File
@@ -3608,7 +3608,60 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
Anzeige zu einer Erwartung ein, die die Messung nicht deckt.
⚠ Bewusst **statisches Markup, kein JS** — es ist ein Dauerhinweis, kein Zustand;
damit entfällt auch jedes Null-Risiko beim Render (s. Cache-Regel oben).
- Asset-Version aktuell **v=143** (in `web/index.html` hochzählen, siehe Workflows).
- **⚠⚠ VIER VERBESSERUNGEN AN DER GESAMTEMPFEHLUNG (User-Vorgabe 2026-08-06,
v=144) — alle aus dem Gemessenen abgeleitet, KEIN neues Signal.** Ausgangspunkt:
die Karte hat genau eine belegte Funktion, das **Veto** (s. Ausrichtungs-Split);
als Prognose ist sie ein Münzwurf. Verbessert wird also das Veto und die
Sichtbarkeit — nicht die Vorhersage.
**(1) SELBST-KALIBRIERUNG — die Karte zeigt ihre eigene Trefferquote.**
Neue Tabelle **`rec_outcomes`** (DB-Backup `…bak-2026-08-06-recoutcomes`):
`history.log_rec_outcome` schreibt **eine Zeile je EPISODE** (Richtungswechsel,
nicht je Minute — sonst zählt man dieselbe Marktlage dutzendfach);
`engine._evaluate_rec_outcomes` trägt ~alle 5 min im Trend-Loop den
Forward-Return nach 30/60 min aus `candles_m1` nach (⚠ Broker-Offset, wie bei
`_evaluate_pbreak_predictions`). `history.rec_accuracy(200)` → Snapshot
**`rec_track`** → Zeile **`#vd-selfcal`**.
**Warum das der grösste Hebel ist:** die Qualität der Empfehlung war bis heute
unsichtbar — sie musste auf Nachfrage rückwirkend gemessen werden. Dasselbe
Muster (`pbreak_predictions`) hat den Ausfall des P(break)-Modells LIVE
aufgedeckt, was kein Backtest konnte. Die Zeile ist **gegen 50 % zu lesen**,
nicht gegen 0. Fehlen Bars (Wochenende), bleibt die Zeile offen statt falsch
bewertet; nach 6 h wird sie geschlossen. **Mit 4 Szenarien getestet**
(`tests_rec_outcomes.py`): Episoden-Dedup · WARTEN re-armt · Auswertung inkl.
Offset in beide Richtungen · fehlende Bar → bleibt offen · Aggregation.
⚠ Zwei Fehler dabei waren MEINE Testfehler, nicht Code-Fehler: die Test-Kerzen
aus dem Vorabschnitt lagen im Fenster des nächsten, und die DB-Kopie enthält
**echte** `candles_m1` — der Fall „keine Bar" entsteht erst, wenn das Fenster
wirklich geleert wird.
**(2) AUSRICHTUNGS-SPLIT auf die volle Historie + je Lot.** `alignment_stats`
lief auf den **letzten 40** Trades und zeigte absolute Euro. Jetzt über **alle
1.216** (Default `last_n=0`) und zusätzlich **`pnl_lot`** — absolute
Euro-Vergleiche sind bei wechselnder Positionsgrösse ungültig (Lehre 04.08.).
Der Order-Dialog zeigt beides. Damit steht die einzige beidhälftig robuste
Aussage der Karte auf ihrer vollen Stichprobe: **gegen das Signal 6,60 €/Lot**.
**(3) BLOCK-GRUND SICHTBAR** (`engine._block_mix_cached` → Snapshot
`block_mix``#vd-blocks`): „heute X % ohne Block · entry_room … · min_conf …".
Auf die Frage „warum gab es so wenige Empfehlungen?" war bisher eine DB-Abfrage
nötig. ~120 s gecacht, reine Anzeige.
**(4) ELLIOTT ENTMACHTET — Verdict-Gewicht 1,0 → 0** (gemessen
`analyze_verdict_modules.py`, 15.544 Zeilen). Elliott hatte mit **1.384
Episoden die grösste Stichprobe der ganzen Tabelle** und ist darin **flach**:
Überschuss 0,075/+0,032 ×ATR, **50 % Treffer**. Gleichzeitig war es mit
**25,9 % die zweitlauteste Stimme** — weil es in nur 1 % der Zeilen schweigt.
Mit H1 (38,1 %) bildete es einen Dauerhintergrund von ~64 %. **Der Chip bleibt**
(das Ziel ist als Kontext nützlich), nur die Stimme entfällt.
**Sichtbare Folge: die Nadel schlägt stärker aus.** Real beim Umbau
+0,33 → **+1,00**, weil nur noch H1 (1,5) und Liq-Trend (0,5) sprachen. Mit
wenigen sprechenden Modulen kann ein einzelnes die Nadel auf ±1 ziehen — das ist
ehrlicher als eine künstlich gedämpfte Nadel, sieht aber dramatischer aus.
**Reine Anzeige-Änderung** — die Order steuert die Welle über die Headline,
nicht der Konsens. Zurück: `ew = 1.0 if ev != 0 else 0.0` in `_verdict`.
**Nicht angefasst, aber auffällig** (für die 25.000-Verdict-Messung):
**Orderbuch** ist über 2.688 Episoden beidhälftig NEGATIV (0,054/0,066,
49 % Treffer) bei Gewicht 0,5 — der einzige konsistent falsche Beitrag.
**Muster** (+1,27/+0,67, 58 %, n=88) und **Liq-Trend** (+0,20/+0,32, n=132)
sehen gut aus, sind aber zu dünn. Alle übrigen kippen zwischen den Hälften.
- Asset-Version aktuell **v=144** (in `web/index.html` hochzählen, siehe Workflows).
Schriftgrößen 2026-07-24 global **+4px** (2× je +2px auf User-Wunsch; Body-Basis
14→18px). ⚠ Betrifft in `style.css` sowohl `font-size:Npx` (71×) ALS AUCH die
`font:<weight> Npx/…`-**Shorthand** (3×: `.ms-chip`/`.ms-bos-lbl`/`.sqm-badge`