TP-Anzeige entwirrt: doppelten Wert entfernt, Init-Formel ehrlich beschriftet
User-Frage "unterscheidet sich TP von TP1, TP2 oder TP3?" - sie deckte zwei
Fehler auf, beide von mir aus der vorigen Aenderung.
⚠ ZUERST DIE SACHE SELBST: der TP WIRD nachgezogen, aber nach DREI Formeln:
Init Entry ± 3,5xATR fest, gibt dem Trade Luft
Trail Bestkurs ∓ 0,5xATR zieht mit dem Hoch mit
Lock Bestkurs ∓ 0,3xATR sehr eng am Hoch
immer mindestens Entry ± 0,5xATR (schliesst nie im Verlust)
Er springt beim Phasenwechsel also von WEIT VOR dem Kurs auf KNAPP HINTER das
Hoch - ab Phase Trail ist er faktisch ein zweiter, engerer Ausstieg ueber dem
Stop. 63 TP-Setzungen im Log bestaetigen das.
① BEHOBEN - "TP2 · Trailing" in der Trade-Leiste zeigte DENSELBEN Wert wie das
Feld "TP" daneben. Eine Zahl doppelt. Entfernt; uebrig bleiben TP1 (Level)
und TP3 (Kegel) als das, was sie sind: Orientierungsmarken, die der
Broker-TP NICHT kennt. Das Feld "TP" bleibt editierbar.
② BEHOBEN - im M15-Setup-Block stand "TP2: ... (3,5xATR - das Trailing fuehrt
ihn nach)". Das war irrefuehrend: 3,5xATR ist NUR die Init-Formel, und ab
Phase Trail laeuft der TP nach einer anderen Regel. Jetzt: "Init-Ziel
3,5xATR - ab Phase Trail zieht der TP an den Bestkurs heran, ∓0,5xATR".
Verifiziert: 0 verbliebene tb-tp2-Referenzen in JS und HTML, span/div
ausgeglichen, keine doppelten IDs, node --check und Render-Probe gruen.
Reine Frontend-Aenderung (v=197), kein Neustart.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
6f1348adf3
commit
d59d0eeaee
+8
-3
@@ -444,8 +444,14 @@ function renderM15(s, snap) {
|
||||
`Stop Loss: <b>${f(sl, 3)}</b> <span class="dim">(2,0×ATR_M15)</span>`];
|
||||
if (geg) zl2.push(`TP1: <b>${f(geg.level, 3)}</b> <span class="dim">(Level · ` +
|
||||
`${100 - (geg.p_break ?? 50)} % haelt)</span>`);
|
||||
// ⚠⚠ Das ist die INIT-Formel. Ab Phase "Trail" laeuft der Broker-TP nach
|
||||
// einer ANDEREN Regel: `Bestkurs ∓ 0,5×ATR` (in "Lock" sogar ∓0,3×ATR),
|
||||
// also knapp HINTER dem Hoch statt weit davor. Wer 3,5×ATR fuer ein
|
||||
// festes Ziel haelt, liegt ab dem Phasenwechsel daneben — deshalb steht
|
||||
// es hier ausdruecklich dran.
|
||||
zl2.push(`TP2: <b>${f(lg ? e + 3.5 * atr : e - 3.5 * atr, 3)}</b> ` +
|
||||
`<span class="dim">(3,5×ATR — das Trailing fuehrt ihn nach)</span>`);
|
||||
`<span class="dim">(Init-Ziel 3,5×ATR — ab Phase Trail zieht der ` +
|
||||
`TP an den Bestkurs heran, ∓0,5×ATR)</span>`);
|
||||
if (k120) zl2.push(`TP3: <b>${f(lg ? k120.hi : k120.lo, 3)}</b> ` +
|
||||
`<span class="dim">(Kegel 120′, trifft ${Math.round(k120.coverage || 0)} %)</span>`);
|
||||
sb.innerHTML = zl2.join("<br>");
|
||||
@@ -1215,8 +1221,7 @@ function render(d) {
|
||||
$("tb-tp1").textContent = ziel
|
||||
? `${fmt(ziel.level, 3)} (${100 - (ziel.p_break ?? 50)}% hält)`
|
||||
: "—";
|
||||
// TP2 — der Broker-TP, den das Trailing fuehrt
|
||||
$("tb-tp2").textContent = p.tp ? fmt(p.tp, 3) : "—";
|
||||
// ⚠ TP2 entfernt — es zeigte denselben Wert wie das Feld `tb-tp`.
|
||||
// TP3 — Obergrenze des 80-%-Kegels auf 120 min
|
||||
const lv = ((d.cone || {}).levels) || [];
|
||||
const k = lv.find(x => x.band === 80 && x.minutes === 120);
|
||||
|
||||
+6
-4
@@ -12,7 +12,7 @@
|
||||
⚠ LOKAL eingebunden, kein CDN: die PWA laeuft ueber WireGuard
|
||||
und muss offline funktionieren. -->
|
||||
<link rel="stylesheet" href="pico.min.css?v=1">
|
||||
<link rel="stylesheet" href="style.css?v=196">
|
||||
<link rel="stylesheet" href="style.css?v=197">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Modul-Menü (ganz oben) -->
|
||||
@@ -90,8 +90,10 @@
|
||||
<input id="tb-tp" type="number" inputmode="decimal" step="0.01" placeholder="—"></span>
|
||||
<span class="tb-field gain"><label title="TP1 — das nächste STEHENDE Level in Trade-Richtung (M30-Pivots, dieselbe Quelle wie Chart und Gate ③), mit der Durchbruchwahrscheinlichkeit. ⚠ REINE ANZEIGE, wird nicht an den Broker geschickt. Ein fester TP am Gegenlevel ist gemessen der STÄRKSTE Gewinner-Kappen-Beleg des Projekts: er drehte den Squeeze von +0,102/+0,108 auf −0,066/−0,004 (backtest_trailing_sr.py). Als Orientierung nützlich, als Auftrag nicht.">TP1 · Level</label>
|
||||
<span class="tb-val" id="tb-tp1">—</span></span>
|
||||
<span class="tb-field gain"><label title="TP2 — der Broker-TP, den das Trailing dynamisch führt (Entry ± 3,5×ATR in Phase Init, danach mit dem Lauf nachgezogen). Das ist der einzige TP, der tatsächlich am Broker liegt.">TP2 · Trailing</label>
|
||||
<span class="tb-val" id="tb-tp2">—</span></span>
|
||||
<!-- ⚠ TP2 hier ENTFERNT (2026-08-20): es zeigte denselben Wert wie das
|
||||
Feld "TP" daneben — eine Zahl doppelt. Uebrig bleiben TP1 und
|
||||
TP3 als das, was sie sind: Orientierungsmarken, die der
|
||||
Broker-TP NICHT kennt. -->
|
||||
<span class="tb-field gain"><label title="TP3 — die Obergrenze des 80-%-Kegels auf 120 Minuten (core/cone.py). Out-of-sample geprüft: die 80-%-Bänder treffen real 77 %. ⚠ Das ist eine Aussage über die REICHWEITE, nicht über die Richtung — weiter kommt der Kurs in dieser Zeit selten, nicht: er kommt dorthin.">TP3 · Kegel 120′</label>
|
||||
<span class="tb-val" id="tb-tp3">—</span></span>
|
||||
<span class="tb-field gain"><label title="Mindestgewinn in Euro, unter dem der Auto-Close am Level NICHT schließt. Leer oder 0 = aus.">Gewinn-Close</label>
|
||||
@@ -414,6 +416,6 @@
|
||||
</div>
|
||||
<div id="toast" class="toast hidden"></div>
|
||||
|
||||
<script src="app.js?v=196"></script>
|
||||
<script src="app.js?v=197"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user