M15-Karte: Flacker-Ursache gemessen, Hysterese + EINE Quelle (v=165)
Die Karte wechselte den Zustand alle 12 Sekunden (~1.030/Tag) - der Grund, warum ihre Selbstmessung so stark geclustert war. Mein erster Verdacht (das Level im Wechsel-Schluessel) war falsch. Ausgezaehlt ueber 3.525 Zeilen: status 32,9 %, lesart 32,7 %, level allein nur 7,6 %. Das Level zu entfernen braechte 3.525 -> 3.248, also nichts. Der Zustand selbst zappelt: gap <= 0,5 und das 45/55-Band von P(break) sind stetige Groessen um ihre Schwelle. Das Projekt hatte die Loesung schon (analyze_pbreak_flicker.py, 14.07.: Hysterese +-5 Pp) - die Karte umging sie, weil sie P(break) selbst neu rechnet. Jetzt dieselbe Hysterese auf beide Schwellen: Status gruen ab 0,50 / zurueck erst ueber 0,60; Lesart gerichtet ab 40/60 / zurueck erst innerhalb 45/55. Simuliert: 64 % weniger Wechsel. Zweiter, groesserer Befund: Status und Lesart wurden an DREI Stellen unabhaengig gebildet und wichen bereits ab - der Logger kannte den "kein Veto"-Fall des Frontends nicht, protokollierte also einen anderen Zustand als angezeigt wurde. Jetzt eine Quelle: _m15_setup liefert status/lesart/nah im Snapshot, Logger und Frontend lesen sie. Die alten 3.525 Zeilen sind mit den neuen nicht vergleichbar; die Selbstmessung beginnt faktisch neu (Stichtag 12.08.). Kein Verlust - sie liess vorher ohnehin kein Urteil zu. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e882d795a6
commit
5fb1d7e268
+8
-1
@@ -189,9 +189,16 @@ function renderM15(s) {
|
||||
+ slipTxt;
|
||||
|
||||
// ── Gate 3: Level in Reichweite ──────────────────────────────────────
|
||||
// ⚠⚠ `zOk` kommt seit 2026-08-12 aus dem BACKEND (`s.status`), nicht mehr aus
|
||||
// einem eigenen Schwellenvergleich hier. Grund: die Karte wechselte den
|
||||
// Zustand alle 12 Sekunden — Schwellen-Flattern an `gap ≤ 0,5`. Das Backend
|
||||
// rechnet es EINMAL mit Hysterese (grün ab 0,50, zurück erst über 0,60) und
|
||||
// liefert Status und Lesart mit; Anzeige und Selbstmessung können damit nicht
|
||||
// mehr auseinanderlaufen (sie taten es bereits: der Logger kannte den
|
||||
// „kein Veto"-Fall nicht).
|
||||
const z = (s.zonen || []);
|
||||
const nah = z.filter(x => x.gap_atr15 != null && x.gap_atr15 <= 0.5);
|
||||
const zOk = nah.length > 0;
|
||||
const zOk = s.status ? (s.status === "gruen") : (nah.length > 0);
|
||||
$("m15-zone").className = "m15-item " + (z.length ? (zOk ? "ok" : "warn") : "");
|
||||
// ⚠⚠ RICHTUNGS-LESART, aber BEDINGT auf das Level. Eine FREIE Prognose ist
|
||||
// gemessen unmoeglich (`analyze_reversal.py`: AUC 0,499–0,509 oos und
|
||||
|
||||
+2
-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=164">
|
||||
<link rel="stylesheet" href="style.css?v=165">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Modul-Menü (ganz oben) -->
|
||||
@@ -354,6 +354,6 @@
|
||||
</div>
|
||||
<div id="toast" class="toast hidden"></div>
|
||||
|
||||
<script src="app.js?v=164"></script>
|
||||
<script src="app.js?v=165"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user