Bestaetigtes Chartmuster je Zeitebene ins MT5-Chart (Indikator v1.45)
User-Wunsch: das bestaetigte Muster in das jeweils passende Chart einzeichnen. CSV: neue Zeile `PT;<TF>;<name>;<dir>;<trigger>;<ziel>` je Zeitebene. INDIKATOR: zeichnet NUR die Zeile, deren <TF> zu SEINEM Chart passt (`TFName(PERIOD_CURRENT)`). Ohne diesen Filter laegen alle Zeitebenen uebereinander im selben Fenster und keine waere lesbar - so bekommt jedes Chartfenster (M1/M5/M15/M30/H1) sein eigenes Muster. Gezeichnet werden zwei waagerechte Linien: Trigger (Nackenlinie, durchgezogen, Breite 2) und Ziel (gestrichelt), gruen bei bullisch, rot bei baerisch, dazu ein Label an der Triggerlinie. ⚠⚠ NUR `confirmed`. "Bildet sich" ist genau der Zustand, in dem noch nichts gebrochen ist - ihn zu zeichnen waere eine Vorhersage. Live gegengeprueft: M30 "Tasse+Henkel" und H1 "Aufsteigendes Dreieck" stehen auf confirmed und sind in der CSV; der M5-"Steigende Keil" ist nur forming und wird korrekt NICHT exportiert. ⚠⚠ EHRLICHKEIT IM LABEL: die Muster-Klasse ist als SIGNAL gemessen und VERWORFEN - die Ziel-Trefferquote liegt bei nur 13-38 % (backtest_patterns.py). Deshalb steht "(trifft 13-38 %)" im Chart-Label. Eine gezeichnete Ziellinie ohne diesen Zusatz liest sich wie eine Prognose, und genau das ist sie nicht. Kein Verdict-Gewicht, kein Trade-Trigger. ⚠ Nur ZUSAMMENGESETZT aus `patterns_tf`, das der Snapshot ohnehin baut - kein zweiter Rechenweg (der Konsens-Pfeil-Fehler). ⚠ Der dokumentierte Fallstrick beachtet: kompiliert wurde ins RICHTIGE Terminal (D0E8209F..., das einzige mit sr_levels.csv), mit EIGENEM Logpfad, und geprueft wurde auf "Result: 0 errors, 0 warnings" PLUS frischen .ex5-Zeitstempel - nicht auf den Default-Log. Der erste Versuch lief ins Leere, weil der Editor-Pfad falsch war (Pepperstone-Ordner existiert nicht, es ist "MetaTrader 5"); das leere Log und die unveraenderte .ex5 haben es verraten. Quelle ins Repo gespiegelt (mql5/SR_Levels.mq5), Backup daneben. Abschaltbar: InpShowMuster=false; Farben ueber InpMusterBullColor/-BearColor. Pipeline A-G gruen, 97 Tests, deployt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
db0de81ef6
commit
263ec9f9a5
@@ -3601,6 +3601,33 @@ class TradingEngine:
|
||||
lines.append(f"{_tag};{round(_lo2, 3)};{round(_hi2, 3)}")
|
||||
except Exception:
|
||||
pass
|
||||
# ── BESTAETIGTES CHARTMUSTER je Zeitebene (User-Wunsch 2026-08-21)
|
||||
# PT;<TF>;<name>;<dir>;<trigger>;<ziel>
|
||||
# Der Indikator zeichnet NUR die Zeile, deren <TF> zu SEINEM Chart
|
||||
# passt — so bekommt jedes Fenster (M1/M5/M15/H1) sein eigenes
|
||||
# Muster, ohne dass fuenf Linien uebereinander liegen.
|
||||
# ⚠⚠ NUR `confirmed`. "Bildet sich" ist genau der Zustand, in dem noch
|
||||
# nichts gebrochen ist; ihn zu zeichnen waere eine Vorhersage.
|
||||
# ⚠⚠ EHRLICHKEIT IM LABEL: die Muster-Klasse ist als SIGNAL gemessen
|
||||
# und VERWORFEN — die Ziel-Trefferquote liegt bei nur 13-38 %
|
||||
# (`backtest_patterns.py`). Deshalb steht die Zahl im Chart mit
|
||||
# dran. Eine gezeichnete Ziellinie ohne diesen Hinweis liest sich
|
||||
# wie eine Prognose, und genau das ist sie nicht.
|
||||
# ⚠ Nur zusammengesetzt aus `patterns_tf`, das der Snapshot ohnehin
|
||||
# baut — kein zweiter Rechenweg (der Konsens-Pfeil-Fehler).
|
||||
try:
|
||||
for _tf, _m in (self._patterns_tf() or {}).items():
|
||||
if not _m or _m.get("status") != "confirmed":
|
||||
continue
|
||||
_trg, _zl = _m.get("trigger"), _m.get("target")
|
||||
if not _trg or not _zl:
|
||||
continue
|
||||
_nm = str(_m.get("name") or "").replace(";", ",")[:28]
|
||||
lines.append(f"PT;{_tf};{_nm};{_m.get('dir') or ''};"
|
||||
f"{float(_trg):.3f};{float(_zl):.3f}")
|
||||
except Exception as _pe:
|
||||
log.debug(f"PT-Export: {_pe}")
|
||||
|
||||
# ── MELDUNGEN oben links (MS;<text>) — User-Wunsch 2026-08-17 ────
|
||||
# Dieselben Zeilen wie die Dashboard-Karte „Meldungen" (`#card-pos`).
|
||||
# ⚠⚠ NUR ZUSAMMENSETZEN, NICHT NEU RECHNEN. Der Konsens-Pfeil hat im
|
||||
|
||||
Reference in New Issue
Block a user