M15-Karte: Gate 3b zeigt Motor-Block + RAUM je Richtung
Anlass Trade #49671601 (-87,03 EUR). Die Praemisse "SL trotz LONG- Empfehlung" stimmte nicht: 138 Zeilen zwischen Ein- und Ausstieg, 100 % WARTEN (entry_room 76 %, breakout_pending 19 %, min_conf 5 %). Gesehen wurde "verboten: SHORT" - ein Veto. Dritter Fall derselben Veto->Richtung-Umwandlung in dieser Karte (Code 08.08., Geometrie 10.08. frueh, jetzt die Lesart). Der eigentliche Befund: entry_room und Gate 3 lesen DIESELBE Tatsache ("ein Level ist nah") mit umgekehrtem Vorzeichen. Beide gemessen, beide richtig - ueber verschiedene Trades (Markt-Einstieg mit dem Level als Hindernis vs. ruhende Order AM Level). Die Karte zeigte nur die gruene Haelfte; die Block-Grund-Zeile war mit der Gesamtempfehlung verschwunden. Gebaut: Zeile 3b (#m15-motor) mit block_reason im Klartext + Raum je Richtung. Reine Anzeige. Das Status-Banner bleibt bewusst unveraendert - es auf gelb zu ziehen waere eine Strategie-Aenderung, und die einzige Live-Zahl dafuer (-9,91 vs +3,24 EUR/Lot, n=76) hat ein KI, das die Null enthaelt. - wave_rec.room_info(): EINE Implementierung fuer Gate und Anzeige, _room_gate rechnet jetzt darueber (kein Nachbau) - tests/test_room_info.py: Bitgleichheit ueber 2.000 Zufallslagen x 3 Signale, Gate feuerte >300x; Grenzfall-Test fuer die Rundung - v=160 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
5474c2be61
commit
47c596ed70
+50
@@ -256,6 +256,56 @@ function renderM15(s) {
|
||||
? "④ erwartete Spanne · " + r.map(x => `${x.minutes}′ ${f(x.lo, 2)}–${f(x.hi, 2)}`).join(" · ")
|
||||
: "④ erwartete Spanne —";
|
||||
}
|
||||
// ── ③b RAUM + Motor-Zustand ──────────────────────────────────────────
|
||||
// ⚠⚠ ANLASS: Trade #49671601 (10.08., −87 €). Die Karte stand auf GRÜN,
|
||||
// während der Signal-Motor zu 76 % mit `entry_room` blockte — der Widerstand
|
||||
// lag 0,07×ATR voraus, der Stop 4,7×ATR zurück. Die Karte prüfte, ob ein
|
||||
// Level NAH ist, nie ob RAUM dahinter ist. Genau das steht jetzt hier.
|
||||
// ⚠ Reine Anzeige: keine Richtung, kein Blockieren der Buttons.
|
||||
const mo = s.motor || {};
|
||||
const rm = mo.raum || {};
|
||||
const moEl = $("m15-motor");
|
||||
const seite = (o, lbl) => {
|
||||
if (!o) return null;
|
||||
if (o.level == null) return `${lbl} frei`;
|
||||
return `${lbl} ${o.dist_atr}×ATR${o.frei ? "" : " ⚠"}`;
|
||||
};
|
||||
if (mo.block) {
|
||||
// Der Motor blockt — das ist die Information, die gefehlt hat.
|
||||
const gr = {
|
||||
entry_room: "kein Raum zum Gegenlevel",
|
||||
breakout_pending: "Bestätigung läuft noch",
|
||||
min_conf: `Konfidenz ${mo.conf_pct ?? "?"} % zu schwach`,
|
||||
htf_counter: "gegen den M30-Trend",
|
||||
stretch: "überdehnt",
|
||||
deadband: "Totband — kein Trend",
|
||||
eia: "EIA-Blackout",
|
||||
dead_hour: "gesperrte Stunde",
|
||||
stale: "Daten veraltet",
|
||||
no_data: "keine Daten"
|
||||
}[mo.block] || mo.block;
|
||||
moEl.className = "m15-item " + (mo.block === "entry_room" ? "warn" : "");
|
||||
moEl.textContent = `③b Motor blockt: ${gr}`;
|
||||
} else if (mo.signal) {
|
||||
moEl.className = "m15-item ok";
|
||||
moEl.textContent = `③b Motor frei · ${mo.signal}`;
|
||||
} else {
|
||||
moEl.className = "m15-item";
|
||||
moEl.textContent = "③b Motor —";
|
||||
}
|
||||
const teile = [seite(rm.long, "▲"), seite(rm.short, "▼")].filter(Boolean);
|
||||
if (teile.length) {
|
||||
moEl.textContent += ` · Raum ${teile.join(" / ")}`
|
||||
+ (rm.gate ? ` (Gate ${rm.gate})` : "");
|
||||
}
|
||||
moEl.title = "Was der Signal-Motor GERADE blockt, plus der Raum zum nächsten "
|
||||
+ "Gegenlevel je Richtung (M5 — dieselbe Rechnung wie das Gate selbst, kein "
|
||||
+ "Nachbau). Unter 0,6×ATR ist der Ertrag am Level gedeckelt: gemessen "
|
||||
+ "ØR −0,119/−0,067 bei PF 0,42/0,66 — Trefferquote hoch und trotzdem "
|
||||
+ "Verlust. ⚠ Gate ③ liest dieselbe Nähe als GUT (ruhende Order AM Level), "
|
||||
+ "entry_room als SCHLECHT (Markt-Einstieg mit dem Level als Hindernis). "
|
||||
+ "Beides stimmt — für verschiedene Trades. Blockt nichts.";
|
||||
|
||||
rEl.title = "Reine Geometrie auf dem Kegel: liegt das Ziel im 80-%-Band des "
|
||||
+ "Horizonts? Das Ziel wird NUR in der von ② erlaubten Richtung gebildet — "
|
||||
+ "ein rein geometrisches Ziel zeigte am 10.08. auf die verbotene Seite. "
|
||||
|
||||
+9
-2
@@ -6,7 +6,7 @@
|
||||
<meta name="theme-color" content="#0d1117">
|
||||
<title>Oil · MT5</title>
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<link rel="stylesheet" href="style.css?v=159">
|
||||
<link rel="stylesheet" href="style.css?v=160">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Modul-Menü (ganz oben) -->
|
||||
@@ -109,6 +109,13 @@
|
||||
<div class="m15-item" id="m15-kosten" title="Spread geteilt durch ATR_M15. Auf M15 gemessen 0,104 gegen 0,193 auf M5 - hier ist die groebere Zeitebene echt im Vorteil. Schwellen 0,20 / 0,32 aus backtest_realcosts.py.">—</div>
|
||||
<div class="m15-item" id="m15-zone" title="Naechstes STEHENDES Level (M30-Pivots, dieselbe Quelle wie Chart und S/R-Close) mit Abstand und Durchbruchwahrscheinlichkeit. ⚠ P(break) ist live derzeit rund 7 Pp zu niedrig kalibriert.">—</div>
|
||||
<div class="m15-item" id="m15-reich" title="Erwartete Spanne aus core/cone.py - out-of-sample geprueft, die 80-%-Baender treffen real 77 %. Sagt WIE WEIT, nicht wohin.">—</div>
|
||||
<!-- ③b RAUM + MOTOR-ZUSTAND (2026-08-10, nach Trade #49671601 / -87 EUR).
|
||||
Die Karte zeigte GRUEN, waehrend der Signal-Motor zu 76 % mit
|
||||
entry_room blockte: dieselbe Tatsache ("ein Level ist nah") wird von
|
||||
Gate ③ als GUT und von entry_room als SCHLECHT gelesen - beide
|
||||
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>
|
||||
<!-- ⑥ 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
|
||||
@@ -347,6 +354,6 @@
|
||||
</div>
|
||||
<div id="toast" class="toast hidden"></div>
|
||||
|
||||
<script src="app.js?v=159"></script>
|
||||
<script src="app.js?v=160"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user