Verworfene Setups auf der Ausfuehrungs-Achse — und der Squeeze steht mit auf null

User: "backteste alle verworfenen Signale". Bewusst kein Komplettlauf (der lief
am 04.08., 14 Klassen, alle blieben verworfen) — neu ist genau eine Achse, der
Einstiegspreis, angewandt mit der heutigen Korrektur (Fill bei BERUEHRUNG statt
bei Schluss-Bruch) und nur dort, wo sie greifen kann: stehendes Level +
Ausbruchsrichtung.

Ergebnis (Variante C, 80k M5, 2 Halbjahre):
  KONTROLLE Squeeze  +0,133/+0,293   (reproduziert touchfill — Pipeline ok)
  ORB (4 Varianten)  faellt durch    (bestaetigt 2026-07-17)
  PDH/PDL            +0,246/+0,464
  Asian Range        +0,142/+0,134
  Equal H/L          +0,218/+0,170
Alle drei nachbar-robust (11 Zellen, keine kippt).

⚠ Das sind keine drei neuen Signale: PDH/PDL, Asian-Range-Extrem, Equal H/L und
die Squeeze-Box sind dasselbe — waagerechtes Level aus frueheren Extremen,
gebrochen, ruhende Order, kanonisches Trailing. Deckt sich mit der Kontrolle
"beliebige Box" aus dem Multi-Instrument-Lauf.

⚠⚠ Mit der gemessenen Exit-Slippage bleibt fast nichts uebrig. Beim guenstigsten
Wert (0,0124 $, Tagfenster): PDH/PDL +0,099/+0,386 haelt, Equal H/L duenn, Asian
Range faellt — und der LIVE laufende Auto-Squeeze steht in H1 bei -0,002.
Die Edges dieser Familie liegen in derselben Groessenordnung wie die
Ausstiegskosten, und die Slippage-Zahl ist eine Untergrenze.

Konsequenz: kein neues Setup bauen. Der naechste Hebel ist die
Ausfuehrungsqualitaet am EXIT, nicht ein weiteres Einstiegs-Signal.

Offen und benannt: Volume-Profile-LVN und die Chartmuster-Nackenlinie
qualifizieren sich, wurden aber nicht gemessen (Laufzeit bzw. Detektor).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-06 22:21:06 +02:00
co-authored by Claude Opus 5
parent 45bfc87153
commit 7e03e481ca
4 changed files with 474 additions and 0 deletions
+80
View File
@@ -0,0 +1,80 @@
"""Nachbar-Pruefung der drei Setups, die den vollen Lauf bestanden haben.
Kippt ein Nachbar-Parameter das Vorzeichen, ist der Treffer Rauschen — genau das
Kriterium, an dem ORB (2026-07-17) und die SMC-Sweeps gescheitert sind.
"""
import sys
sys.path.insert(0, r"c:\Users\ah\Downloads\tradingrobot")
from datetime import timedelta
import MetaTrader5 as mt5
from backtest_cost_gate import _atr_series, kennzahlen
import backtest_verworfene_v2 as V
mt5.initialize()
sym = "SpotCrude"
b = mt5.copy_rates_from_pos(sym, mt5.TIMEFRAME_M5, 0, 80000)
point = mt5.symbol_info(sym).point
mt5.shutdown()
H = [float(x["high"]) for x in b]; L = [float(x["low"]) for x in b]
C = [float(x["close"]) for x in b]; T = [int(x["time"]) for x in b]
SP = [float(x["spread"]) * point for x in b]
A = _atr_series(H, L, C); m = len(C) // 2
def zeig(lbl, lv):
k1 = kennzahlen(V.lauf(lv, H, L, C, SP, A, 0, m, "touch"))
k2 = kennzahlen(V.lauf(lv, H, L, C, SP, A, m, len(C), "touch"))
if not k1 or not k2:
print(f" {lbl:<28} — zu wenige"); return False
gut = k1["oer"] > 0 and k2["oer"] > 0 and k1["pf"] > 1 and k2["pf"] > 1
print(f" {lbl:<28} H1 {k1['oer']:>+7.3f} PF {k1['pf']:.2f} n{k1['n']:<5} | "
f"H2 {k2['oer']:>+7.3f} PF {k2['pf']:.2f} n{k2['n']:<5} {'OK' if gut else 'KIPPT'}")
return gut
print("=" * 96)
print(" NACHBAR-PRUEFUNG (Variante C = Beruehrungs-Fill, 80k M5-Bars)")
print("=" * 96)
print("\n PDH/PDL — Gueltigkeitsdauer variiert:")
alle_pdh = True
basis = V.tagesextrem(H, L, T)
alle_pdh &= zeig("voller Folgetag (Basis)", basis)
for kuerz in (0.5, 0.25):
lv = [(a, a + int((bb - a) * kuerz), l, d) for a, bb, l, d in basis]
alle_pdh &= zeig(f"nur erste {int(kuerz*100)} % des Tages", lv)
print("\n Asian Range — Fenster variiert:")
alle_asia = True
alle_asia &= zeig("0008 Uhr (Basis)", V.asia(H, L, T))
for h_ende in (7, 9):
orig = V.asia.__code__
lv = []
tag, sam = None, []
for i in range(len(H)):
bz = V._berlin(T[i])
if bz.date() != tag:
tag, sam = bz.date(), []
if bz.hour < h_ende:
sam.append(i)
elif sam and bz.hour == h_ende and bz.minute < 5:
hi = max(H[j] for j in sam); lo = min(L[j] for j in sam)
bis = i
while bis < len(H) - 2 and V._berlin(T[bis]).date() == tag:
bis += 1
lv.append((i, bis, hi, +1)); lv.append((i, bis, lo, -1)); sam = []
alle_asia &= zeig(f"00{h_ende:02d} Uhr", lv)
print("\n Equal H/L — Toleranz und Gueltigkeit variiert:")
alle_eq = True
alle_eq &= zeig("tol 0.15 · 120 Bars (Basis)", V.equal_hl(H, L, A))
for tol in (0.10, 0.25):
alle_eq &= zeig(f"tol {tol} · 120 Bars", V.equal_hl(H, L, A, tol=tol))
for g in (60, 240):
alle_eq &= zeig(f"tol 0.15 · {g} Bars", V.equal_hl(H, L, A, gueltig=g))
print()
print("=" * 96)
for n, ok in (("PDH/PDL", alle_pdh), ("Asian Range", alle_asia), ("Equal H/L", alle_eq)):
print(f" {n:<14}{'ROBUST' if ok else 'KIPPT bei den Nachbarn — verworfen'}")
print("=" * 96)