15 knowledge objects (log, note, index, module, history) migrated to C3 knowledge schema v1. Bodies unchanged, metadata preserved.
2.1 KiB
2.1 KiB
| id | type | role | representation | state | knowledge_schema | _organized |
|---|---|---|---|---|---|---|
| object/799b279e-9709-3c05-972b-3751d1dc8a8d | arch | note | standalone | current | 1 | true |
Echter Stop-Loss + Risiko-Sizing — Fix 18.08.2026
Problem
Der Stop-Loss war bisher nur ein lokaler Wert in trades.json. Der Monitor prüfte
stündlich und verkaufte dann per Market-Order. Bei volatilen Pennystocks (MXL, ACRS,
ULCC, XRX) rutschte der Kurs in der Zwischenzeit deutlich unter den SL → Verluste von
−7 bis −10 % statt der konfigurierten −8 %. Realisierte Rendite der Periode: −24,33 €.
Zusätzlich war das Sizing fix auf 50 €/Position → bei weitem SL (8 %) ein Verlust von ~6–7 € (≈12 % des Positionsbudgets), statt der 2 %-Regel.
Fix A — Echter Stop-Loss bei T212
- Neuer Endpunkt:
POST /api/v0/equity/orders/stop(negative Menge = Sell-Stop) place_stop()+cancel_stop()int212_resilience.pyensure_stop()int212_monitor.py: platziert/aktualisiert den echten Stop bei Fill, Breakeven (+3 %), Trailing (+5 %) und bei jedem Monitor-Lauf- Idempotent: speichert
stop_order_id+stop_order_priceintrades.json→ kein Cancel+Neu-Churn bei jedem Lauf - Rate-Limit-Pacing: 1 Stop-Request / 2s (T212-Limit)
- Konservativ bei 429: leere Live-Stop-Liste → nichts unternehmen (kein Churn)
Fix B — Risiko-basiertes Sizing
calc_risk()nutzt jetztrisk_per_trade_pct (2 %)× Gesamtkapital statt fix 50 €- Verlust pro Trade in € gedeckelt, egal wie weit der SL steht
- "Trades atmen lassen" (weiter SL) → Position wird automatisch kleiner
Verifiziert (live gegen T212-API, 18.08.2026)
4 echte Stop-Orders aktiv, keine Duplikate, zweiter Monitor-Lauf = 0 neue Orders:
| Position | Stop | Order-ID |
|---|---|---|
| LFST | 11,95 € | 55909740706 |
| TRGP | 271,78 € | 55909740714 |
| WEAV | 6,72 € | 55909740725 |
| UMAC | 28,55 € | 55909740772 |
Backups
t212_monitor.py.bak_*(mehrere Stände)t212_resilience.py.bak_*
Status
✅ Aktiv — Daemon liest Dateien bei jedem Lauf frisch, kein Neustart nötig.