Roast-Punkte 1-3: Erfolgskontrolle erweitert, flip_close sichtbar, WARTEN-Massstab

korrigiert - und ein eigener Messfehler gefunden

(3) backtest_dist_gated.py: der 43-%-Massstab war UNGUELTIG. backtest_dist.py
misst _build ALLEIN, ohne Breakout-Bestaetigung und ohne Entry-Raum-Gate - genau
die beiden sind live die groessten Blocker. Ueber 80k Bars: nur _build 77,9 %
gerichtet, voller Live-Stack 19,5 %, live 7,2 %. Der reale Abstand ist 12,3 Pp,
nicht 50. Damit ist der "93 statt 43 %"-Alarm entschaerft, der den TF-Churn-Fix
ausgeloest hat; die dortige Erfolgskontrolle ist hinfaellig. Ein Rest bleibt
(min_conf live 16,3 % gegen 0,9 % in der Sim) und ist als naechster Ansatzpunkt
notiert.

⚠ Dabei EIGENEN Fehler gefunden: set_entry_room(0.6) fehlte in DREI heute neu
gebauten Skripten - _entry_room_atr ist im Konstruktor 0.0, _room_gate ist dann
ein No-op. Aufgefallen, weil entry_room in der Verteilung mit 0 % auftauchte
statt mit 35 %. Alle drei korrigiert und die SIG-Messung WIEDERHOLT: Population
aendert sich stark (n 967->295 / 1327->524), die Schlussfolgerung nicht - Market
in 7 von 8 Feldern negativ, am Level bestehen alle vier Schwellen
(OeR +0,392/+0,356, PF 2,37/2,39), Slippage-Test haelt bis 0,20 xATR. Die
heutige Bau-Entscheidung ist gedeckt.

(2) auto_flip_close ist jetzt sichtbar (#flip-note, v=139) - mit Schwelle,
Zaehler UND der Messung im Text ("gemessen in beiden Halbjahren negativ"). Ein
blanker Zaehler haette wie ein Erfolg ausgesehen. Der Exit bleibt an.

(1) analyze_squeeze_entry_gap.py erfasst jetzt BEIDE Bot-Pfade (Squeeze +
Signal), Reminder entsprechend erweitert - sonst wartet er auf eine Population,
die vielleicht nie kommt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-05 12:45:36 +02:00
co-authored by Claude Opus 5
parent 90d77a2305
commit 516f1eaa7f
8 changed files with 326 additions and 24 deletions
+19
View File
@@ -888,6 +888,25 @@ function render(d) {
if (t) { calEl.className = "news-conflict warn"; calEl.textContent = t; }
else { calEl.className = "news-conflict hidden"; calEl.textContent = ""; }
}
// Auto-Flip-Close sichtbar machen (2026-08-05). Dieser Exit schliesst echte
// Positionen, ist aber in BEIDEN Halbjahren gemessen NEGATIV (92/160 R,
// backtest_flipclose2.py) und lief bis heute voellig ohne Anzeige. Die Zeile
// nennt bewusst die Messung mit — sonst sieht ein Zaehler nach Erfolg aus.
const flipEl = $("flip-note");
if (flipEl) {
if (d.flip_close) {
const n = d.flip_close_count || 0;
const r = d.flip_close_min_r;
flipEl.className = "news-conflict warn";
flipEl.textContent = `🔄 Auto-Flip-Close AKTIV (ab ${r != null ? r : "?"}×ATR im Plus)`
+ ` — bisher ${n}× ausgelöst · ⚠ gemessen in beiden Halbjahren negativ`;
flipEl.title = "Schliesst die Position, wenn die Empfehlung dreht. "
+ "backtest_flipclose2.py: 92 R (H1) / 160 R (H2) gegenueber Nichtstun. "
+ "Laeuft auf ausdruecklichen Wunsch; abschalten via [trading] auto_flip_close=false.";
} else {
flipEl.className = "news-conflict hidden"; flipEl.textContent = "";
}
}
// Schalter-Zustand: Auto-Close am S/R an/aus + Mindestgewinn
const srBtn = $("srclose-btn");
if (srBtn) {
+8 -2
View File
@@ -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=138">
<link rel="stylesheet" href="style.css?v=139">
</head>
<body>
<!-- Modul-Menü (ganz oben) -->
@@ -102,6 +102,12 @@
<div class="pos-stophint hidden" id="pos-stophint"></div>
<div class="news-conflict hidden" id="news-conflict"></div>
<div class="news-conflict hidden" id="cal-note"></div>
<!-- Auto-Flip-Close: schließt eine Position, wenn die Empfehlung dreht.
⚠ GEMESSEN in BEIDEN Halbjahren negativ (92/160 R,
backtest_flipclose2.py), läuft auf ausdrücklichen User-Wunsch. Hatte
bis 2026-08-05 KEINE Anzeige — ein Exit, der echtes Geld bewegt und den
niemand sieht. Jetzt sichtbar, damit die Entscheidung informiert ist. -->
<div class="news-conflict hidden" id="flip-note"></div>
<div class="reasons" id="wave-reasons"></div>
<div class="kv"><span>Setup</span><b id="wave-setup"></b></div>
<div class="kv"><span>Lauf</span><b id="wave-move"></b></div>
@@ -281,6 +287,6 @@
<div id="toast" class="toast hidden"></div>
<script src="lightweight-charts.standalone.production.js?v=114"></script>
<script src="app.js?v=138"></script>
<script src="app.js?v=139"></script>
</body>
</html>