Auto-Signal-Entry (SIG) komplett entfernt inkl. Button (v=166)
User-Entscheidung. Der Pfad war seit 01.08. aus und auf BEIDEN Ausfuehrungs-Achsen gemessen negativ: Markt-Einstieg in allen 8 Feldern, ruhende Order mit Touch-Fill -0,392/-0,338 in allen 6 und damit sogar schlechter als Markt. Die +0,35/+0,32 aus backtest_auto_signal_v3.py galten in Variante B (Fill beim Close-Bruch) und waren Look-ahead - Aufschlag 0,77-0,85 R. Ursache strukturell: das Bestaetigungs-Level _pend WANDERT. Nebenbei entfaellt der offene Churn-Defekt (4x setzen/stornieren in 76 s bei identischem Level, gefunden 06.08., nie behoben). Entfernt: _check_auto_signal, set_auto_signal, der Signal-Zweig in _pending_ziel, /api/autosignal, Button + Handler, vier Snapshot-Felder, die auto_signal*/signal_pending_entry-Leser. Geblieben: AUTOSIG_*-Trades in der DB, die Backtests, wave_rec.breakout (speist block_reason) und _confirm_breakout selbst. Sicherung: .removed_backup/auto_signal_2026-08-12.py + Git. Das Risiko war nicht SIG, sondern der GETEILTE Pending-Manager (zwei getrennte Manager wuerden sich gegenseitig stornieren). Deshalb wurde das Squeeze-Verhalten VOR dem Eingriff in tests/test_pending_ziel.py festgenagelt - 7 Tests, vorher gruen, laufen unveraendert weiter. Zwei Folgefehler fing die Pruefkette sofort: ruff F821 ein verwaistes _t, py_compile ein dangling if. Zwei Tests wurden mitgezogen statt geloescht - test_signal_fill_long ist jetzt umgedreht (unbekannte Quelle darf NICHT als Squeeze durchgehen). Live verifiziert: alle vier Snapshot-Felder weg, Endpunkt tot, auto_squeeze/squeeze_pending unveraendert, 67 Tests gruen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
b85dd010ab
commit
bf7e382818
@@ -24,14 +24,24 @@ def test_squeeze_fill_wird_getaggt(engine):
|
||||
assert 49483981 not in engine._pending_tickets # Merker verbraucht
|
||||
|
||||
|
||||
def test_signal_fill_long(engine):
|
||||
engine._pending_tickets = {777: "signal"}
|
||||
def test_unbekannte_quelle_wird_NICHT_getaggt(engine):
|
||||
"""⚠ Ersetzt `test_signal_fill_long` (der Auto-Signal-Pfad ist am
|
||||
2026-08-12 entfernt). Der Test wurde NICHT geloescht, sondern umgedreht:
|
||||
seit es nur noch den Squeeze gibt, darf ein Fill mit einer FREMDEN Quelle
|
||||
nicht stillschweigend als Squeeze durchgehen — das waere genau
|
||||
Deployment-Drift Fall 8 (vier reale Trades landeten als `setup=NULL` und
|
||||
waren von manuellen nicht unterscheidbar), nur mit umgekehrtem Vorzeichen:
|
||||
ein Fremd-Trade wuerde die B4-/B5-Monitore verfaelschen."""
|
||||
engine._pending_tickets = {777: "signal"} # Altbestand / unbekannt
|
||||
engine.trader.snap = {"ticket": 777, "order_type": 0, "entry_price": 75.2}
|
||||
engine._check_pending_fill()
|
||||
|
||||
assert engine._signal_entry_count == 1
|
||||
assert engine._squeeze_entry_count == 0
|
||||
assert engine._bot_open_source == "auto_signal"
|
||||
assert engine._bot_open_source is None
|
||||
# ⚠ Der Merker bleibt STEHEN — nur ein sauber zugeordneter Fill verbraucht
|
||||
# ihn. So wird derselbe Fall beim naechsten Tick erneut gemeldet, statt
|
||||
# still zu verschwinden.
|
||||
assert 777 in engine._pending_tickets
|
||||
|
||||
|
||||
def test_fremde_position_wird_nicht_getaggt(engine):
|
||||
|
||||
Reference in New Issue
Block a user