CLAUDE.md: warum BRK nicht eroeffnet (Margin-Kette, runtime_state ueberstimmt ini)

This commit is contained in:
Axel Hocks
2026-08-20 16:31:15 +02:00
parent fe01596020
commit b5a841d52e
+68
View File
@@ -9038,6 +9038,74 @@ die Auswertung der ENTFERNTEN bzw. HINZUGEFÜGTEN Gruppe für AUSWAHL-Varianten*
(Muster `backtest_htf_vola.py`). Ein Intervall von exakt [0,000 … 0,000] ist
kein Ergebnis, sondern die Fehlermeldung eines falsch gewählten Tests.
## ⚠⚠ BRK EROEFFNET NICHT — die Ursache liegt eine Ebene ueber dem Feld (2026-08-20, v=202)
User zweimal: „breakout trades eröffnen immer noch nicht". Die am selben Tag
eingebaute Klartext-Meldung sagt es jetzt wörtlich:
```
Pending-Entry (squeeze) nicht platzierbar (87.142):
Einsatz 10 % von 58.49 EUR freier Margin = 5.85 EUR,
Mindestlot 0.01 braucht aber 7.46 EUR
```
**DIE ARITHMETIK:**
| | |
|---|---|
| Balance | 728,87 € |
| davon **belegt** (Slot 1, 0,92 Lots manuell) | **688,50 €** |
| **frei** | **97,55 €** |
| Mindestlot 0,01 braucht | 7,52 € |
| ➜ **nötiger Prozentsatz** | **8 %** |
⚠⚠ **`margin_brk` ist ein Prozentsatz der FREIEN Margin, nicht des Kontos** —
und die freie Margin schwankt im Minutentakt mit dem G/V der offenen Position
(gemessen 57,4 … 97,6 € im selben Fenster). Bei 9 % sind das 5,2 … 8,8 € gegen
7,5 € Bedarf: **es funktioniert mal und mal nicht.** Die Änderung von 10 auf 9
hat die Lage damit **verschlechtert**, nicht verbessert.
⚠⚠⚠ **DIE EIGENTLICHE URSACHE LIEGT EINE EBENE HÖHER — und sie ist ein echter
Defekt:** `margin_pct` steht in `runtime_state.json` auf **95 %**, in der ini
auf **40 %** (dem am 19.08. dokumentierten User-Stand). `runtime_state` gewinnt
beim Start. **Und das UI-Feld „Einsatz %" wurde am 19.08. ENTFERNT (v=178)**
es gibt seitdem **keinen Weg mehr, den persistierten Wert zu ändern**; nur der
Endpoint `/api/marginpct` existiert noch. Der Wert überstimmt die ini also
**dauerhaft und still**.
Folge in der Kette: ein manueller Trade nimmt 95 % der freien Margin → übrig
bleiben ~5 % → BRK wendet seine 9 % auf **diesen Rest** an. Aus „BRK bekommt
9 %" wird real **9 % von 5 % des Kontos**.
⚠ Dieselbe Falle wie `auto_signal` am 31.07. Der Unterschied: dort gab es einen
Schalter, um es zu bemerken und zu drehen — hier nicht mehr.
**DREI DINGE GEBAUT, KEINE DAVON ÄNDERT DIE POSITIONSGRÖSSE** (die ist
User-Entscheidung, s. Dauerregel):
**(1) `mt5_utils.lot_grund()`** — „Lot-Fehler" erklärt sich selbst, mit Zahlen.
Beide Aufrufer (Market `_send`, Pending `place_stop`) nutzen ihn. ⚠ Anlass: der
Trader meldete einen ganzen Tag lang nur zwei Wörter, während die Ursache ein
Zusammenspiel aus drei Zahlen war.
**(2) Start-Warnung, wenn `runtime_state` die ini überstimmt** — live
verifiziert: *„⚠ Einsatz-%: runtime_state (95 %) ueberstimmt die ini (40 %). Es
gibt KEIN UI-Feld mehr dafuer."* Ohne sie ist der Zustand von aussen
unsichtbar.
**(3) Snapshot `squeeze_block` + BRK-Karte** — statt „keine — Slot frei" steht
dort jetzt der Grund. ⚠ **Ein leerer Slot und ein blockierter Slot sahen vorher
identisch aus**, und der Grund stand nur im Log, zwischen 269 gleichlautenden
Zeilen.
⚠⚠ **VIERTER FUND: die Log-Drossel griff NIE.** Der Merker lag in EINER
Variable, die beiden Order-Seiten scheitern aber im selben Tick mit
VERSCHIEDENEN Fehlern („Level passiert" oben, „Lot-Fehler" unten) — der Wert
wechselte bei jedem Aufruf. Real 269 Zeilen an einem Tag, 2 je Sekunde. Jetzt
je Order-Seite gemerkt; nach dem Deploy **0** Zeilen. **Eine Drossel, die nie
drosselt, ist schlimmer als keine — sie verdeckt genau die Meldung, die zählt.**
**DIE DREI WEGE HERAUS (User-Entscheidung, Zahlen zum aktuellen Stand):**
| Weg | Wirkung |
|---|---|
| `margin_brk` auf **2530 %** | 2429 € → 0,03 Lots, robust gegen die G/V-Schwankung |
| `margin_pct` auf **40** (= ini, dokumentierter Stand) | wirkt erst auf NEUE manuelle Trades, macht die Reserve dauerhaft |
| offene Position kleiner halten | die einzige Variante, die BRK sofort Luft gibt |
⚠ **Nichts davon wurde eigenmächtig gesetzt.**
## ⚠⚠⚠ P(break) IST LIVE **INVERTIERT** — und es steuert echtes Geld (2026-08-19)
Die fällige Messung ist entscheidbar geworden: **n=530 entkoppelt** gegen die