Gewinn-Close & Notfall-Stop nicht mehr beim Öffnen setzen
sr_close_min_gain_pct und auto_emergency_margin_pct auf 0 (User-Vorgabe): beim Eröffnen einer Position wird nichts mehr automatisch armiert, nur manuell im UI gesetzte Werte greifen. Mechanik bleibt im Code (reaktivierbar via ini). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4bc7679ba3
commit
d9eafe32f7
@@ -593,16 +593,17 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
|||||||
`set_sr_close_min_gain` · Snapshot `sr_close_min_gain`): unter der EUR-Schwelle
|
`set_sr_close_min_gain` · Snapshot `sr_close_min_gain`): unter der EUR-Schwelle
|
||||||
wird am Level NICHT geschlossen. ⚠ Gemessen ist OHNE besser (Verworfen-Eintrag) —
|
wird am Level NICHT geschlossen. ⚠ Gemessen ist OHNE besser (Verworfen-Eintrag) —
|
||||||
Opt-in auf User-Wunsch, UI-Status warnt. **Automatisch auf X % des Einsatzes
|
Opt-in auf User-Wunsch, UI-Status warnt. **Automatisch auf X % des Einsatzes
|
||||||
(User-Vorgabe 2026-07-23, `[trading] sr_close_min_gain_pct=3.0`, 1%→3% am selben
|
(`[trading] sr_close_min_gain_pct`) — Stand 2026-07-24 AUF 0 = AUS (User-Vorgabe
|
||||||
Tag nachgezogen zusammen mit dem margin-%-Notfall-Stop, s. u.):** bei JEDER
|
„gewinn close … nicht setzen beim Eröffnen"; war kurz 1,0→3,0 am 2026-07-23).**
|
||||||
echt neuen Position (nicht beim Wiedererkennen nach Neustart) wird `sr_close_
|
Bei `pct>0` wird bei JEDER echt neuen Position (nicht beim Wiedererkennen nach
|
||||||
min_gain` frisch auf `pct% × Margin dieser Position` gesetzt (`_check_auto_close`,
|
Neustart) `sr_close_min_gain` frisch auf `pct% × Margin dieser Position` gesetzt
|
||||||
Margin kommt aus `trader.refresh()` unmittelbar davor im selben `_pos_loop`-Tick) —
|
(`_check_auto_close`, Margin aus `trader.refresh()` im selben `_pos_loop`-Tick,
|
||||||
überschreibt den manuell gemerkten Wert, persistiert via `_save_runtime_state`.
|
persistiert via `_save_runtime_state`, Log „Gewinn-Close armiert … +X (N% Margin
|
||||||
0 = aus (dann bleibt der manuell gesetzte/gemerkte Wert maßgeblich wie vorher).
|
Y)"). Bei `pct=0` (aktuell) wird beim Öffnen NICHTS gesetzt — es bleibt der
|
||||||
⚠ Gleiche Kopplungs-Regel wie beim festen Mindestgewinn: skaliert nur die Größe
|
manuell im UI gesetzte/gemerkte `sr_close_min_gain` (Default 0). ⚠ Beim Abschalten
|
||||||
desselben bereits gemessen-suboptimalen Mechanismus, kein neuer Risikotyp. Log
|
2026-07-24 auch den persistierten Alt-Wert in `runtime_state.json` auf 0 gesetzt
|
||||||
„Auto-Close armiert …" (getrennt) + „Gewinn-Close armiert … +X (3% Margin Y)".
|
(stand auf 17,17 vom letzten 3%-Auto-Set), sonst hätte ihn jeder neue Trade als
|
||||||
|
festen Mindestgewinn geerbt. Mechanik im Code erhalten (reaktivierbar via ini).
|
||||||
**Gate verifiziert (2026-07-23, User-Nachfrage „darf nicht schließen bevor der
|
**Gate verifiziert (2026-07-23, User-Nachfrage „darf nicht schließen bevor der
|
||||||
Wert erreicht wurde"):** `_check_sr_close` prüft `pnl < sr_close_min_gain → return`
|
Wert erreicht wurde"):** `_check_sr_close` prüft `pnl < sr_close_min_gain → return`
|
||||||
**bevor** `_sr_close_hint`/`trader.close` überhaupt aufgerufen werden — isoliert
|
**bevor** `_sr_close_hint`/`trader.close` überhaupt aufgerufen werden — isoliert
|
||||||
@@ -753,25 +754,22 @@ dort bereits nachvalidiert, ØR +0,305.) **Eine** Oberfläche:
|
|||||||
Neustart wählt die Heuristik den TF binnen 1 min neu.
|
Neustart wählt die Heuristik den TF binnen 1 min neu.
|
||||||
- **Kein automatischer Tagesverlust-Schalter (Circuit Breaker):** vom User
|
- **Kein automatischer Tagesverlust-Schalter (Circuit Breaker):** vom User
|
||||||
abgelehnt — NICHT einbauen. Bei 90 %-Margin-Sizing bleibt Drawdown-Risiko hoch.
|
abgelehnt — NICHT einbauen. Bei 90 %-Margin-Sizing bleibt Drawdown-Risiko hoch.
|
||||||
- **Notfall-Stop = AKTIV als margin-%-Modus (User-Vorgabe 2026-07-23,
|
- **Notfall-Stop = AUS beim Öffnen (Stand 2026-07-24, `auto_emergency_margin_pct=0`,
|
||||||
`[trading] auto_emergency_margin_pct=3.0`).** Kurz-Historie: 2026-07-17 komplett
|
`auto_emergency_pct=0`, `auto_emergency_loss=0`).** User-Vorgabe 2026-07-24: „gewinn
|
||||||
raus (2 % ≈ 0,76×ATR zerschoss die Squeeze-Trades, −48,94-€-Tag) · 2026-07-20
|
close und notfall close … nicht setzen beim Eröffnen" → alle drei Auto-Arm-Modi 0,
|
||||||
wenige Stunden als **3-%-GAP-NETZ (Balance-Basis)** zusammen mit `risk_pct=1.5` ·
|
beim Öffnen einer Position wird KEIN Notfall-Stop gesetzt. Nur ein **manuell** im
|
||||||
mit der Rückkehr zu **Margin-Sizing 80 %** am selben Tag wieder aus (`auto_
|
UI-Feld eingegebener Wert armiert (bleibt bis zum nächsten Positionswechsel).
|
||||||
emergency_pct=0`) · **2026-07-23 neu aktiviert, diesmal margin-basiert**
|
Kurz-Historie des margin-%-Modus: 2026-07-17 komplett raus (2 % ≈ 0,76×ATR zerschoss
|
||||||
(`auto_emergency_margin_pct=3.0`, dritter Modus, s. u.), ausgelöst durch zwei
|
die Squeeze-Trades, −48,94-€-Tag) · 2026-07-20 wenige Stunden als **3-%-GAP-NETZ
|
||||||
Notfall-Closes am selben Abend (−11,20 €/−20,47 €, s. „B0"-Analyse) — dabei hing
|
(Balance-Basis)** mit `risk_pct=1.5` · **2026-07-23 kurz margin-basiert `=3.0`**
|
||||||
die Schwelle beim ersten Trade noch auf einem händisch aus dem UI-Feld getesteten
|
(dritter Modus, ausgelöst durch zwei Notfall-Closes am selben Abend −11,20 €/−20,47 €,
|
||||||
**Restwert von −5 €** (viel zu eng), nicht auf einer bewusst gesetzten Zahl. ⚠
|
wobei die Schwelle beim ersten Trade noch auf einem händischen UI-Restwert von −5 €
|
||||||
**Kopplungs-Regel (gilt weiter, jetzt bewusst in Kauf genommen):** Ein %-Notfall-
|
hing) · **2026-07-24 auf User-Wunsch wieder ganz AUS.** Der margin-%-Modus bleibt im
|
||||||
Stop ist unter reinem Margin-Sizing (80 %, `risk_pct=0`) grundsätzlich enger als
|
Code (retry-sicheres Armieren via `_emergency_margin_armed_ticket`, hat Vorrang vor
|
||||||
der 2×ATR-SL — 3 % der Margin ist aber deutlich lockerer als der frühere 2 %-
|
Balance-%/Fixwert wenn >0), reaktivierbar per ini. ⚠ Kopplungs-Regel (falls
|
||||||
Balance-Versuch (bei ~800 € Margin einer Standardposition sind 3 % ≈ 24 €, vs.
|
reaktiviert): unter Margin-Sizing kann ein enger %-Stop schneller greifen als der
|
||||||
vorher 2 % von ~830 € Balance ≈ 16,62 €), soll als Sicherheitsnetz GEGEN genau
|
2×ATR-SL. Schutz-Stack aktuell: **Broker-SL 2×ATR + Trailing + Time-Stop** (der
|
||||||
solche „vergessener enger Restwert"-Fälle wirken, nicht als enger Ersatz für den
|
Auto-Notfall-Stop ist inaktiv).
|
||||||
Broker-SL. **Kein Backtest** (reines Risikomanagement-Sizing, kein Signal-Eingriff
|
|
||||||
— Track A, nicht Track B). Schutz-Stack jetzt: **Broker-SL 2×ATR + Trailing +
|
|
||||||
Time-Stop + margin-%-Notfall-Stop** als zusätzliches Netz.
|
|
||||||
**UI-Feld** (`#emg-input`, User-Vorgabe 2026-07-22, v=105) in der Trade-Leiste
|
**UI-Feld** (`#emg-input`, User-Vorgabe 2026-07-22, v=105) in der Trade-Leiste
|
||||||
(rot, neben Gewinn-Close), Enter blurrt nur (kein Doppel-Send/ungewolltes 0,
|
(rot, neben Gewinn-Close), Enter blurrt nur (kein Doppel-Send/ungewolltes 0,
|
||||||
gleicher Fix wie Mindestgewinn 2026-07-22) — ein am Handy gesetzter Wert
|
gleicher Fix wie Mindestgewinn 2026-07-22) — ein am Handy gesetzter Wert
|
||||||
|
|||||||
+11
-10
@@ -288,10 +288,10 @@ DEFAULT_CONFIG = {
|
|||||||
# Sektion: verliert monoton in beiden Hälften) — bewusster User-Opt-in.
|
# Sektion: verliert monoton in beiden Hälften) — bewusster User-Opt-in.
|
||||||
"sr_close_min_gain": "0",
|
"sr_close_min_gain": "0",
|
||||||
# Gewinn-Close automatisch auf X % des EINSATZES (Margin) der jeweiligen Position
|
# Gewinn-Close automatisch auf X % des EINSATZES (Margin) der jeweiligen Position
|
||||||
# setzen, sobald sie eröffnet wird (User-Vorgabe 2026-07-23, 1%→3% am selben Tag
|
# setzen, sobald sie eröffnet wird. 0 = AUS (User-Vorgabe 2026-07-24: NICHTS beim
|
||||||
# nachgezogen zusammen mit dem margin-%-Notfall-Stop). 0 = aus (dann bleibt
|
# Öffnen setzen — der manuell gesetzte/gemerkte `sr_close_min_gain` bleibt dann
|
||||||
# der manuell gesetzte/gemerkte `sr_close_min_gain` unverändert maßgeblich).
|
# maßgeblich). War kurz 1,0→3,0 (2026-07-23), auf User-Wunsch wieder 0.
|
||||||
"sr_close_min_gain_pct": "3.0",
|
"sr_close_min_gain_pct": "0",
|
||||||
# Auto-Notfall-Stop als % der Balance beim Öffnen (skaliert mit dem Konto).
|
# Auto-Notfall-Stop als % der Balance beim Öffnen (skaliert mit dem Konto).
|
||||||
# >0 → Stop = pct% × Balance; 0 = aus. ⚠ Nur zusammen mit risk_pct>0 als
|
# >0 → Stop = pct% × Balance; 0 = aus. ⚠ Nur zusammen mit risk_pct>0 als
|
||||||
# GAP-NETZ sinnvoll (dann pct ≈ 2× risk_pct → feuert nur bei Slippage/Gap
|
# GAP-NETZ sinnvoll (dann pct ≈ 2× risk_pct → feuert nur bei Slippage/Gap
|
||||||
@@ -301,12 +301,13 @@ DEFAULT_CONFIG = {
|
|||||||
# Rückkehr zu Margin-Sizing (80 %) am selben Tag wieder AUS. Bleibt 0 — ersetzt
|
# Rückkehr zu Margin-Sizing (80 %) am selben Tag wieder AUS. Bleibt 0 — ersetzt
|
||||||
# durch `auto_emergency_margin_pct` (s. u.), hat Vorrang wenn >0.
|
# durch `auto_emergency_margin_pct` (s. u.), hat Vorrang wenn >0.
|
||||||
"auto_emergency_pct": "0",
|
"auto_emergency_pct": "0",
|
||||||
# Notfall-Stop als % der EINSATZ-Margin der Position (User-Vorgabe 2026-07-23,
|
# Notfall-Stop als % der EINSATZ-Margin der Position (analog zu
|
||||||
# analog zu `sr_close_min_gain_pct`). >0 → Stop = pct% × Margin dieser Position,
|
# `sr_close_min_gain_pct`). >0 → Stop = pct% × Margin dieser Position, hat Vorrang
|
||||||
# hat Vorrang vor `auto_emergency_pct` (Balance) und dem Fixwert. 0 = aus.
|
# vor `auto_emergency_pct` (Balance) und dem Fixwert. 0 = AUS (User-Vorgabe
|
||||||
# ⚠ Gleiche Kopplungs-Warnung wie beim Balance-%-Modus: unter Margin-Sizing kann
|
# 2026-07-24: beim Öffnen NICHTS setzen). War kurz 3,0 (2026-07-23), wieder 0.
|
||||||
# ein enger %-Stop schneller greifen als der 2×ATR-SL — bewusste User-Vorgabe.
|
# ⚠ Kopplungs-Warnung (falls reaktiviert): unter Margin-Sizing kann ein enger
|
||||||
"auto_emergency_margin_pct": "3.0",
|
# %-Stop schneller greifen als der 2×ATR-SL.
|
||||||
|
"auto_emergency_margin_pct": "0",
|
||||||
# Entry-Raum-Gate: Signal → WARTEN, wenn das Gegenlevel (M5-Pivot in Trade-
|
# Entry-Raum-Gate: Signal → WARTEN, wenn das Gegenlevel (M5-Pivot in Trade-
|
||||||
# Richtung) näher als X×ATR liegt (gemessen `backtest_entryroom.py` — Raum
|
# Richtung) näher als X×ATR liegt (gemessen `backtest_entryroom.py` — Raum
|
||||||
# <0,6 in beiden Hälften negativ: Ertrag am Level gedeckelt, Kosten fressen
|
# <0,6 in beiden Hälften negativ: Ertrag am Level gedeckelt, Kosten fressen
|
||||||
|
|||||||
@@ -37,13 +37,13 @@ auto_squeeze_skip_night = false
|
|||||||
auto_squeeze_reverse = false
|
auto_squeeze_reverse = false
|
||||||
auto_emergency_loss = 0
|
auto_emergency_loss = 0
|
||||||
auto_emergency_pct = 0
|
auto_emergency_pct = 0
|
||||||
auto_emergency_margin_pct = 3.0
|
auto_emergency_margin_pct = 0
|
||||||
auto_takeprofit = 0
|
auto_takeprofit = 0
|
||||||
auto_sr_close = true
|
auto_sr_close = true
|
||||||
sr_close_pbreak = 0.60
|
sr_close_pbreak = 0.60
|
||||||
export_mql5_levels = true
|
export_mql5_levels = true
|
||||||
sr_close_min_gain = 0
|
sr_close_min_gain = 0
|
||||||
sr_close_min_gain_pct = 3.0
|
sr_close_min_gain_pct = 0
|
||||||
startup_close_grace_s = 60
|
startup_close_grace_s = 60
|
||||||
|
|
||||||
[gemini]
|
[gemini]
|
||||||
|
|||||||
Reference in New Issue
Block a user