Ruhende Messungen als RUHT markieren statt als "sammelt"
Zwei Messungen brauchen SQUEEZE-Trades, und auto_squeeze ist seit dem 11.08.
aus -- seit dem 17.08. auch begruendet (B5-Regel gefallen). Ihre Zaehler stehen
seither still: Stop-Order-Umbau 8/12, Nacht-Fenster 3/15.
Als "sammelt (67 %)" angezeigt suggerierten sie einen Fortschritt, den es nicht
gibt: sie laufen NIE ab. Jetzt erscheinen sie als
⏸ ... [RUHT] 8/12 ... -- steht STILL
braucht SQUEEZE-Trades -- auto_squeeze ist AUS ...
RUHEND heisst: die Messung ist nicht langsam, sie ist BLOCKIERT -- und die
Blockade ist eine ENTSCHEIDUNG, keine Datenfrage. Wer den Trader wieder
einschaltet, laesst beide automatisch weiterlaufen; es ist nichts nachzuholen.
Umsetzung: RUHT-Tabelle mit je einer Pruef-Funktion; _auto_squeeze_an() liest
core.live_config (ini + runtime_state in der Vorrangfolge des Engine-Starts).
Faellt die Pruefung aus, gilt "nicht ruhend" -- lieber ein Zaehler zu viel als
eine still verschwundene Messung.
Die sechs uebrigen Messungen laufen unveraendert als "sammelt".
⚠ Beim Bau in die dokumentierte \n-Falle gelaufen: ein per Heredoc geschriebenes
f"\n..." wurde zum echten Umbruch im String-Literal (SyntaxError). CLAUDE.md
sagt genau das ("NIE per Heredoc -- den Edit-Weg nehmen"); ueber den Edit-Weg
behoben, check_nfalle laeuft sauber.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
7a832c4f40
commit
adcae09317
+50
-1
@@ -596,6 +596,48 @@ def _popup(title: str, text: str) -> None:
|
||||
print(f"Popup fehlgeschlagen: {e}\n{text}")
|
||||
|
||||
|
||||
def _auto_squeeze_an() -> bool:
|
||||
"""Laeuft der Auto-Squeeze? (ini + runtime_state, Vorrang wie beim Start)"""
|
||||
try:
|
||||
from core.live_config import LiveConfig
|
||||
return bool(LiveConfig.laden().auto_squeeze)
|
||||
except Exception:
|
||||
return True # im Zweifel NICHT als ruhend melden
|
||||
|
||||
|
||||
# ── RUHENDE Messungen ────────────────────────────────────────────────────────
|
||||
# ⚠⚠ ANLASS (2026-08-18): zwei Messungen brauchen SQUEEZE-Trades — und
|
||||
# `auto_squeeze` ist seit dem 11.08. aus, seit dem 17.08. auch begruendet
|
||||
# (B5-Regel gefallen). Ihre Zaehler stehen seither still: 8/12 und 3/15.
|
||||
# Als „sammelt (67 %)" angezeigt suggerieren sie einen Fortschritt, den es
|
||||
# nicht gibt — sie laufen NIE ab.
|
||||
# RUHEND heisst: die Messung ist nicht langsam, sie ist BLOCKIERT — und die
|
||||
# Blockade ist eine ENTSCHEIDUNG, keine Datenfrage. Wer den Trader wieder
|
||||
# einschaltet, laesst beide automatisch weiterlaufen; hier ist nichts zu tun.
|
||||
RUHT = {
|
||||
"squeeze_entry_gap": (
|
||||
_auto_squeeze_an,
|
||||
"braucht SQUEEZE-Trades — `auto_squeeze` ist AUS (B5-Regel am 17.08. "
|
||||
"gefallen). Zaehler steht seit dem 11.08. still."),
|
||||
"night_window_0127": (
|
||||
_auto_squeeze_an,
|
||||
"braucht SQUEEZE-Trades aus 0/1/2/7 Uhr — `auto_squeeze` ist AUS. "
|
||||
"Zaehler steht seit dem 11.08. still."),
|
||||
}
|
||||
|
||||
|
||||
def ruht(key: str):
|
||||
"""(True, Grund) wenn die Messung blockiert ist, sonst (False, '')."""
|
||||
e = RUHT.get(key)
|
||||
if not e:
|
||||
return False, ""
|
||||
pruef, grund = e
|
||||
try:
|
||||
return (not pruef()), grund
|
||||
except Exception:
|
||||
return False, ""
|
||||
|
||||
|
||||
def main() -> None:
|
||||
os.makedirs(MARKER_DIR, exist_ok=True)
|
||||
due, pending = [], []
|
||||
@@ -611,7 +653,8 @@ def main() -> None:
|
||||
elif ready:
|
||||
pending.append((c, have, "gemeldet"))
|
||||
else:
|
||||
pending.append((c, have, "sammelt"))
|
||||
_sch, _ = ruht(c["key"])
|
||||
pending.append((c, have, "RUHT" if _sch else "sammelt"))
|
||||
|
||||
# ── Config-Drift: welche Messung ist durch eine Config-Änderung veraltet?
|
||||
# Marker enthält den Wert → ändert der User später erneut, wird neu gemeldet.
|
||||
@@ -637,6 +680,12 @@ def main() -> None:
|
||||
print(f" {have:.0f}/{c['need']} {c['unit']}")
|
||||
print(f" → {c['cmd']}")
|
||||
for c, have, st in pending:
|
||||
if st == "RUHT":
|
||||
_, _grund = ruht(c["key"])
|
||||
print(f"\n ⏸ {c['title']} [RUHT]")
|
||||
print(f" {have:.0f}/{c['need']} {c['unit']} — steht STILL")
|
||||
print(f" ⚠ {_grund}")
|
||||
continue
|
||||
pct = min(100, have / c["need"] * 100) if c["need"] else 0
|
||||
print(f"\n ⏳ {c['title']} [{st}]")
|
||||
print(f" {have:.0f}/{c['need']} {c['unit']} ({pct:.0f} %)")
|
||||
|
||||
Reference in New Issue
Block a user