Wiedervorlage fuer den S/R-Wiedereinstieg als pruefbare Bedingung
User fragte "Wiedervorlage fuer wann?" - "irgendwann" ist keine. Jetzt als CHECKS-Eintrag im Reminder mit automatisch pruefbarer Bedingung: 500 entkoppelte Faelle "Gate schliesst, Level bricht doch" aus pbreak_predictions (predicted=bounce, outcome=break) ab dem Nachtrainieren. Stand 55/500, ~4,9/Tag -> faellig um den 10.11.2026. Schwelle bewusst bei 500: loest einen wahren OeR ab ~0,118 auf und deckt damit die UNTERE Backtest-Schaetzung (+0,12) ab. Bei n=175 (~25 Tage) waere nur OeR >= 0,20 aufloesbar - die Bedingung liefe ab, ohne entscheiden zu koennen. Genau dieser Fehler steckte in pbreak_accuracy_v2 (Faktor 10 zu frueh faellig). ⚠ Eigener Fehler beim Aufsetzen, dokumentiert: ich hatte "roh 193 = entkoppelt 193" gemessen und daraus ~17 Faelle/Tag geschlossen. schluessel_level_stunde ist eine FABRIK und muss aufgerufen werden - uebergibt man sie selbst, ist jeder Schluessel ein neues Funktionsobjekt und es wird nichts dedupliziert. Richtig sind 55 = ~4,9/Tag, also 3 Monate statt 3 Wochen. Projektweit geprueft: die zwei echten Verwendungen in analyze_divergence.py rufen sie korrekt auf (mit Spaltennummern) - nur die Ad-hoc-Auswertung war betroffen, die D0-Zahlen stehen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
2b668b8fa2
commit
b85dd010ab
@@ -49,6 +49,55 @@ def _days_since(iso: str) -> float:
|
||||
# have = aktueller Stand · need = Schwelle · unit = Anzeigeeinheit
|
||||
# cmd = was zu tun ist, wenn fällig
|
||||
CHECKS = [
|
||||
{
|
||||
# ⚠⚠ WIEDERVORLAGE aus dem Backtest vom 2026-08-12
|
||||
# (`backtest_srclose_reentry.py`). Die Frage des Users: wenn das
|
||||
# P(break)-Gate schliesst („Level haelt") und die Linie bricht doch —
|
||||
# lohnt der Wiedereinstieg? Ergebnis ueber 2 Halbjahre:
|
||||
# 0,3×ATR H1 +0,119 [−0,138 … +0,387] · H2 +0,196 [+0,065 … +0,332]
|
||||
# 0,5×ATR H1 −0,043 · H2 +0,043
|
||||
# 0,7×ATR H1 +0,079 · H2 +0,014
|
||||
# Die vorab fixierte Regel ist verfehlt (H1s KI enthaelt die Null, und
|
||||
# der Nachbar 0,5 dreht H1 negativ). ABER: der OeR ist bei 0,3 in BEIDEN
|
||||
# Haelften positiv, und zwei gleichgerichtete Haelften sind mehr als eine
|
||||
# — „KI enthaelt 0" heisst nicht widerlegt, sondern nicht belegt.
|
||||
# ⚠ Der Backtest kann NICHT besser werden: H1 ist feste Historie, und die
|
||||
# M5-Tiefe des Brokers ist bei 80k Bars gedeckelt. Was waechst, sind
|
||||
# LIVE-Faelle — und die stehen bereits in `pbreak_predictions`
|
||||
# (predicted='bounce' + outcome='break' = genau dieser Fall).
|
||||
# ⚠⚠ ENTKOPPELT ZAEHLEN — und das ist nicht kosmetisch. Beim Aufsetzen
|
||||
# dieser Bedingung habe ich zuerst „roh 193 = entkoppelt 193" gemessen
|
||||
# und daraus ~17 Faelle/Tag geschlossen. Falsch: `schluessel_level_stunde`
|
||||
# ist eine FABRIK und muss AUFGERUFEN werden; uebergibt man sie selbst,
|
||||
# ist jeder Schluessel ein neues Funktionsobjekt und es wird nichts
|
||||
# dedupliziert. Richtig sind **55** Faelle = **~4,9/Tag**.
|
||||
# (Die zwei echten Verwendungen in `analyze_divergence.py` rufen sie
|
||||
# korrekt auf — nur die Ad-hoc-Auswertung war betroffen.)
|
||||
# SCHWELLE 500: loest einen wahren OeR ab ~0,118 auf (n > (1,96·1,35/OeR)²
|
||||
# bei der gemessenen SD ~1,35) und deckt damit auch die UNTERE
|
||||
# Backtest-Schaetzung (+0,12) ab. Bei ~4,9/Tag sind das **~3 Monate**.
|
||||
# ⚠ Bewusst NICHT kleiner: bei n=175 (~25 Tage) waere nur ein OeR ≥0,20
|
||||
# aufloesbar — die Bedingung liefe ab, ohne entscheiden zu koennen.
|
||||
# Genau dieser Fehler steckte in `pbreak_accuracy_v2` (Faktor 10 zu
|
||||
# frueh faellig). Lieber spaet und entscheidbar als frueh und wertlos.
|
||||
"key": "srclose_reentry",
|
||||
"title": "Wiedereinstieg nach S/R-Close erneut prüfen (Live-Daten)",
|
||||
"why": "Backtest 2026-08-12 nicht entscheidbar: bei 0,3×ATR "
|
||||
"Bestätigung ØR +0,119/+0,196 — beidhälftig positiv, aber H1s "
|
||||
"95-%-KI enthält die Null und der Nachbar 0,5 kippt H1. Der "
|
||||
"Backtest kann nicht besser werden (H1 ist feste Historie); "
|
||||
"was wächst, sind Live-Fälle. Auswerten: die Fälle mit "
|
||||
"predicted='bounce' und outcome='break' gegen den kanonischen "
|
||||
"Exit rechnen (Vorlage: analyze_srclose_reentry.py) und gegen "
|
||||
"die Backtest-Erwartung +0,12…+0,20 halten.",
|
||||
"have": lambda: _q(
|
||||
"SELECT COUNT(*) FROM (SELECT DISTINCT ROUND(level,2), ts/3600 "
|
||||
"FROM pbreak_predictions WHERE predicted='bounce' "
|
||||
"AND outcome='break' AND ts >= 1785492000)"), # 31.07.2026 12:00
|
||||
"need": 500,
|
||||
"unit": "entkoppelte Fälle 'Gate schliesst, Level bricht doch' ab 31.07.",
|
||||
"cmd": "python analyze_srclose_reentry.py (bzw. auf pbreak_predictions erweitern)",
|
||||
},
|
||||
{
|
||||
# ERLEDIGT 2026-07-31 (analyze_pbreak_live.py, 2275 Vorhersagen): das Modell
|
||||
# hält live NICHT — AUC 0,539 statt 0,71, Kalibrierung sagt 8 % wo 39 %
|
||||
|
||||
Reference in New Issue
Block a user