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

2.1 KiB
Raw Blame History

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 ~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.