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:
co-authored by
Claude Opus 5
parent
4f85d2ce75
commit
874ee16e00
@@ -96,8 +96,18 @@ def _htf_sign(C, i, n, atr):
|
||||
|
||||
|
||||
def lauf(w, H, L, C, T, A, SP, EF, ES, AD, HTF, H1, PH, PL, lo, hi,
|
||||
min_conf, nacht, am_level, slip=0.0):
|
||||
"""Ein Durchlauf: sequentiell, EIN Positions-Slot, Live-Dedup."""
|
||||
min_conf, nacht, am_level, slip=0.0, fill="close"):
|
||||
"""Ein Durchlauf: sequentiell, EIN Positions-Slot, Live-Dedup.
|
||||
|
||||
`fill` (2026-08-06 ergaenzt, Default = bisheriges Verhalten, bitgenau):
|
||||
"close" — die Bestaetigung gilt, wenn der Bar-CLOSE das Level bricht.
|
||||
"touch" — die ruhende Stop-Order fuellt bei der ERSTEN BERUEHRUNG, auch
|
||||
wenn der Bar wieder zurueckfaellt. Das ist, was live passiert.
|
||||
⚠ Der Unterschied ist kein Detail: beim Momentum betrug er 0,45 R und drehte
|
||||
+0,40 auf −0,06 (`backtest_momentum_v2.py`), beim Squeeze 0,32 R
|
||||
(`backtest_squeeze_touchfill.py`). "close" konditioniert auf den Bar-Schluss,
|
||||
den eine liegende Order nicht kennen kann.
|
||||
"""
|
||||
def kosten(i, atr):
|
||||
return (SP[i] if SP[i] > 0 else 0.0225) / atr
|
||||
|
||||
@@ -135,7 +145,13 @@ def lauf(w, H, L, C, T, A, SP, EF, ES, AD, HTF, H1, PH, PL, lo, hi,
|
||||
pend = {"dir": d, "level": C[i] + d * _K * atr,
|
||||
"invalid": C[i] - d * _K * atr, "confirmed": False, "bar": i}
|
||||
if not pend["confirmed"]:
|
||||
broke = (C[i] >= pend["level"]) if d > 0 else (C[i] <= pend["level"])
|
||||
if fill == "touch":
|
||||
# Beruehrung genuegt — die Order liegt dort und wird ausgeloest.
|
||||
broke = ((H[i] >= pend["level"]) if d > 0
|
||||
else (L[i] <= pend["level"]))
|
||||
else:
|
||||
broke = ((C[i] >= pend["level"]) if d > 0
|
||||
else (C[i] <= pend["level"]))
|
||||
against = (C[i] <= pend["invalid"]) if d > 0 else (C[i] >= pend["invalid"])
|
||||
if broke:
|
||||
pend["confirmed"] = True
|
||||
|
||||
Reference in New Issue
Block a user