CB in das Feld TAG P/L, Farben invertiert (v=213)

User-Vorgabe. Zwei Aenderungen.

(1) Der CB-Knopf sitzt jetzt im Feld TAG P/L, rechts neben dem Wert. AT und TR
bleiben im Balance-Feld. VERSCHOBEN, nicht kopiert.
Passt inhaltlich: der Circuit Breaker haengt am TAGES-Verlust, und genau der
steht in diesem Feld - der Knopf sitzt jetzt neben der Zahl, die ihn ausloest.

(2) FARBEN INVERTIERT: jetzt GRUEN = aktiv (scharf), ROT = inaktiv (aus).
⚠ Damit lesen sich alle drei Knoepfe gleich - gruen heisst ueberall "an". Die
gegenlaeufige Zuordnung von heute Vormittag ist damit zurueckgedreht; der
Warnhinweis "CB ist bewusst invers" ist aus Markup, CSS und JS entfernt, sonst
haette er kuenftige Leser in die falsche Richtung geschickt.
⚠ Die Tooltips nennen die Farbe jetzt ausdruecklich ("AN (gruen)" / "AUS
(rot)"), damit der Zustand auch ohne Farbwahrnehmung eindeutig ist.

Am ausgelieferten HTML/CSS geprueft: TAG P/L enthaelt btn-cb, Balance enthaelt
btn-at und btn-trail und NICHT btn-cb, 0 doppelte IDs, .cb-dot.aktiv ist gruen.
Pipeline A-G gruen, 97 Tests, 14 render*-Funktionen, deployt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-21 10:58:26 +02:00
co-authored by Claude Opus 5
parent df7163bf18
commit 59f5cf2586
3 changed files with 27 additions and 22 deletions
+7 -6
View File
@@ -1527,15 +1527,16 @@ function render(d) {
} }
const cbb = $streng("btn-cb"); const cbb = $streng("btn-cb");
if (cbb) { if (cbb) {
// ⚠ Vorgabe des Nutzers: GRUEN = inaktiv (aus), ROT = aktiv (scharf). // ⚠ Farben am 2026-08-21 INVERTIERT (zweite Vorgabe am selben Tag):
// Bewusst nicht die uebliche "gruen = geschuetzt"-Lesart — Rot // GRUEN = aktiv (scharf), ROT = inaktiv (aus). Damit lesen sich CB, AT
// signalisiert hier, dass eine Automatik eingreifen kann. // und TR jetzt gleich — gruen heisst ueberall "an".
cbb.classList.toggle("aktiv", !!cb.enabled); cbb.classList.toggle("aktiv", !!cb.enabled);
cbb.classList.toggle("inaktiv", !cb.enabled); cbb.classList.toggle("inaktiv", !cb.enabled);
cbb.title = cb.enabled cbb.title = cb.enabled
? "Circuit Breaker AN: schliesst bei " + fmt(cb.limit_eur, 2) + " € (" ? "Circuit Breaker AN (gruen): schliesst bei " + fmt(cb.limit_eur, 2) + " € ("
+ cb.limit_pct + " % der Balance). Heute: " + fmt(cb.day_total, 2) + " €." + cb.limit_pct + " % der Balance). Heute: " + fmt(cb.day_total, 2) + " €."
: "Circuit Breaker AUS — kein automatischer Schutz gegen eine Verlust-Serie."; : "Circuit Breaker AUS (rot) — kein automatischer Schutz gegen eine "
+ "Verlust-Serie. Gruen = scharf.";
} }
// ⚠⚠ Der 🎯 SIG-Button ist am 2026-08-12 ENTFERNT (User-Entscheidung). Der // ⚠⚠ Der 🎯 SIG-Button ist am 2026-08-12 ENTFERNT (User-Entscheidung). Der
// autonome Entry auf die Empfehlung war seit dem 01.08. aus und auf BEIDEN // autonome Entry auf die Empfehlung war seit dem 01.08. aus und auf BEIDEN
@@ -2490,7 +2491,7 @@ async function closeSlot(slot, label, pnl) {
// und der Browser zeigte Altes. Statt das jedes Mal von Hand zu diagnostizieren, // und der Browser zeigte Altes. Statt das jedes Mal von Hand zu diagnostizieren,
// sagt die Seite es jetzt selbst. // sagt die Seite es jetzt selbst.
// ⚠ Bewusst SICHTBAR statt nur Konsole: die Konsole sieht am Handy niemand. // ⚠ Bewusst SICHTBAR statt nur Konsole: die Konsole sieht am Handy niemand.
const _JS_V = "212"; const _JS_V = "213";
{ {
const htmlV = document.body && document.body.dataset const htmlV = document.body && document.body.dataset
? document.body.dataset.htmlV : null; ? document.body.dataset.htmlV : null;
+10 -11
View File
@@ -12,9 +12,9 @@
⚠ 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=212"> <link rel="stylesheet" href="style.css?v=213">
</head> </head>
<body data-html-v="212"> <body data-html-v="213">
<!-- Modul-Menü (ganz oben) --> <!-- Modul-Menü (ganz oben) -->
<nav id="tabs"> <nav id="tabs">
<button class="tab active" data-view="dash">Dashboard</button> <button class="tab active" data-view="dash">Dashboard</button>
@@ -42,14 +42,13 @@
</div> </div>
</div> </div>
<div class="price-row"> <div class="price-row">
<!-- ⚠⚠ Der CB-Knopf sitzt IM Balance-Feld, rechts neben dem Wert <!-- ⚠⚠ AT und TR sitzen IM Balance-Feld rechts neben dem Wert; der
(User-Vorgabe 2026-08-21). Farb-Logik ebenfalls seine Vorgabe: CB-Knopf ist am selben Tag ins Feld TAG P/L gewandert (User-Vorgabe). Farb-Logik ebenfalls seine Vorgabe:
GRUEN = Breaker AUS (inaktiv, nichts begrenzt), ROT = Breaker AN GRUEN = Breaker AKTIV (scharf), ROT = INAKTIV (aus). Am selben Tag
(aktiv, ein Tagesverlust-Limit ist scharf). Bewusst NICHT die zunaechst umgekehrt gewuenscht und dann invertiert — jetzt lesen
uebliche "gruen = geschuetzt"-Lesart — Rot signalisiert hier, sich CB, AT und TR gleich: gruen heisst ueberall "an". -->
dass eine Automatik eingreifen kann. --> <div class="px px-cb"><label title="Kontostand ohne die offene Position.">BALANCE</label><span class="px-zeile"><span id="balance"></span><button class="cb-dot" id="btn-at" title="AUTO TRADER — Auto-Entry auf die gruene M15-Karte. ⚠ GEMESSEN NEGATIV (OeR -0,162/-0,094, KI ohne Null, schlechter als die HTF-Richtung UND als ihr eigenes Gegenteil) — reiner Test.">AT</button><button class="cb-dot" id="btn-trail" title="TRAILING der offenen Position an/aus. Startet ab 1,3×ATR Gewinn und lockert einen bereits engeren Stop niemals.">TR</button></span></div>
<div class="px px-cb"><label title="Kontostand ohne die offene Position.">BALANCE</label><span class="px-zeile"><span id="balance"></span><button class="cb-dot" id="btn-cb" title="Circuit Breaker (Tagesverlust-Stopp) an/aus">CB</button><button class="cb-dot" id="btn-at" title="AUTO TRADER — Auto-Entry auf die gruene M15-Karte. ⚠ GEMESSEN NEGATIV (OeR -0,162/-0,094, KI ohne Null, schlechter als die HTF-Richtung UND als ihr eigenes Gegenteil) — reiner Test.">AT</button><button class="cb-dot" id="btn-trail" title="TRAILING der offenen Position an/aus. Startet ab 1,3×ATR Gewinn und lockert einen bereits engeren Stop niemals.">TR</button></span></div> <div class="px px-cb"><label title="Realisiertes Ergebnis von heute. Brutto — die Quellensteuer wird größtenteils erstattet und ist hier nicht abgezogen.">TAG P/L</label><span class="px-zeile"><span id="day-pl"></span><button class="cb-dot" id="btn-cb" title="Circuit Breaker (Tagesverlust-Stopp) an/aus. Gruen = scharf, rot = aus.">CB</button></span></div>
<div class="px"><label title="Realisiertes Ergebnis von heute. Brutto — die Quellensteuer wird größtenteils erstattet und ist hier nicht abgezogen.">TAG P/L</label><span id="day-pl"></span></div>
<div class="px"><label title="Kontostand einschließlich der offenen Position.">EQUITY</label><span id="equity"></span></div> <div class="px"><label title="Kontostand einschließlich der offenen Position.">EQUITY</label><span id="equity"></span></div>
<div class="px"><label id="hdr-price-lbl" title="Der Kurs, zu dem tatsächlich gehandelt wird. Steht er länger als 3 Minuten still, gilt der Markt als geschlossen und das Label zeigt ZU.">PEPPERSTONE KURS</label><span id="hdr-price"></span></div> <div class="px"><label id="hdr-price-lbl" title="Der Kurs, zu dem tatsächlich gehandelt wird. Steht er länger als 3 Minuten still, gilt der Markt als geschlossen und das Label zeigt ZU.">PEPPERSTONE KURS</label><span id="hdr-price"></span></div>
<!-- Hyperliquid-Kurs NEBEN dem Broker-Kurs (User 2026-08-01). HL handelt 24/7, <!-- Hyperliquid-Kurs NEBEN dem Broker-Kurs (User 2026-08-01). HL handelt 24/7,
@@ -488,6 +487,6 @@
</div> </div>
<div id="toast" class="toast hidden"></div> <div id="toast" class="toast hidden"></div>
<script src="app.js?v=212"></script> <script src="app.js?v=213"></script>
</body> </body>
</html> </html>
+10 -5
View File
@@ -777,13 +777,18 @@ main{padding-bottom:4.1111rem} /* Platz für die fixe Leiste */
gap:0.4444rem; font-size:inherit} gap:0.4444rem; font-size:inherit}
.px .px-zeile > #balance{font-size:1.1111rem; font-weight:600} .px .px-zeile > #balance{font-size:1.1111rem; font-weight:600}
.px-cb .cb-dot{width:1.7222rem; height:1.7222rem; font-size:0.6111rem} .px-cb .cb-dot{width:1.7222rem; height:1.7222rem; font-size:0.6111rem}
.cb-dot.inaktiv{background:#0d2a16; border-color:#1a4731; color:#3fb950} /* ⚠⚠ FARBEN AM 2026-08-21 INVERTIERT (zweite User-Vorgabe am selben Tag).
.cb-dot.aktiv{background:#2d0d0d; border-color:#5c1a1a; color:#f85149} Jetzt: GRUEN = Breaker AKTIV (scharf, ein Tagesverlust-Limit greift),
ROT = Breaker INAKTIV (aus, kein automatischer Schutz).
Damit gilt fuer alle drei Knoepfe (CB, AT, TR) dieselbe Lesart: gruen = an.
⚠ Die vorige, umgekehrte Zuordnung stand nur wenige Stunden — wer alte
Screenshots vergleicht, sieht dort die Gegenfarbe. */
.cb-dot.aktiv{background:#0d2a16; border-color:#1a4731; color:#3fb950}
.cb-dot.inaktiv{background:#2d0d0d; border-color:#5c1a1a; color:#f85149}
/* ⚠ AT (Auto Trader) und TR (Trailing) neben CB im Balance-Feld /* ⚠ AT (Auto Trader) und TR (Trailing) neben CB im Balance-Feld
(User 2026-08-21). Farb-Logik hier die UEBLICHE: gruen = AN, grau = aus. (User 2026-08-21). Farb-Logik hier die UEBLICHE: gruen = AN, grau = aus.
⚠ Der Nachbar CB ist bewusst INVERS (gruen = AUS) — ausdrueckliche Vorgabe Seit dem 2026-08-21 gilt fuer ALLE drei Knoepfe dieselbe Lesart: gruen = an.
des Nutzers. Drei Knoepfe nebeneinander mit zwei Lesarten sind eine Falle; Die kurzzeitig umgekehrte CB-Zuordnung ist auf User-Wunsch zurueckgedreht. */
deshalb sagt jeder Tooltip, was sein Zustand bedeutet. */
.cb-dot.an{background:#0d2a16; border-color:#1a4731; color:#3fb950} .cb-dot.an{background:#0d2a16; border-color:#1a4731; color:#3fb950}
.cb-dot.aus{background:var(--surface-2); border-color:var(--border); color:var(--dim)} .cb-dot.aus{background:var(--surface-2); border-color:var(--border); color:var(--dim)}