Erfolgskontrolle fuer den Stop-Order-Umbau: Skript + Reminder

analyze_squeeze_entry_gap.py fuehrt die zwei noetigen Quellen zusammen - das
Ausbruchs-Level steht NUR im Log, der tatsaechliche Fill NUR in trades - und
splittet am Umbau-Stichtag. Die Erfolgsmeldung ist paradox: eine per Pending
gefuellte Order erzeugt KEINE AUTO-SQUEEZE-ENTRY-Logzeile (die entsteht nur im
Market-Fallback), Squeeze-Trades ohne Log-Treffer sind also der Erfolg. Das
Skript weist sie deshalb getrennt aus.

Als Messung squeeze_entry_gap im measurement_reminder.py hinterlegt (>=12
Squeeze-Trades ab dem Umbau). Stichtag exakt 05.08. 08:55 statt Mitternacht -
der 08:33-Trade lief noch ueber die Market-Order und haette die Zaehlung
verfaelscht (0/12 statt faelschlich 1/12).

Zahlen-Korrektur: die zuerst dokumentierten +0,306 / +0,741 xATR stammten aus
einer Scratchpad-Auswertung mit FESTEM Stundenversatz. DST-korrekt ueber
zoneinfo sind es +0,275 / +0,686 (n=34 unveraendert). In CLAUDE.md, engine.py,
trader.py und der ini nachgezogen; die Schlussfolgerung aendert sich nicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Axel Hocks
2026-08-05 09:06:50 +02:00
co-authored by Claude Opus 5
parent 5e0e8b00ca
commit 5f70980e59
5 changed files with 201 additions and 10 deletions
+24
View File
@@ -145,6 +145,30 @@ CHECKS = [
"→ `auto_squeeze=false` (B5-Rückbau, kein Ego). Sonst weiterlaufen "
"lassen. Zahlen: /api/squeeze_monitor bzw. Statistik-Tab.",
},
{
"key": "squeeze_entry_gap",
"title": "Stop-Order-Umbau: kommt der Einstieg jetzt AM Level an?",
"why": "Am 05.08. wurde der Auto-Squeeze von der Market-Order auf ruhende "
"Stop-Orders am Ausbruchs-Level umgestellt. Grund: der Squeeze hat "
"seinen GESAMTEN Edge im Einstiegspreis — am Level ØR +0,456/+0,611, "
"hinterhergelaufen 0,158/0,006 (`backtest_squeeze_entry.py`). Live "
"lag der Abstand vorher im Median +0,275×ATR (Mittel +0,686, Max "
"+4,339). Greift die Pending-Order nicht wie gedacht, ist der ganze "
"Umbau wirkungslos — und das fiele sonst NICHT auf, weil der Bot "
"weiterhin Trades macht.",
# ⚠ Stichtag exakt auf den Umbau (05.08. 08:55 Berlin = 06:55 UTC), NICHT auf
# Mitternacht: der Squeeze-Trade von 08:33 lief noch über die Market-Order und
# würde die Zählung verfälschen. `strftime('%s', …)` liest UTC, `entry_time`
# ist lokale Epoch — deshalb 07:00 UTC als sicherer Schnitt.
"have": lambda: _q("SELECT COUNT(*) FROM trades WHERE setup LIKE 'SQUEEZE%' "
"AND entry_time >= strftime('%s','2026-08-05 07:00:00')"),
"need": 12, "unit": "Squeeze-Trades seit dem Umbau (05.08. 08:55)",
"cmd": "python analyze_squeeze_entry_gap.py 60 → Der Median-Abstand muss "
"gegen 0 gehen und die Market-Log-Zeilen ('AUTO-SQUEEZE-ENTRY') "
"sollten weitgehend verschwinden. Bleibt der Abstand bei ~0,3×ATR, "
"füllt die Pending-Order nicht — dann Broker-Mindestabstand und die "
"Log-Zeile 'Squeeze-Pending nicht platzierbar' prüfen.",
},
{
"key": "night_window_0127",
"title": "Nacht-Fenster 36: tragen die freigegebenen Stunden 0/1/2/7?",