Doku: PT-Muster-Export + der PERIOD_CURRENT-Fehler
This commit is contained in:
@@ -9459,3 +9459,48 @@ unabhängig vom Schalter berechnet. ⚠ Diese Anzeigen tragen dieselbe Inversion
|
||||
sie sind Kontext, kein Urteil.
|
||||
**Was weiter schützt:** Broker-SL 2×ATR, Trailing, Time-Stop.
|
||||
**Zurück:** Knopf **S/R** — dann bitte den Wächter-Anker mitdrehen.
|
||||
|
||||
## ✅⚠⚠ BESTÄTIGTES CHARTMUSTER IM MT5-CHART (2026-08-21, Indikator v1.45/1.46)
|
||||
|
||||
User: „kannst Du das bestätigte Chartmuster in das jeweils passende Chart
|
||||
(M1, M5, M15, H1) im MT5 einzeichnen".
|
||||
|
||||
**Neue CSV-Zeile `PT;<TF>;<name>;<richtung>;<trigger>;<ziel>`** — gespeist aus
|
||||
`engine.patterns_tf` (fünf `PatternDetector`, je Zeitebene einer). Exportiert
|
||||
werden **nur `status == "confirmed"`**-Muster. Der Indikator zeichnet die
|
||||
Trigger-/Nackenlinie durchgezogen und das Measured-Move-Ziel gepunktet, dazu ein
|
||||
Label mit Name und Richtung.
|
||||
|
||||
⚠ **Das Label nennt die Messung mit: „(trifft 13–38 %)".** Die
|
||||
Muster-Klasse ist im Projekt **3× als Signal verworfen**
|
||||
(`backtest_doubletop.py`, `backtest_structure_tf.py`, `backtest_patterns.py`) —
|
||||
der positive ØR dort kam nachweislich vom **Trailing auf einem Momentum-Bruch**,
|
||||
nicht von der Muster-Prognose. Eine Linie im Chart ohne diese Zahl würde
|
||||
autoritativer aussehen, als sie ist. **Kein Verdict-Gewicht, kein Trigger.**
|
||||
|
||||
⚠ **Round-Robin statt fünf Aufrufe am Stück.** Der erste Bau ließ alle fünf
|
||||
Detektoren in EINEM Trend-Loop-Durchlauf unter `mt5_lock` laufen — real hängte
|
||||
danach `_trend_loop` beim Serverstart, `_pos_loop` 70 s später, und alle 15 s
|
||||
stand „Time-Stop-Close fehlgeschlagen: MT5 belegt" im Log (User: „G/V
|
||||
aktualisiert nicht mehr"). Jetzt wird **je Durchlauf genau EINE** Zeitebene
|
||||
aufgefrischt.
|
||||
|
||||
⚠⚠ **DER FEHLER, der es unsichtbar machte — und er traf JEDE Zeitebene, nicht
|
||||
nur M30 (v1.46, User: „in M30 müsste ,Tasse mit Henkel' zu sehen sein, ist aber
|
||||
nicht sichtbar").** Der TF-Filter verglich gegen `TFName(PERIOD_CURRENT)`.
|
||||
**`PERIOD_CURRENT` ist der WERT 0.** MT5-Funktionen wie `iTime()` deuten die 0
|
||||
selbst als „dieser Chart" — ein `switch` trifft damit aber **keinen case**, und
|
||||
`TFName()` fiel auf `EnumToString()` zurück und lieferte den String
|
||||
`"PERIOD_CURRENT"`. Der Vergleich war deshalb **immer** wahr, jede `PT`-Zeile
|
||||
wurde übersprungen.
|
||||
✅ **Fix: `TFName((ENUM_TIMEFRAMES)_Period)`** — `_Period` liefert die
|
||||
tatsächliche Chart-Periode als Wert. Die übrigen `PERIOD_CURRENT`-Vorkommen im
|
||||
Indikator sind **korrekt** und bleiben: sie stehen als Argument in
|
||||
`iTime()`/`Bars()`, wo MT5 die 0 auflöst.
|
||||
⚠ **Merksatz: `PERIOD_CURRENT` ist ein Argument-Platzhalter, kein Wert.** Wer
|
||||
darauf vergleicht oder `switch`t, prüft gegen die 0 — und die gehört zu keiner
|
||||
Zeitebene.
|
||||
⚠ Von außen sah alles richtig aus: CSV-Zeile vorhanden, Snapshot `confirmed`,
|
||||
`.ex5` frisch, `0 errors`. **Nur das Ergebnis fehlte** — dieselbe Klasse wie die
|
||||
vier dokumentierten Fälle „Erfolg melden, wo nichts geprüft wurde".
|
||||
Abschaltbar: `InpShowMuster=false`; Farben `InpMusterBullColor`/`…BearColor`.
|
||||
|
||||
Reference in New Issue
Block a user