From 9e6e81dd3475468c81008498e2c52b12a204f491 Mon Sep 17 00:00:00 2001 From: Axel Hocks Date: Tue, 4 Aug 2026 11:55:36 +0200 Subject: [PATCH] Backtest-Audit: alle 87 Skripte geprueft Lauffaehigkeit in Ordnung: alle 87 kompilieren, 12 repraesentative (alle die WaveRecommender konstruieren) laufen fehlerfrei. Die heutigen wave_rec- Aenderungen brechen nichts - der Modul-Default _reversal_enabled=True haelt die Altmessungen stabil. Drei Skripte nehmen [TF] [N] statt einer Bar-Zahl als erstes Argument (signal/pullback/htf_filter); mit einer Zahl als TF gibt es KeyError. Kein Defekt, nur die Signatur beachten. angle=-Befund: 11 Skripte, NICHT 26. Methodik-Fehler bei mir selbst, korrigiert: die erste Pruefung per Regex (_build\([^)]*angle\s*=) meldete 26 Treffer - die Zeichenklasse [^)]* bricht an der ersten Klammer ab, sodass Aufrufe wie w._build(..., htf_trend=m30s(T[i]), angle=ang) faelschlich als "ohne Winkel" galten. Die AST-Pruefung ergibt 11 echte Faelle und erkennt zusaetzlich positional uebergebene angle-Argumente. Regex ist fuer Aufruf-Analysen das falsche Werkzeug. Wirkung, gemessen ueber 37.577 M5-Bars: mit Reversal ohne Reversal (live seit heute) Signal weicht ab 19,1 % 1,1 % Konfidenz-Differenz +7,7 -4,4 ueber dem 55%-Gate 79,4->90,6 % 79,4->78,5 % Das Reversal-Abschalten von heute hat die Luecke nebenbei fast geschlossen. Solange das Reversal aktiv war, sahen die 11 Skripte eine Signal-Population, die sich in jedem fuenften Bar unterschied - das betrifft den Grossteil der Projekt-Historie. Ab jetzt sind sie naeherungsweise gueltig. Bewusst NICHT getan: die 11 Skripte "repariert". Ein angle= zu ergaenzen aendert ihre Zahlen - das waere laut Migrations-Regel keine Refaktorierung, sondern eine Neumessung. Sie bleiben unveraendert und reproduzierbar. Co-Authored-By: Claude Opus 5 --- CLAUDE.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 2460f4c..15de0ed 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2804,6 +2804,51 @@ Copiloten aktiv verschlechtern. Offener Kandidat: sie MIT der gemessenen Lesart mitgeben („langer Docht oben; gemessen läuft der Kurs danach eher GEGEN die Kerze") — noch nicht gebaut. +## Backtest-Audit 2026-08-04 — rechnen die Skripte noch korrekt? + +**Anlass:** User-Frage nach dem `angle=`-Fund in `backtest_auto_signal.py`. Prüfung +aller **87** Backtest-/Analyse-Skripte. + +**Lauffähigkeit: ✅ in Ordnung.** Alle 87 kompilieren; 12 repräsentative (alle, die +`WaveRecommender` konstruieren) laufen fehlerfrei. Die heutigen `wave_rec`-Änderungen +(`_reversal_enabled`) brechen nichts — der Modul-Default `True` hält die Altmessungen +stabil. ⚠ Drei Skripte nehmen **`[TF] [N]`** statt einer Bar-Zahl als erstes Argument +(`backtest_signal.py`, `backtest_pullback.py`, `backtest_htf_filter.py`) — mit einer +Zahl als TF quittieren sie mit `KeyError`. Kein Defekt, nur die Signatur beachten. + +**Der `angle=`-Befund: 11 Skripte, nicht 26.** +⚠ **Methodik-Fehler bei mir selbst, korrigiert:** Die erste Prüfung per Regex +(`_build\([^)]*angle\s*=`) meldete **26** Treffer — die Zeichenklasse `[^)]*` bricht an +der ersten Klammer ab, sodass Aufrufe wie +`w._build(..., htf_trend=m30s(T[i]), angle=ang)` fälschlich als „ohne Winkel" galten. +Die AST-Prüfung ergibt **11** echte Fälle (und erkennt zusätzlich Aufrufe, die `angle` +positional übergeben). **Regex ist für Aufruf-Analysen das falsche Werkzeug.** +Betroffen: `backtest_angle.py:78` · `backtest_auto_signal.py:177` · +`backtest_confluence.py:144` · `backtest_dist.py:63` · `backtest_exit.py:150` · +`backtest_htf_filter.py:106` · `backtest_improve.py:91` · `backtest_pullback.py:89` · +`backtest_rev_exit.py:72` · `backtest_signal.py:91` · `backtest_stretch.py:73`. + +**Wie schlimm ist es? Gemessen über 37.577 M5-Bars:** +| | mit Reversal (= bis 03.08.) | **ohne Reversal (= live seit 04.08.)** | +|---|---|---| +| Signal weicht ab | **19,1 %** | **1,1 %** | +| Ø-Konfidenz-Differenz | +7,7 | −4,4 | +| über dem 55 %-Gate | 79,4 → 90,6 % | 79,4 → 78,5 % | +| WARTEN-Anteil (ohne HTF) | — | 20,6 → 21,5 % (+1 Pp) | +⚠ **Das Reversal-Abschalten von heute hat die Lücke nebenbei fast geschlossen.** Solange +das Reversal aktiv war, sahen diese 11 Skripte eine Signal-Population, die sich in jedem +fünften Bar unterschied und systematisch 7,7 Konfidenzpunkte danebenlag — das betrifft +den Großteil der Projekt-Historie. **Ab jetzt sind sie näherungsweise gültig.** +⚠ Die WARTEN-Zeile ist NICHT mit der 43-%-Referenz vergleichbar: für die Messung wurde +`htf_trend` nicht übergeben, der M30-Filter (allein ~27 % der WARTEN) fehlt also. Nur +die **Differenz** (+1 Pp) ist aussagekräftig. + +**Bewusst NICHT getan:** die 11 Skripte „repariert". Ein `angle=` zu ergänzen ändert +ihre Zahlen (~1 %) — das wäre laut Migrations-Regel keine Refaktorierung, sondern eine +Neumessung. Sie bleiben unverändert und reproduzierbar; wo ihre Schlussfolgerung wieder +relevant wird, gehört sie live-treu **neu gerechnet** (Muster: +`backtest_auto_signal_norev.py`). + ## Gesamtprüfung 2026-08-02 (nach `docs/review-prompt.md`) Erster vollständiger Durchlauf des Review-Prompts. **Keine Strategie-Änderung** — alle