trading-system-docs/notes/trading/second-brain/Stop_Loss_Fix_2026-08-18.md
Red Queen 7ae7249c00 feat(tolaria): migrate auto-safe knowledge batch 2 to schema v1
15 knowledge objects (log, note, index, module, history) migrated to
C3 knowledge schema v1. Bodies unchanged, metadata preserved.
2026-08-25 18:48:25 +00:00

52 lines
2.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: object/799b279e-9709-3c05-972b-3751d1dc8a8d
type: arch
role: note
representation: standalone
state: current
knowledge_schema: 1
_organized: 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
~67 € (≈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()` in `t212_resilience.py`
- `ensure_stop()` in `t212_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_price` in `trades.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 jetzt `risk_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.