Close-Knopf je Slot, direkt vor der jeweiligen G/V-Anzeige
User-Wunsch. Zwei Slots heissen zwei Close-Moeglichkeiten - bisher gab es nur
den grossen CLOSE-Knopf, und der schliesst seit heute BEIDE. Neu je ein kleines
✕ vor "G/V" (Slot 1) und vor "G/V · BRK", rechtsbuendig gespiegelt.
BACKEND: `engine.close(slot=None)` - None/"" = beide (Verhalten des grossen
Knopfs, unveraendert), "main" = nur Slot 1, "brk" = nur der Breakout-Autotrader.
`POST /api/order {"side":"close","slot":"brk"}` reicht ihn durch; ohne `slot`
ist das Verhalten bitgleich zu vorher.
⚠ Sicherheitsabfrage NUR im Minus - dieselbe Regel wie beim grossen Knopf: im
Plus direkt schliessen, im Minus nachfragen. Hartes Blockieren ist im Projekt
verworfen, aber ein versehentlicher Klick soll kein Geld kosten.
⚠⚠ EIGENER FEHLER auf dem Weg, gefunden bevor er live ging: mein erster Entwurf
las den P&L aus `_letzterSnap` - eine Variable, die es NICHT gab. Das ist exakt
der ReferenceError, der am 19.08. den halben Render abgeschossen hat, nur
diesmal im Klick-Pfad (er waere erst beim Druecken geknallt, also genau dann,
wenn man schliessen will). Behoben durch `letzterSnap`, das `_applySnapshot`
jetzt fuehrt - die Variable fehlte im Projekt tatsaechlich, Klick-Handler hatten
bisher keinen Zugriff auf den aktuellen Zustand.
Verifiziert: 2 Knoepfe im ausgelieferten HTML, span/div/button ausgeglichen,
keine doppelten IDs, node --check, Render-Probe, 91 Tests und die volle Pipeline
gruen. Deploy verifiziert (v=199).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
14b3fd4f64
commit
d881636e1b
+11
-2
@@ -2960,7 +2960,7 @@ class TradingEngine:
|
||||
self.trail.toggle(sym)
|
||||
return None
|
||||
|
||||
def close(self) -> str | None:
|
||||
def close(self, slot: str | None = None) -> str | None:
|
||||
"""Schliesst die offene Position — BEIDE Slots (Fix 2026-08-20).
|
||||
|
||||
⚠⚠ Bis heute lief das nur auf `self.trader`. Hielt der BRK-Slot eine
|
||||
@@ -2973,7 +2973,16 @@ class TradingEngine:
|
||||
Sind beide offen, werden beide geschlossen und Fehler gesammelt gemeldet.
|
||||
"""
|
||||
fehler = []
|
||||
for tr, name in ((self.trader, "Slot 1"), (self.trader_brk, "BRK")):
|
||||
# ⚠ `slot` waehlt gezielt: None/"" = BEIDE (Verhalten des CLOSE-Knopfs in
|
||||
# der Aktionsleiste), "main" = nur Slot 1, "brk" = nur der
|
||||
# Breakout-Autotrader. Die zwei kleinen Knoepfe an den G/V-Anzeigen
|
||||
# nutzen die gezielte Form (User-Wunsch 2026-08-20).
|
||||
paare = [(self.trader, "Slot 1"), (self.trader_brk, "BRK")]
|
||||
if slot == "main":
|
||||
paare = paare[:1]
|
||||
elif slot == "brk":
|
||||
paare = paare[1:]
|
||||
for tr, name in paare:
|
||||
try:
|
||||
if not (tr.snapshot() or {}).get("ticket"):
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user