diff --git a/.gitignore b/.gitignore index 5f8e99b..65e6b07 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ indicators/postman.pine +sourceschnipsel/ diff --git a/README.md b/README.md index 902defc..812c127 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,13 @@ --- ## 📌 Aktuelle Version -➡️ **[Croc Vibes v4.1.2](./indicators/croc_vibes.pine)** ✅ + + +### 📸 Aktueller Screenshot + +![Aktueller Screenshot](./docs/img/screenshot_aktuell.png) + +➡️ **[Croc Vibes v4.2.0](./indicators/croc_vibes.pine)** ✅ 👉 Alle Änderungen im [CHANGELOG.md](./docs/CHANGELOG.md) --- diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 23af593..6a41e3b 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [4.2.0] – 2025-09-15 +### Added +- **Preisskalen-Labels** für wichtige Levels + - *Wolke Pink*: permanent auf der Preisskala (`trackprice=true`) + - *Blues Long/Short*: **nur wenn aktiv**, **nur auf der letzten Kerze**, **ohne Linien im Chart** + (`display=display.price_scale` + `barstate.islast`) + - Farb-Inputs für alle drei Preisskalen-Einträge + +### Changed +- **Preis-Textboxen an Blues-Linien** sind weiterhin im Code, aber **standardmäßig auskommentiert** + - Toggle „Preis-Textboxen an Blues-Linien anzeigen“ bleibt zur späteren Reaktivierung erhalten + +### Fixed +- Verhindert, dass eine blaue Pane-Linie angezeigt wird, wenn Blues nicht aktiv ist + +--- + ## [4.1.2] – 2025-09-06 ### Added - **Toggle für Preis-Textboxen** @@ -75,4 +92,4 @@ - Dokumentation aktualisiert (README, FAQ, Installation) ### Deprecated -- Separates Blues-Add-on (`blues_addon.pine`) – bitte Kombi-Version nutzen +- Separates Blues-Add-on (`blues_addon.pine`) – bitte Kombi-Version nutzen diff --git a/docs/img/screenshot_aktuell.png b/docs/img/screenshot_aktuell.png new file mode 100644 index 0000000..0edf4e8 Binary files /dev/null and b/docs/img/screenshot_aktuell.png differ diff --git a/indicators/croc_vibes.pine b/indicators/croc_vibes.pine index ed66163..137c536 100644 --- a/indicators/croc_vibes.pine +++ b/indicators/croc_vibes.pine @@ -1,5 +1,5 @@ // ================================================================================================= -// Croc Vibes by Telgos – Version 4.1.2 +// Croc Vibes by Telgos – Version 4.2.0 // Lizenz: Mozilla Public License 2.0 – https://mozilla.org/MPL/2.0/ // Danksagung (Basis/Ideen): amper04, ray_duke, husky, Audidriver13 // ================================================================================================= @@ -41,7 +41,7 @@ src1 = input.source(close, "Day OverBought 1", group="MSI") // ========= Darstellung ========= label_offset_mult = input.float(1.5, title="Label-Abstand (ATR x)", minval=0.1, step=0.1, group="Darstellung") -show_price_labels = input.bool(true, "Preis-Textboxen an Blues-Linien anzeigen", group="Darstellung") +show_price_labels = input.bool(true, "Preis-Textboxen an Blues-Linien anzeigen (der Block ist derzeit auskommentiert)", group="Darstellung") // ========= Helper ========= asBool(src) => nz(src) > 0 @@ -315,38 +315,78 @@ telgos_2bar_prime_cond = long_pending_active and trigger_now_or_prev and (not re alertcondition(telgos_2bar_prime_cond, title="Telgos 2-Bar-Prime", message="Telgos 2-Bar-Prime – {{ticker}} {{interval}}") // ========= Preis-Textboxen an blauen Linien (Toggle) ========= -var label priceLblLong = na -var label priceLblShort = na +// Der gesamte Block ist auskommentiert, damit keine Zahlen-Labels mehr auf den Linien erscheinen. +// Zum Reaktivieren einfach die '//' entfernen. -if show_price_labels and long_pending_active and not na(longPendingLine) - int lx1 = line.get_x1(longPendingLine) - float ly1 = line.get_y1(longPendingLine) - string tL = str.tostring(ly1, format.mintick) - if na(priceLblLong) - priceLblLong := label.new(lx1, ly1, tL, xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_right, textcolor=color.blue, color=color.new(color.white, 100), size=size.normal) - else - label.set_x(priceLblLong, lx1) - label.set_y(priceLblLong, ly1) - label.set_text(priceLblLong, tL) -else - if not na(priceLblLong) - label.delete(priceLblLong) - priceLblLong := na +// var label priceLblLong = na +// var label priceLblShort = na -if show_price_labels and short_pending_active and not na(shortPendingLine) - int sx1 = line.get_x1(shortPendingLine) - float sy1 = line.get_y1(shortPendingLine) - string tS = str.tostring(sy1, format.mintick) - if na(priceLblShort) - priceLblShort := label.new(sx1, sy1, tS, xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_right, textcolor=color.blue, color=color.new(color.white, 100), size=size.normal) - else - label.set_x(priceLblShort, sx1) - label.set_y(priceLblShort, sy1) - label.set_text(priceLblShort, tS) -else - if not na(priceLblShort) - label.delete(priceLblShort) - priceLblShort := na +// if show_price_labels and long_pending_active and not na(longPendingLine) +// int lx1 = line.get_x1(longPendingLine) +// float ly1 = line.get_y1(longPendingLine) +// string tL = str.tostring(ly1, format.mintick) +// if na(priceLblLong) +// priceLblLong := label.new(lx1, ly1, tL, xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_right, textcolor=color.blue, color=color.new(color.white, 100), size=size.normal) +// else +// label.set_x(priceLblLong, lx1) +// label.set_y(priceLblLong, ly1) +// label.set_text(priceLblLong, tL) +// else +// if not na(priceLblLong) +// label.delete(priceLblLong) +// priceLblLong := na + +// if show_price_labels and short_pending_active and not na(shortPendingLine) +// int sx1 = line.get_x1(shortPendingLine) +// float sy1 = line.get_y1(shortPendingLine) +// string tS = str.tostring(sy1, format.mintick) +// if na(priceLblShort) +// priceLblShort := label.new(sx1, sy1, tS, xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_right, textcolor=color.blue, color=color.new(color.white, 100), size=size.normal) +// else +// label.set_x(priceLblShort, sx1) +// label.set_y(priceLblShort, sy1) +// label.set_text(priceLblShort, tS) +// else +// if not na(priceLblShort) +// label.delete(priceLblShort) +// priceLblShort := na + +// ========= Preisskala-Labels ========= +grpPS = "Preisskala-Labels" +show_ps_wolke = input.bool(true, "Wolke Linie Pink auf Preisskala", group=grpPS) +show_ps_bluel = input.bool(true, "Blues Long-Level auf Preisskala (nur aktiv)", group=grpPS) +show_ps_blues = input.bool(true, "Blues Short-Level auf Preisskala (nur aktiv)", group=grpPS) + +col_ps_wolke = input.color(color.new(color.fuchsia, 0), "Farbe: Wolke Pink", group=grpPS) +col_ps_bluel = input.color(color.new(color.blue, 0), "Farbe: Blues Long", group=grpPS) +col_ps_blues = input.color(color.new(color.blue, 0), "Farbe: Blues Short", group=grpPS) + +// Wolke (Pink): Linie im Pane + Preisskaleneintrag +plot(show_ps_wolke ? wolke_Line_pink : na, + title = "Wolke Pink", + color = col_ps_wolke, + linewidth = 1, + style = plot.style_line, + trackprice = true, + display = display.all) + +// Blues NUR Preisskala (keine Linie), nur auf der letzten Kerze und nur wenn aktiv +ps_bluel_val = show_ps_bluel and long_pending_active ? long_refHigh : na +ps_blues_val = show_ps_blues and short_pending_active ? short_refLow : na +ps_bluel_last = barstate.islast ? ps_bluel_val : na +ps_blues_last = barstate.islast ? ps_blues_val : na + +plot(ps_bluel_last, + title = "Blues Long-Level", + color = col_ps_bluel, + trackprice = true, + display = display.price_scale) + +plot(ps_blues_last, + title = "Blues Short-Level", + color = col_ps_blues, + trackprice = true, + display = display.price_scale) // ========= Dezente Labels / Shapes ========= if isPearlLong