M5-Kontextzeile in der M15-Karte statt einer eigenen M5-Setup-Karte

User fragte nach einer M1- oder M5-Setup-Karte und hat der hier gebauten
Variante zugestimmt: eine reine ZUSTANDS-Zeile, ohne Richtung und ohne Banner.

WARUM KEINE ZWEITE KARTE - und diesmal entscheidet eine frische Messung, nicht
eine Meinung. Die entkoppelte Selbstmessung der BESTEHENDEN Karte steht bei
n=342 (gruen + gerichtet, ab dem Hysterese-Stichtag 12.08.):
    30 min  53,5 %  KI [48,2 .. 58,8]   -> enthaelt 50 %
    60 min  49,3 %  KI [44,0 .. 54,5]   -> enthaelt 50 %, liegt DARUNTER
Am 12.08. war die Bedingung fuer ein Ja VORAB fixiert worden: ">=350 Faelle,
Trefferquote ueber 50 %, KI ohne die 50". Die Stichprobe ist jetzt da, die
Bedingung ist NICHT erfuellt. Das ist kein "noch zu wenig Daten" mehr.
Dazu die Messung vom 13.08.: als Handelsregel faellt die Karte durch
(backtest_m15_auto.py, OeR -0,162/-0,094, beide KI ohne Null, schlechter als
die HTF-Richtung UND schlechter als ihr eigenes Gegenteil).

M1 scheitert zusaetzlich an der Arithmetik: Spread/ATR Median 0,319 gegen 0,193
(M5) und 0,104 (M15). Feiner aufloesen macht die EINZIGE gemessene Staerke der
M15-Karte - die Kosten - monoton schlechter. Um 01:00 ist der Spread
1,051xATR_M1, also groesser als die mittlere Kerze; und die M1-Historie ist bei
80 Tagen gedeckelt, zwei Stichproben laegen im selben Regime.

GEBAUT ist deshalb Zustand ohne Urteil: Squeeze-Lage (armiert/Ausbruch/keine
Kompression + Box), Kosten in xATR_M5 mit den Schwellen aus
backtest_realcosts.py (Median 0,193, ab 0,32 Kostenfalle) und der ATR.
Der M5-RAUM wird bewusst NICHT wiederholt - Gate 3b rechnet ohnehin auf M5.

⚠ NUR ZUSAMMENGESETZT, nichts neu gerechnet: wave.squeeze und bid/ask/ATR_M5
stehen im Snapshot ohnehin. Ein zweiter Rechenweg war der Fehler des
Konsens-Pfeils (komplettes zweites _verdict im 5-s-Takt) und ist die Quelle
jeder Divergenz zwischen Karte und Chart.

⚠ Kein Verdict-Gewicht, kein Trade-Trigger, keine Farbampel - dieselbe
Zurueckhaltung wie bei der Kerzen-Anatomie und der Ueberdehnungs-Anzeige.

Live verifiziert: "M5 · keine Kompression (Box 3.52xATR) · Kosten 0.15xATR_M5
guenstig · ATR 0.165". Deploy ueber tools/deploy.py --feld m15_setup.m5
(Punktpfad), alle 5 Schritte gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-19 19:17:18 +02:00
co-authored by Claude Opus 5
parent 618f3a4bee
commit 7915e171d0
3 changed files with 65 additions and 2 deletions
+28
View File
@@ -364,6 +364,34 @@ function renderM15(s) {
+ "gedeckelt, der Verlust laeuft bis zum Stop. Reine Anzeige.";
}
// --- M5-Kontext: reine ZUSTANDS-Zeile, keine Richtung, kein Banner ------
// Bewusst KEINE eigene M5-Karte (User-Entscheidung 19.08.): die entkoppelte
// Selbstmessung dieser Karte steht bei n=342 auf 53,5 % [48,2 .. 58,8] und
// schliesst die 50 nicht aus; als Handelsregel faellt sie durch. Hier steht
// deshalb nur, WIE der M5-Markt gerade aussieht -- ohne Urteil.
const m5El = $("m15-m5");
const m5 = s.m5;
if (m5) {
const t = [];
if (m5.squeeze === "active") {
t.push(`Squeeze AUSBRUCH ${m5.squeeze_dir || ""}`.trim());
} else if (m5.squeeze === "armed") {
t.push("Squeeze armiert" + (m5.box_atr != null ? ` (Box ${m5.box_atr}×ATR)` : ""));
} else {
t.push("keine Kompression"
+ (m5.box_atr != null ? ` (Box ${m5.box_atr}×ATR)` : ""));
}
if (m5.kosten != null) {
// Schwellen aus backtest_realcosts.py: Median 0,193 - ab 0,32 Kostenfalle.
const k = m5.kosten;
t.push(`Kosten ${k.toFixed(2)}×ATR_M5 ${k <= 0.20 ? "günstig" : k < 0.32 ? "normal" : "⚠ teuer"}`);
}
if (m5.atr != null) t.push(`ATR ${Number(m5.atr).toFixed(3)}`);
m5El.textContent = "M5 · " + t.join(" · ");
} else {
m5El.textContent = "M5 · —";
}
const moEl = $("m15-motor");
const seite = (o, lbl) => {
if (!o) return null;
+3 -2
View File
@@ -12,7 +12,7 @@
⚠ LOKAL eingebunden, kein CDN: die PWA laeuft ueber WireGuard
und muss offline funktionieren. -->
<link rel="stylesheet" href="pico.min.css?v=1">
<link rel="stylesheet" href="style.css?v=182">
<link rel="stylesheet" href="style.css?v=183">
</head>
<body>
<!-- Modul-Menü (ganz oben) -->
@@ -122,6 +122,7 @@
gemessen, aber ueber verschiedene Trades. Diese Zeile schliesst die
Luecke. REINE ANZEIGE, blockt nichts. -->
<div class="m15-item" id="m15-motor" title="Was der Signal-Motor GERADE blockt, plus der Raum zum naechsten Gegenlevel je Richtung (M5, dieselbe Rechnung wie das Gate selbst). Unter 0,6xATR ist der Ertrag am Level gedeckelt - gemessen ØR -0,119/-0,067 bei PF 0,42/0,66, also Trefferquote hoch und trotzdem Verlust. ⚠ Gate ③ liest dieselbe Naehe als GUT (ruhende Order AM Level), entry_room als SCHLECHT (Markt-Einstieg mit dem Level als Hindernis). Beides stimmt - fuer verschiedene Trades."></div>
<div class="m15-item" id="m15-m5" title="M5-ZUSTAND, reine Anzeige - KEINE Richtung und KEIN Banner. Bewusst KEINE eigene M5-Setup-Karte (User-Entscheidung 2026-08-19): die entkoppelte Selbstmessung dieser Karte steht bei n=342 auf 53,5 % [48,2 .. 58,8] auf 30 min und 49,3 % auf 60 min - die vorab fixierte Bedingung (>=350 Faelle, KI ohne die 50) ist bei vorhandener Stichprobe NICHT erfuellt. Als Handelsregel faellt die Karte durch (backtest_m15_auto.py: OeR -0,162/-0,094, beide KI ohne Null). Kosten-Schwellen aus backtest_realcosts.py: Median 0,193, ab 0,32 Kostenfalle. Der M5-Raum steht bereits in Zeile 3b."></div>
<!-- ⑥ SELBSTMESSUNG: die Karte zeigt die Trefferquote ihrer EIGENEN
Lesart. ⚠ Jeder Ausfall, der in diesem Projekt je aufgedeckt wurde,
kam aus einer Rueckkopplung — pbreak_predictions entlarvte den
@@ -392,6 +393,6 @@
</div>
<div id="toast" class="toast hidden"></div>
<script src="app.js?v=182"></script>
<script src="app.js?v=183"></script>
</body>
</html>