FIX: SL/TP-Feld rundete auf 2 Nachkommastellen - Stop verschob sich beim Speichern

User: "SL war auf 84,86 laut Dashboard" (nach dem Close von T=50360258).

ZWEI BEFUNDE, und der zweite ist der eigentliche:

(1) Die 84,86 gehoerten zum NAECHSTEN Trade. Der geschlossene T=50360258 hatte
    SL 84,776; 26 s spaeter lief bereits T=50360505 mit SL 84,863. Kein Fehler,
    nur Verwechslung durch die schnelle Folge.

(2) ABER dabei faellt ein echter Anzeigefehler auf: das SL/TP-Feld der
    Trade-Leiste formatierte mit `fmt(x, 2)`. WTI notiert DREISTELLIG - aus dem
    echten Stop 84,776 wurde die Anzeige 84,78.
    ⚠⚠ Das ist nicht kosmetisch: das Feld ist BESCHREIBBAR, und ein Enter darauf
    schickt den gerundeten Wert per /api/sltp an den Broker. Der Stop verschiebt
    sich also still um bis zu 0,5 Cent - bei einem Trail von 11 Cent (ATR_M5
    0,1104 in dieser Nacht) sind das 5 % der Distanz. Zusaetzlich schaltet
    /api/sltp das Trailing ab, der Nutzer wuerde also einen leicht falschen Stop
    festschreiben und die Nachfuehrung verlieren.

Behoben auf 3 Stellen. Gegengeprueft, dass es kein weiteres Preisfeld mit
`, 2)` gibt.

Reine Frontend-Aenderung (v=189), kein Neustart. node --check und die neue
Render-Probe (Stufe B2) gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-20 00:04:20 +02:00
co-authored by Claude Opus 5
parent f02fd43b39
commit 5684589878
2 changed files with 11 additions and 4 deletions
+9 -2
View File
@@ -1116,8 +1116,15 @@ function render(d) {
_tickTradeDuration(); _tickTradeDuration();
// SL/TP-Felder nur befüllen, wenn nicht gerade bearbeitet (kein Tipp-Konflikt) // SL/TP-Felder nur befüllen, wenn nicht gerade bearbeitet (kein Tipp-Konflikt)
const slEl = $("tb-sl"), tpEl = $("tb-tp"); const slEl = $("tb-sl"), tpEl = $("tb-tp");
if (document.activeElement !== slEl) slEl.value = p.sl ? fmt(p.sl, 2) : ""; // ⚠⚠ DREI Nachkommastellen, nicht zwei (Fix 2026-08-20, User-Fund
if (document.activeElement !== tpEl) tpEl.value = p.tp ? fmt(p.tp, 2) : ""; // "SL war auf 84,86 laut Dashboard"). WTI notiert dreistellig; mit
// `fmt(x, 2)` wurde aus dem echten Stop 84,776 die Anzeige 84,78.
// Das ist NICHT nur kosmetisch: das Feld ist beschreibbar, und ein
// Enter darauf schickt den GERUNDETEN Wert an den Broker — der Stop
// verschiebt sich also still um bis zu 0,5 Cent. Bei einem Trail von
// 11 Cent (ATR_M5 0,11 in dieser Nacht) sind das 5 % der Distanz.
if (document.activeElement !== slEl) slEl.value = p.sl ? fmt(p.sl, 3) : "";
if (document.activeElement !== tpEl) tpEl.value = p.tp ? fmt(p.tp, 3) : "";
} else { } else {
tb.classList.add("hidden"); tb.classList.add("hidden");
_tradeOpenTime = 0; _tradeOpenTime = 0;
+2 -2
View File
@@ -12,7 +12,7 @@
⚠ LOKAL eingebunden, kein CDN: die PWA laeuft ueber WireGuard ⚠ LOKAL eingebunden, kein CDN: die PWA laeuft ueber WireGuard
und muss offline funktionieren. --> und muss offline funktionieren. -->
<link rel="stylesheet" href="pico.min.css?v=1"> <link rel="stylesheet" href="pico.min.css?v=1">
<link rel="stylesheet" href="style.css?v=188"> <link rel="stylesheet" href="style.css?v=189">
</head> </head>
<body> <body>
<!-- Modul-Menü (ganz oben) --> <!-- Modul-Menü (ganz oben) -->
@@ -392,6 +392,6 @@
</div> </div>
<div id="toast" class="toast hidden"></div> <div id="toast" class="toast hidden"></div>
<script src="app.js?v=188"></script> <script src="app.js?v=189"></script>
</body> </body>
</html> </html>