Circuit Breaker: Tagesverlust-Stopp (daily_loss_limit_pct=8) — Überlebens-Basis
User-Ziel autonomes Handeln → Notbremse im Code (vorher abgelehnt, reaktiviert). Erreicht der Tages-P&L (realisiert+offen) -8% der Balance, schließt der Bot die Position und sperrt neue Auto-Trades bis zum naechsten Tag. _check_circuit_breaker im _pos_loop (Startup-Grace, ~30s realized-cache, Berlin-Datum-Reset), blockt Auto-Squeeze, Snapshot + roter Frontend-Banner (v=115). 80%-Margin bleibt (User). Mit 5 Szenarien getestet. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
873b67a521
commit
cd8ee5b01b
@@ -805,8 +805,25 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
||||
Heuristik-TF nur im Speicher (kein `save_config` mehr) — sonst würde die
|
||||
Secrets-`ini` bei jedem Switch neu geschrieben (Kommentar-Verlust/Churn). Beim
|
||||
Neustart wählt die Heuristik den TF binnen 1 min neu.
|
||||
- **Kein automatischer Tagesverlust-Schalter (Circuit Breaker):** vom User
|
||||
abgelehnt — NICHT einbauen. Bei 90 %-Margin-Sizing bleibt Drawdown-Risiko hoch.
|
||||
- **Circuit Breaker (Tagesverlust-Stopp) = AKTIV `[trading] daily_loss_limit_pct=8`
|
||||
(User-Vorgabe 2026-07-27, im Rahmen des „Überlebens-Basis"-Pakets — vorher jahrelang
|
||||
abgelehnt, mit dem Autonomie-Ziel reaktiviert):** erreicht der **Tages-P&L
|
||||
(realisiert heute + offene Position)** −pct % der Balance, schließt der Bot die
|
||||
Position (`closed_by=circuit_breaker`) und sperrt **neue Auto-Trades bis zum
|
||||
nächsten Tag** (`_check_auto_squeeze` prüft `_circuit_halted()`). `_check_circuit_
|
||||
breaker` im `_pos_loop` (1 s, unter Startup-Grace pausiert), realisierter Tages-P&L
|
||||
~30 s gecacht (`_day_realized_cached`), Berlin-Datum als Trip-Marker (`_circuit_
|
||||
tripped_date`) → automatischer Reset am neuen Tag. Log 🛑 + Telegram (eigener,
|
||||
nicht vom Close-Gate betroffen). Snapshot `circuit_breaker {enabled, limit_pct,
|
||||
limit_eur, day_total, tripped}`, Frontend `#circuit-banner` (rot bei ausgelöst,
|
||||
bernstein ab 60 % des Limits, v=115). ⚠ **80 %-Margin-Sizing bleibt** (User-
|
||||
Entscheidung, 3.+ Mal bestätigt; `risk_pct=0`) → der 8 %-Tagesstopp schützt v. a.
|
||||
gegen die **Verlust-Serie/-Kaskade**, NICHT vollständig gegen den Einzeltrade
|
||||
(dessen 2×ATR-SL unter 80 % Margin allein schon >8 % verlieren kann). 0 = aus.
|
||||
Mit 5 synthetischen Szenarien getestet (nicht-zu-früh · Trip+Close · kein
|
||||
Doppel-Close · aus · Auto-Squeeze-Block). ⚠ Der frühere „NICHT einbauen"-Grund
|
||||
gilt nicht mehr — Ziel hat sich zu **autonomem Handel** verschoben, und ein
|
||||
unbeaufsichtigter Agent braucht die Notbremse im Code.
|
||||
- **Notfall-Stop = AUS beim Öffnen (Stand 2026-07-24, `auto_emergency_margin_pct=0`,
|
||||
`auto_emergency_pct=0`, `auto_emergency_loss=0`).** User-Vorgabe 2026-07-24: „gewinn
|
||||
close und notfall close … nicht setzen beim Eröffnen" → alle drei Auto-Arm-Modi 0,
|
||||
@@ -1197,7 +1214,7 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
||||
Signal → **Hinweis-Dialog „trotzdem eröffnen?"** (überschreibbar). CLOSE bei
|
||||
**negativem** P&L → Sicherheitsabfrage; im Plus/Breakeven direkt. Sonst keine
|
||||
Token-Dialoge (`require_token=false`). Audio braucht 1× Nutzer-Tap.
|
||||
- Asset-Version aktuell **v=114** (in `web/index.html` hochzählen, siehe Workflows).
|
||||
- Asset-Version aktuell **v=115** (in `web/index.html` hochzählen, siehe Workflows).
|
||||
Schriftgrößen 2026-07-24 global **+4px** (2× je +2px auf User-Wunsch; Body-Basis
|
||||
14→18px). ⚠ Betrifft in `style.css` sowohl `font-size:Npx` (71×) ALS AUCH die
|
||||
`font:<weight> Npx/…`-**Shorthand** (3×: `.ms-chip`/`.ms-bos-lbl`/`.sqm-badge` —
|
||||
|
||||
Reference in New Issue
Block a user