Auto-Signal-Entry + 15-Min-Regel (User-Wunsch, gegen die Messung, mit besten Params)

User will Auto-Eroeffnung bei Empfehlung trotz negativem Backtest -> gebaut,
Default AUS, mit den GEMESSEN besten Parametern statt geratenen:

Entry (_check_auto_signal, [trading] auto_signal=false):
- min_conf=75 + Nacht-Sperre = beste Kombi (H1 -0.053 mildester Verlust,
  H2 +0.141 bestes Netto). NICHT weil "mehr Konfidenz besser" -- conf_pct ist
  unkalibriert, 75 ist empirisch.
- Nur FLAT, 1x je Signal-Episode (Dedup, re-armt bei WARTEN/Flip), kein Nachkauf,
  kein Drehen einer Gegen-Position; erbt Circuit-Breaker + beide Cooldowns.
- Setup-Tag AUTOSIG_<dir> -> in der DB separierbar fuer B4-Monitor.
- Toggle POST /api/autosignal, Button "SIG" (bernstein = gemessen nicht tragfaehig),
  neustart-fest via runtime_state.json.

15-Min-Regel (_check_adverse15, adverse_15min_atr=0.5):
- Schwelle GEMESSEN kalibriert: "sobald im Minus" ist die SCHLECHTESTE Variante
  (WR 39->31%, Netto -0.067 vs +0.026 ohne); 0.5xATR ist die beste (H1 -0.111
  -> -0.079). Netto bringt die Regel ~nichts = Regime-Schutz.
- Nur BOT-eroeffnete Trades (_bot_open_ticket) -- manuelle Diskretion bleibt.
- 1x je Ticket geprueft, Startup-Grace respektiert, closed_by=adverse15.

Verifiziert: 18 synthetische Szenarien (9 Entry + 9 Adverse) alle korrekt;
Live-Neustart ohne Loop-Fehler, Toggle + Persistenz geprueft. v=119.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-07-30 14:01:14 +02:00
co-authored by Claude Opus 4.8
parent d40616fbeb
commit 2996eddd7e
8 changed files with 311 additions and 11 deletions
+27
View File
@@ -357,6 +357,33 @@ DEFAULT_CONFIG = {
# B4-Wochenmonitor prüfen, ob Nacht-Squeezes tragen. Code (`_SQUEEZE_NIGHT`,
# `_squeeze_skip_night`) bleibt dormant/reaktivierbar (true = wieder an).
"auto_squeeze_skip_night": "true",
# ── Autonomer Entry auf die EMPFEHLUNG (Wave-Signal) — User-Wunsch 2026-07-30
# („probieren wir es trotzdem mal"). ⚠ GEMESSEN NICHT TRAGFÄHIG
# (`backtest_auto_signal.py`, 80k M5, 2 Halbjahre): H1 durchgehend NEGATIV
# (ØR 0,05…−0,18, PF 0,780,93), H2 positiv (+0,06…+0,15) = Regime-Kippen;
# deckt sich mit dem Live-Dry-Run von 2026-07-23 (WR 29 %/PF 0,64). Default AUS.
# Der User hat das nach vollständiger Information bewusst gewollt → Schalter
# existiert, aber mit den gemessen BESTEN Parametern und Live-Monitor (B4/B5:
# driftet es weg → zurückbauen).
"auto_signal": "false",
# Mindest-Konfidenz für den Auto-Signal-Entry. 75 = gemessen beste Kombi
# (mit Nacht-Sperre: H1 0,053 = mildester Verlust, H2 +0,141). ⚠ conf_pct ist
# NICHT kalibriert (`analyze_verdict_calibration.py`) — höher ist nicht monoton
# besser, 75 ist empirisch, nicht „mehr ist mehr".
"auto_signal_min_conf": "75",
# Nacht-Sperre 07 Uhr Berlin für den Auto-Signal-Entry (gemessene Kostenfalle,
# verbessert JEDE Variante: H1 0,157→−0,111 bzw. 0,127→−0,053). true = an.
"auto_signal_skip_night": "true",
# 15-Minuten-Regel (User-Wunsch 2026-07-30 „wenn der Trade nach 15 Minuten
# gegen die Richtung läuft schließe ihn"): steht ein BOT-eröffneter Trade
# 15 min nach Entry mehr als X×ATR im Minus → schließen (`closed_by=adverse15`).
# ⚠ Wert GEMESSEN kalibriert (`backtest_auto_signal.py`): „sobald im Minus"
# (=0,0) ist die SCHLECHTESTE Variante (WR bricht 39→31 %, ØR-Netto 0,067);
# **0,5 ist die beste Regel-Variante** (H1 0,111→−0,079). Netto über beide
# Hälften bringt die Regel ~nichts (+0,001 vs +0,026 ohne) — sie ist ein
# REGIME-Schutz (hilft im schlechten, kostet im guten). 2. Bestätigung von
# `backtest_adverse_nosignal.py`. 0 = aus.
"adverse_15min_atr": "0.5",
},
# (Der frühere `[setups]`-Block — Per-Setup-Toggles für den Dry-Run-Auto-Trader —
# ist entfernt, 2026-07-23: verwaist seit dem Entfernen des Dry-Run-Traders, wurde