29 Commits

Author SHA1 Message Date
27cf65e46d docs/Installation.md aktualisiert
Update Install und Update
2025-09-24 07:20:43 +00:00
981ffa9ed0 docs/FAQ.md aktualisiert
update faq
2025-09-24 07:16:15 +00:00
8a0dde0ebf update zur performance 2025-09-21 19:35:33 +00:00
1db42acb72 docs/FAQ.md aktualisiert
lösung für hängen
2025-09-19 17:11:06 +00:00
228a87bca6 README.md aktualisiert 2025-09-19 05:31:43 +00:00
52b0d1aba9 docs/Installation.md aktualisiert 2025-09-19 04:35:29 +00:00
8bb3840879 .... 2025-09-16 21:26:11 +02:00
4592860598 fix(stephan-setup): berücksichtigt wieder 'Rotes Plus' als Zusatzbedingung
- Bugfix: 'Rotes Plus' war in v4.2.1 versehentlich entfernt worden
- Stephan-Setup prüft nun erneut korrekt auf OR-Verknüpfung inkl. Rotes Plus
- Versionsnummer im Header und Indikatornamen auf v4.2.2 angehoben
- CHANGELOG.md um Eintrag [4.2.2] ergänzt
2025-09-16 21:21:08 +02:00
c709c885a3 getrennte schalter für blaue linie und textbox 2025-09-15 18:59:40 +02:00
40f63237f9 update docs 2025-09-15 17:38:10 +02:00
4c4d0e418e kleine korrektur 2025-09-15 17:36:01 +02:00
c17ff4378c feat: Update auf Version 4.2.0 mit Preisskalen-Labels
- Pine Script auf v4.2.0 aktualisiert
  - Preisskalen-Labels für Wolke Pink, Blues Long und Blues Short hinzugefügt
  - Blues-Level erscheinen nur, wenn aktiv, nur auf letzter Kerze, ohne Pane-Linie
  - Farb-Inputs für alle Preisskalen-Labels ergänzt
  - Block für Preis-Textboxen an Linien auskommentiert (zur späteren Reaktivierung)
  - Fix: keine blauen Linien mehr im Chart, wenn Blues inaktiv

- README.md
  - Aktuelle Version auf v4.2.0 gesetzt
  - neuen Abschnitt „📸 Aktueller Screenshot“ mit screenshot_aktuell.png eingefügt

- CHANGELOG.md
  - Eintrag für Version 4.2.0 hinzugefügt mit Details zu Added/Changed/Fixed
2025-09-15 16:50:03 +02:00
a5f54ac435 update .gitignore 2025-09-15 16:20:24 +02:00
c94939fed5 update mit weiteren aktuellen Fragen 2025-09-13 16:32:02 +02:00
dddf125f51 docs/FAQ.md aktualisiert 2025-09-13 06:53:53 +00:00
77ce97c36f README.md aktualisiert 2025-09-07 12:02:08 +00:00
f5023377f3 README.md aktualisiert 2025-09-07 12:01:29 +00:00
ffbb69c471 docs/FAQ.md aktualisiert 2025-09-07 11:55:00 +00:00
554db14cc6 README.md aktualisiert 2025-09-06 10:28:07 +00:00
b8dd293ec1 README.md aktualisiert 2025-09-06 10:25:26 +00:00
34b46462fc README.md aktualisiert 2025-09-06 10:24:20 +00:00
3605d7d96e README.md aktualisiert 2025-09-06 10:23:36 +00:00
35080b54f3 README.md aktualisiert 2025-09-06 10:22:53 +00:00
eab54e2264 LICENSE.md aktualisiert 2025-09-06 10:19:53 +00:00
524dc31d64 LICENSE.md aktualisiert 2025-09-06 10:19:04 +00:00
eed7281883 README.md aktualisiert 2025-09-06 10:18:36 +00:00
6a901ea687 README.md aktualisiert 2025-09-06 10:18:13 +00:00
227ec7a73b Merge branch 'main' of ssh://git-telgos/Telgos/Croc_Vibes 2025-09-06 12:15:30 +02:00
8b4a556d41 Version 4.1.3: Schalter für Preis-Textboxen ergänzt und Filter-Option umbenannt
- Neuer Toggle „Preis-Textboxen an Blues-Linien anzeigen“ (Standard: an)
- Telgos 2-Bar-Prime Filter klarer beschrieben („Ein Hoch/Tief kommt noch für Filter aktiv“) inkl. Tooltip
2025-09-06 12:10:24 +02:00
8 changed files with 495 additions and 208 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
indicators/postman.pine
sourceschnipsel/

View File

@@ -1,14 +1,16 @@
--- ---
⚠️ **Wichtiger Hinweis** ⚠️ ⚠️ **Wichtiger Hinweis** ⚠️
---
**Croc Vibes** ist ein *temporäres Community-Hilfsskript*, insbesondere für **Anfänger**. **Croc Vibes** ist ein *temporäres Community-Hilfsskript*, insbesondere für **Anfänger**.
Es ist **keine temporäres Community-Hilfsskript** und **kein Ersatz** für den offiziellen Indikator. Es ist **kein offizielles Produkt** und **kein Ersatz** für den Original-Indikator.
Der originale **Croc-Indikator** von André ist ein **kommerzielles Produkt** und kann erworben werden. Der originale **Croc-Indikator** von André ist ein **kommerzielles Produkt** und kann erworben werden.
Dieses Projekt **verfolgt keine wirtschaftlichen Interessen** es ist ein **Beitrag von Telgos für die Community**. Dieses Projekt **verfolgt keine wirtschaftlichen Interessen** es ist ein **freiwilliger Beitrag von Telgos für die Community**.
Das Hilfsskript stellt zusätzliche **Labels**, **Alerts** sowie eine **Speziallogik für offene Blaue** bereit, um Einstieg und Verständnis zu erleichtern. Das Hilfsskript stellt zusätzliche **Labels**, **Alerts** sowie eine **Speziallogik für offene Blaue** bereit, um Einstieg und Verständnis zu erleichtern.
Sobald im Forum das **direkte Teilen von Skripten** möglich ist, wird dieses Hilfsskript eingestellt, damit die Community wieder **geschlossen im Forum** bleibt. Sobald im Forum das **direkte Teilen von Skripten** möglich ist, wird dieses Hilfsskript eingestellt, damit die Community wieder **geschlossen im Forum** bleibt.
--- ---
# Lizenz # Lizenz
@@ -16,8 +18,8 @@ Sobald im Forum das **direkte Teilen von Skripten** möglich ist, wird dieses Hi
Dieses Projekt steht unter der **Mozilla Public License 2.0 (MPL-2.0)**. Dieses Projekt steht unter der **Mozilla Public License 2.0 (MPL-2.0)**.
Das bedeutet: Das bedeutet:
- Du darfst den Code frei nutzen, ändern und weitergeben. - Du darfst den Code frei nutzen, ändern und weitergeben.
- Änderungen am Code müssen ebenfalls unter der MPL-2.0 veröffentlicht werden. - Änderungen am Code müssen ebenfalls unter der MPL-2.0 veröffentlicht werden.
- Eine kommerzielle Nutzung ist erlaubt, solange die Lizenzbedingungen eingehalten werden. - Eine kommerzielle Nutzung ist erlaubt, solange die Lizenzbedingungen eingehalten werden.
👉 Den vollständigen Lizenztext findest du hier: [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/). 👉 Den vollständigen Lizenztext findest du hier: [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/).

View File

@@ -1,4 +1,6 @@
![Croc Vibes Banner](./docs/img/croc_vibes_banner.png) <p align="left">
<img src="./docs/img/croc_vibes_banner.png" alt="Croc Vibes Banner" width="600">
</p>
--- ---
@@ -8,58 +10,70 @@
--- ---
⚠️ **Wichtiger Hinweis** ⚠️ # Croc Vibes Community Hilfsskript
**Croc Vibes** ist ein *Community-Hilfsskript*. ![NEW](https://img.shields.io/badge/NEW-green?style=for-the-badge) [**Audiozusammenfassung Croc Vibes**](https://share.telgos.de/api/public/dl/1fcoY2qG?inline=true)
Dieses Projekt **verfolgt keine wirtschaftlichen Interessen** es ist ein **Beitrag von Telgos für die Community**.
Sobald im Forum das **direkte Teilen von Skripten** möglich ist, wird dieses Repository eingestellt. ---
![Communitycroc](./docs/img/e_community.png)
⚠️ **Wichtiger Hinweis** ⚠️
*Croc Vibes* ist ein **Community-Projekt** und **kein offizielles Skript von André Tiedje**.
➡️ Nutzung **auf eigene Verantwortung** es gibt **keinen Anspruch auf Support**.
---
## 📖 Inhaltsverzeichnis
- [Aktuelle Version](#-aktuelle-version)
- [Über das Projekt](#-über-das-projekt)
- [Installation](#-installation)
- [FAQ](#-faq)
- [Hinweis zur Nutzung](#-hinweis-zur-nutzung)
- [Lizenz](#-lizenz)
--- ---
## 📌 Aktuelle Version ## 📌 Aktuelle Version
➡️ **[Croc Vibes v4.0.0](./indicators/croc_vibes.pine)** ✅
👉 Details zu allen Änderungen siehe [CHANGELOG.md](./docs/CHANGELOG.md) ### 📸 Aktueller Screenshot
# ✨ Neues Feature: Telgos 2-Bar-Prime ![Aktueller Screenshot](./docs/img/screenshot_aktuell.png)
**Telgos 2-Bar-Prime** ist ein spezieller Alarmfilter für **Croc Vibes**: ➡️ **[Croc Vibes v4.2.2](./indicators/croc_vibes.pine)** ✅
👉 Alle Änderungen im [CHANGELOG.md](./docs/CHANGELOG.md)
- **Bedingung 1:** „Ein Hoch kommt noch“ (Blues Long) ist aktiv
- **Bedingung 2:** Mindestens ein definierter Auslöser (*Pearl Long, Ulti Rally, Stephan Setup, BGRL, Rotes Kreuz bei grüner Wolke*)
muss auf der **aktuellen Kerze (0)** oder der **vorherigen Kerze (1)** aufgetreten sein
--- ---
## Community-Hilfsskript ## 💡 Über das Projekt
**Croc Vibes** wurde entwickelt, weil der Croc 3.0 nur eine begrenzte Anzahl an Labels ausgibt. **Croc Vibes** wurde entwickelt, weil der Croc 3.0 nur eine begrenzte Anzahl an Labels ausgibt.
Gerade Anfänger profitieren von zusätzlichen Labels und klareren Signalzuweisungen. Gerade **Anfänger** profitieren von:
- zusätzlichen Labels 🎯
- klareren Signalzuweisungen 📊
- besserer Übersicht im Chart 🖥️
--- ---
## Installation ## ⚙️ Installation
📥 Anleitung: [Installation.md](./docs/Installation.md)
👉 Details siehe [Installation.md](./docs/Installation.md).
--- ---
## FAQ ## FAQ
🙋 Antworten auf häufige Fragen: [FAQ.md](./docs/FAQ.md)
👉 Häufige Fragen findest du in der [FAQ.md](./docs/FAQ.md).
--- ---
## Hinweis zur Nutzung ## 🛠 Hinweis zur Nutzung
Dieses Skript dient ausschließlich **zu Lern- und Community-Zwecken**.
Croc Vibes ist ein Community-Hilfsskript und nicht offiziell von André. Handel immer eigenverantwortlich! 💡
Es gibt keinen Anspruch auf Vollständigkeit oder Support Nutzung erfolgt auf eigene Verantwortung.
--- ---
## Lizenz ## 📜 Lizenz
Dieses Projekt steht unter der
[Mozilla Public License 2.0](https://mozilla.org/MPL/2.0/)
➡️ Details in [LICENSE.md](./LICENSE.md).
Dieses Projekt steht unter der [Mozilla Public License 2.0](https://mozilla.org/MPL/2.0/). ---
Siehe auch [LICENSE.md](./LICENSE.md).
<p align="center">🐊 Mit ❤️ von <b>Telgos</b> für die Community 🐊</p>

View File

@@ -1,4 +1,42 @@
# Changelog ## [4.2.2] 2025-09-16
### Fixed
- **Stephan-Setup** berücksichtigt wieder das **Rote Plus** als gültige Zusatzbedingung
- war in v4.2.1 versehentlich entfernt worden
- jetzt erneut korrekt mit OR-Verknüpfung eingebunden
- Versionsnummer im Header und Indikatornamen auf **v4.2.2** erhöht
---
## [4.2.1] 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**
- Neue Option im Menü: „Preis-Textboxen an Blues-Linien anzeigen“
- Standard: aktiviert
- Kann deaktiviert werden, wenn ein „cleanes“ Chart ohne Preisangaben bevorzugt wird
### Changed
- **Telgos 2-Bar-Prime: Filter-Option **
- Neuer Klartext: „Ein Hoch/Tief kommt noch für Filter aktiv“
- Mit Tooltip-Erklärung
- Standard: aktiviert
- Deaktivieren = lockerer Modus (Auslöser reicht, wenn er in den letzten beiden Kerzen vorkam)
--- ---
@@ -61,4 +99,4 @@
- Dokumentation aktualisiert (README, FAQ, Installation) - Dokumentation aktualisiert (README, FAQ, Installation)
### Deprecated ### Deprecated
- Separates Blues-Add-on (`blues_addon.pine`) bitte Kombi-Version nutzen - Separates Blues-Add-on (`blues_addon.pine`) bitte Kombi-Version nutzen

View File

@@ -1,97 +1,250 @@
# Croc Vibes FAQ # Croc Vibes FAQ
Dieses Projekt richtet sich **insbesondere an Anfänger** und erleichtert die Nutzung durch zusätzliche Labels, Alerts und eine Speziallogik für offene Blaue.
Dieses Projekt richtet sich an **Anfänger**, um die Nutzung durch zusätzliche Labels, Alerts und eine Speziallogik für offene Blaue zu erleichtern.
Denn die immer wiederkehrenden Fragen kosten viel zu viel *unwiederbringliche Lebenszeit*. 😉 Denn die immer wiederkehrenden Fragen kosten viel zu viel *unwiederbringliche Lebenszeit*. 😉
--- ---
## Übersicht
* [Allgemeines zu TradingView](#allgemeines-zu-tradingview)
* [Croc Vibes Nutzung](#croc-vibes-nutzung)
* [Technik & Logik](#technik--logik)
* [Performance von Croc Vibes](#-warum-wirkt-croc-vibes-manchmal-langsam-oder-hängt)
---
## Allgemeines zu TradingView
### ❓ Warum kommen nach Börsenschluss keine Alarme mehr? ### ❓ Warum kommen nach Börsenschluss keine Alarme mehr?
In **TradingView** basieren Alarme immer auf neuen Kursdaten. ✅ Kurzantwort: Nach Börsenschluss gibt es keine Kursdaten mehr → keine neuen Alarme.
Nach Börsenschluss liefert der Datenanbieter jedoch keine Ticks mehr dadurch entstehen keine neuen Kerzen und somit auch keine neuen Alarmauslöser.
🔎 **Wichtig zu wissen:** 🔎 Details:
- Das ist **kein Fehler im Script**, sondern Teil des TradingView-Designs.
- Alarme werden nur ausgelöst, wenn neue Kerzen oder Tick-Daten eintreffen.
- Nach Börsenschluss bleibt der Kurs stehen → keine neuen Signale.
- Sobald der Markt wieder öffnet, laufen deine Alarme automatisch weiter.
* TradingView-Alarme basieren auf neuen Kursdaten
* Nach Börsenschluss liefert der Datenanbieter keine Ticks → keine neuen Kerzen, keine Alarme
* Das ist **kein Fehler im Script**, sondern TradingView-Design
* Mit Marktöffnung laufen deine Alarme automatisch weiter
--- ---
### Wie richte ich den Telgos 2-Bar-Prime Alarmfilter ein? ### ❓ Warum muss ich meine Variablen nach einem Update neu zuordnen?
Der **Telgos 2-Bar-Prime** ist ein spezieller Alarmfilter, der zwei Bedingungen kombiniert: ✅ Kurzantwort: TradingView behandelt ein aktualisiertes Script wie ein neues.
Das Zurücksetzen der Variablen ist **by design** und nicht vermeidbar.
1. „Ein Hoch kommt noch“ (Blues Long) ist aktiv 📖 Siehe auch die ausführliche [Installation & Update-Anleitung](./Installation.md)
2. Mindestens ein definierter Auslöser (*Pearl Long, Ulti Rally, Stephan Setup, BGRL, Rotes Kreuz bei grüner Wolke*)
muss auf der aktuellen Kerze (0) oder der vorherigen Kerze (1) aufgetreten sein
Damit lassen sich aus Watchlisten mögliche Kandidaten für kurzfristige Setups herausfiltern.
Die eigentliche **Qualität der gefilterten Werte musst du aber selbst einschätzen** der Filter erleichtert nur die Vorauswahl.
🎥 Im folgendem Video wird Schritt für Schritt gezeigt, wie du den Alarm einrichtest:
[Telgos 2-Bar-Prime einrichten (Video)](https://share.telgos.de/api/public/dl/w1pHQeR6?inline=true)
--- ---
### Warum muss ich meine Variablen nach einem Update neu zuordnen? ### ❓ Welche TradingView-Version brauche ich für Croc Vibes?
Wenn der Original-Indikator entfernt oder aktualisiert wird oder wenn du am Code selbst etwas änderst behandelt TradingView den Indikator wie ein neues Script.
Das bedeutet, dass alle zuvor gemachten Eingaben und Variablen-Zuordnungen zurückgesetzt werden. ✅ Kurzantwort: **Essentials** reicht für Croc 3.0 + Croc Vibes.
So ist die Plattform konzipiert es handelt sich also nicht um einen Fehler, sondern um ein Verhalten **„by design“**.
Leider gibt es keine Möglichkeit, dieses Verhalten zu umgehen. 🔎 Details:
* Pine läuft in allen TV-Plänen
* Entscheidend: maximale Anzahl gleichzeitiger Indikatoren
* Viele Zusatz-Indis → höherer Plan evtl. sinnvoll
--- ---
### Warum kann Croc Vibes nicht im Pinescreener verwendet werden? ## Croc Vibes Nutzung
Das temporäre Community-Hilfsskript **Croc Vibes** entstand nur, weil der Croc 3.0 eine begrenzte Anzahl an Labels ausgibt und wir Anfänger von ein paar zusätzlichen Labels profitieren.
Da der Croc ständig weiterentwickelt wird, hoffen wir, dass in künftigen Versionen mehr Labels direkt enthalten sind. ### ❓ Wie richte ich den Telgos 2-Bar-Prime Alarmfilter ein?
✅ Kurzantwort: Zwei Bedingungen müssen erfüllt sein:
1. „Ein Hoch kommt noch“ (Blues Long) ist aktiv
2. Mindestens ein Auslöser (*Pearl Long, Ulti Rally, Stephan Setup, BGRL, Rotes Kreuz bei grüner Wolke*) liegt auf der aktuellen oder der vorherigen Kerze
🔎 Hinweis: Filter ist nur Vorauswahl Qualität musst du selbst prüfen.
🎥 Video: [Telgos 2-Bar-Prime einrichten](https://share.telgos.de/api/public/dl/w1pHQeR6?inline=true)
--- ---
### Ich sehe in der Auswahl mehrere Werte (z. B. Kerzenfarbe oder Wolke). Woher weiß ich, welcher richtig ist? ### ❓ Was ist der Unterschied zwischen dem Telgos 2-Bar-Prime und den selbst gebauten Combo-Alarmen?
Die Croc-Indikatoren liefern mehrere interne Werte (z.B. Kerze 1 = Grün, Kerze 2 = Schwarz, Kerze 3 = Rot).
In der Signal-Auswahl musst du den jeweils passenden Wert **manuell zuordnen**. **Kurzantwort:**
**Die Zahl steht für die Reihenfolge von oben** also der wievielte Parameter zugeordnet werden muss.
📖 Siehe den Installations-Guide im Video zu Schritt 2 wird die Zuweisung gezeigt. * **Combo-Alarme** → du wählst selbst aus, welche Signale kombiniert werden sollen. Es wird nur die aktuelle Kerze geprüft.
* **2-Bar-Prime** → festes Setup, das automatisch die letzten **zwei Kerzen** durchsucht. Es meldet alle Long-Signale, bei denen ein offener blauer Punkt aktiv ist.
🔎 **Details:**
* **Alert-Combo** ist ein Baukasten: flexibel, aber aufwändiger. Du musst jedes Signal einzeln auswählen und festlegen, ob UND/ODER gilt.
* **2-Bar-Prime** ist ein fertiger Filter: er sammelt automatisch alle relevanten Long-Signale der letzten beiden Kerzen zusammen mit offenen Blauen.
* Ergebnis: **Zeitersparnis** und **weniger Klickarbeit**, da die Logik für dich gebündelt ist.
💡 Hinweis: Der Prime ist nur eine **Arbeitshilfe**. Er ersetzt nicht die eigene Signal-Prüfung, macht das Screening aber deutlich schneller.
--- ---
### Warum sehe ich „Ein Hoch kommt noch“ / „Ein Tief kommt noch“ nicht immer? ### Warum gibt es den Telgos 2-Bar-Prime überhaupt?
Aktuelle Regel (ab v3.8.0):
- „**Ein Hoch kommt noch**“ wird **nur in grüner Wolke** markiert. **Kurzantwort:** Weil es mühsam ist, alle Signal-Kombinationen jedes Mal neu in der Combo oder im Screener zusammenzuklicken.
- „**Ein Tief kommt noch**“ wird **nur in roter Wolke** markiert.
🔎 **Details:**
* Der 2-Bar-Prime entstand aus reiner **Arbeitserleichterung**.
* Er schaut automatisch auf die letzten zwei Kerzen und sammelt alle relevanten Long-Signale mit offenen Blauen.
* Dadurch entsteht im Protokoll sofort eine übersichtliche Liste ohne dass man selbst jedes Signal einzeln auswählen muss.
* Ergebnis: **schnelleres Screening** und weniger Klickerei, die eigentliche Prüfung machst du dann direkt an den Charts.
--- ---
### Wie richte ich die AlertCombo ein? ### ❓ Reicht Croc Basic oder brauche ich Professional für Croc Vibes?
Im EingabeReiter unter **ALERTCOMBO**:
- bis zu **5** Signale wählbar
- **UND/ODER** schaltbar (Häkchen „Signale nicht kombinieren“)
- **AutoODER**, wenn **beide Blues** (Long & Short) ausgewählt sind
Zusätzlich kannst du einzelne SystemAlerts in TradingView über **„Alarm hinzufügen“** auf die jeweiligen Bedingungen legen (z.B. „Blues: … (Erfüllt)“). **Kurzantwort:** Für die Grundfunktionen reicht **Croc Basic**. Bestimmte Setups wie das **Stephan-Setup** benötigen jedoch zwingend den **MSI (Momentum Status Indikator)** aus dem **Croc Professional**.
🔎 **Details:**
* Croc Vibes liest seine Eingabevariablen direkt aus dem Croc-Indikator.
* Welche Variablen im **Croc Basic** vorhanden sind, ist eingeschränkt dokumentiert. Mit **Croc Professional** sind alle benötigten Inputs verfügbar.
* Der **MSI** ist Pflichtbestandteil für Setups wie **Stephan**, **Ulti Rally** und **BGRL**.
* Ohne Zuweisung des MSI-Werts vom Croc zum Croc Vibes können diese Setups **nicht funktionieren**.
👉 Fazit: **Basic reicht** für die klassischen Signale (Pearl Diver, Deluxe, Red Devil etc.).
Für Setups mit Momentum-Logik (Stephan, Ulti Rally, BGRL) ist **Professional notwendig**.
--- ---
### Welche TradingView-Version brauche ich für Croc Vibes? ### ❓ Wie nutze ich den TradingView-Aktienscreener in Verbindung mit Croc Vibes?
Das hängt von der Anzahl der gleichzeitig laufenden Indikatoren ab: ✅ Kurzantwort: Der Aktienscreener ist eine **TradingView-Funktion**, kein Teil von Croc Vibes. Damit kannst du dir eigene Watchlisten zusammenstellen, auf denen dann die Croc-Signale/Alarme laufen.
- **Essentials** reicht in der Regel aus, wenn du nur **Croc 3.0 + Croc Vibes** parallel laufen lassen möchtest. 🔎 **Details:**
- Falls du viele zusätzliche Indikatoren/Setups einbindest, kann ein höherer Plan sinnvoll sein (mehr gleichzeitige Indikatoren-Slots).
👉 Es geht also **nicht** darum, dass Pine Script nur in der „Professional-Version“ funktioniert Pine läuft in allen TV-Plänen. Entscheidend ist die maximale Zahl an Indikatoren, die dein Abo erlaubt. * Öffne unten in TradingView den Reiter **„Screener“** → **„Aktien-Screener“**.
* Dort kannst du nach Kriterien wie Land, Index, Branche, Volumen oder technische Filter suchen.
* Ausgewählte Werte kannst du in eine **eigene Watchlist übernehmen**.
* Auf dieser Watchlist laufen dann deine **Croc Vibes Alarme** → so hast du die Treffer direkt gesammelt.
💡 Tipp: Du musst im Screener **keine Croc-Signale eintippen** er ist nur für die Vorauswahl der Werte da.
--- ---
## Muss ich alle Croc-Indikatoren aktiv haben, damit Croc Vibes funktioniert? ### ❓ Warum zeigt der 2-Bar-Prime manchmal Fehler bei einzelnen Symbolen?
Für Croc Vibes v4.0.0 brauchst du die drei Kern-Indikatoren: ✅ Kurzantwort: Weil er immer die letzten **zwei Kerzen** braucht. Fehlen Kerzen oder sind unvollständig, kann er nicht berechnen.
- **Croc Chart** 🔎 **Details:**
- **Croc Lochstreifen**
- **Croc MSI**
Genau aus diesen Indis kommen die Variablen, die das Script benötigt. * Passiert oft bei Märkten mit dünnem Handel oder abweichenden Handelszeiten (z. B. manche mexikanische Aktien).
* Auch fehlerhafte Datenfeeds oder Splits können `na`-Werte erzeugen.
* Bei großen, liquiden US/EU-Aktien tritt das Problem praktisch nie auf.
👉 Lösung: Ich nehme solche Werte einfach aus der Watchlist, dann läuft der Prime stabil.
---
### ❓ Warum kann Croc Vibes nicht im Pinescreener verwendet werden?
✅ Kurzantwort: Croc Vibes ist ein Community-Hilfsskript, kein vollwertiger Indikator.
🔎 Details:
* Dient nur zur Ergänzung (mehr Labels für Anfänger)
* Croc 3.0 ist die Basis, Vibes erweitert nur
* Pinescreener-Unterstützung ist nicht vorgesehen
---
### ❓ Ich sehe in der Auswahl mehrere Werte (z. B. Kerzenfarbe oder Wolke). Woher weiß ich, welcher richtig ist?
✅ Kurzantwort: Die Zahl steht für die Reihenfolge von oben.
🔎 Details:
* Croc-Indikatoren liefern mehrere interne Werte
* Signal-Auswahl muss **manuell** zugeordnet werden
* 📖 Installations-Guide → Video Schritt 2 zeigt Zuweisung
---
### ❓ Warum sehe ich „Ein Hoch kommt noch“ / „Ein Tief kommt noch“ nicht immer?
✅ Kurzantwort: Diese Signale erscheinen nur abhängig von der Wolke.
🔎 Details (ab v3.8.0):
* „Ein Hoch kommt noch“ → **nur in grüner Wolke**
* „Ein Tief kommt noch“ → **nur in roter Wolke**
---
### ❓ Wie richte ich die Alert-Combo ein?
✅ Kurzantwort: Bis zu 5 Signale kombinierbar, UND/ODER schaltbar.
🔎 Details:
* Eingabe-Reiter → **ALERT-COMBO**
* Max. 5 Signale auswählbar
* „Signale nicht kombinieren“ = UND/ODER umschalten
* Auto-ODER, wenn beide Blues (Long & Short) ausgewählt sind
* Zusätzlich: TV-Alarme pro Signal möglich
---
## Technik & Logik
### ❓ Was bedeutet „Zonenpflege für grüne/rote Wolke (Blues-Logik)“?
✅ Kurzantwort: Die Zonenpflege vereinfacht die 78,6 %-Retracement-Regel mit Wolken und Swings.
🔎 Details:
* Grüne Wolke → höchstes Hoch = Basis für „Ein Hoch kommt noch“
* Rote Wolke → tiefstes Tief = Basis für „Ein Tief kommt noch“
* Zone wird nicht angezeigt → liefert Referenz für blaue Linie & Blues-Label
---
### ❓ Muss ich alle Croc-Indikatoren aktiv haben, damit Croc Vibes funktioniert?
✅ Kurzantwort: Ja, für v4.0.0 brauchst du die 3 Kern-Indikatoren.
🔎 Details:
* **Croc Chart**
* **Croc Lochstreifen**
* **Croc MSI**
* Daraus kommen die Variablen, die Croc Vibes benötigt
---
### ❓ Warum wirkt Croc Vibes manchmal langsam oder „hängt“?
✅ Kurzantwort: Croc Vibes selbst ist schlank. Die Last entsteht in der Übergabe der vielen Signale aus Croc 3.0.
🔎 Details:
* Croc Vibes kombiniert nur die fertigen Signale über `input.source()`.
* Die eigentliche Berechnung passiert in Croc 3.0.
* Erst wenn alle Werte übergeben sind, kann Croc Vibes sie anzeigen.
* Der Flaschenhals ist daher nicht Vibes und auch nicht Croc 3.0 allein, sondern die **Übergabe der vielen `input.source`-Serien zwischen beiden**.
💡 Lösung in der Praxis:
* Nur **ein Fenster pro Symbol** mit Croc 3.0 + Croc Vibes gleichzeitig verwenden.
* Den **Screener nur bei Bedarf** laufen lassen.
* Damit treten im Alltag keine Probleme mehr auf.
🔄 Was bei anderen Nutzern geholfen hat:
* Ein neues Chartfenster öffnen, das alte schließen und Croc 3.0 + Croc Vibes dort neu einrichten.
* Vermutlich bleiben bei zu vielen offenen Anfragen manchmal Übergaben in TradingView hängen. Das ist allerdings nur eine Vermutung, da man nicht in die TradingView-Engine schauen kann.
---
### ❓ Wie installiere ich die aktuelle Croc Vibes Version richtig?
✅ Kurzantwort:
- Alte Croc Vibes Indikatoren und Screener löschen
- Neuen Code in TradingView einfügen
- Dem Chart hinzufügen und prüfen, ob die Versionsnummer sichtbar ist
📖 Für die ausführliche Schritt-für-Schritt-Anleitung siehe [Installation & Update](./Installation.md)

View File

@@ -1,11 +1,23 @@
# Installation # Installation & Update
## Wichtig bei Updates
👉 Nur relevant, wenn du Croc Vibes **schon einmal installiert hast**:
1. **Alle alten Croc Vibes Indikatoren löschen** (alles, was mit „Croc Vibes…“ beginnt).
2. **Alle alten Screener auf Croc Vibes Basis löschen** (falls vorhanden).
3. In TradingView → **Neu erstellen → Indikator** wählen.
4. Den neuen Code aus `croc_vibes.pine` einfügen und speichern.
5. Dem Chart hinzufügen und prüfen, ob die **aktuelle Versionsnummer** angezeigt wird.
⚠️ Nur so vermeidest du Konflikte mit alten Versionen.
---
## Dateien ## Dateien
`indicators/` Pine Scripts `indicators/` Pine Scripts
- `croc_vibes.pine` (v4.0.0, aktuelles Hauptskript) - `croc_vibes.pine`
Alle anderen Skripte (Blues Add-on, Kombi-Version etc.) wurden entfernt. (Weitere Beschreibungen sind in den [Docs](./) enthalten nur als Referenz.)
Die Beschreibungen dazu sind noch in den [Docs](./) enthalten nur als Referenz.
--- ---
@@ -18,14 +30,14 @@ Die Beschreibungen dazu sind noch in den [Docs](./) enthalten nur als Refere
## Schritt 2: Variablen zuweisen (input.source) ## Schritt 2: Variablen zuweisen (input.source)
- In den „**Eingaben**“ alle benötigten Quellen (Croc/Lochstreifen/MSI) zuordnen. - In den „**Eingaben**“ alle benötigten Quellen (Croc/Lochstreifen/MSI) zuordnen.
- Die Reihenfolge ist ab v4.0.0 **verbessert** und entspricht jetzt der visuellen Darstellung im Overlay: - Die Reihenfolge ist ab v4.0.0 **verbessert** und entspricht jetzt der visuellen Darstellung im Overlay.
📺 **Videoanleitung (Schritt 2 Variablen zuweisen):** 📺 **Videoanleitung (Schritt 2 Variablen zuweisen):**
[Direkt im Browser ansehen](https://share.telgos.de/api/public/dl/6eo9V2cC?inline=true) [Direkt im Browser ansehen](https://share.telgos.de/api/public/dl/6eo9V2cC?inline=true)
--- ---
## Schritt 3: Alert-Combo konfigurieren ## Optional Schritt 3: Alert-Combo konfigurieren
Im Reiter **Eingaben** findest du den Bereich **ALERT-COMBO**: Im Reiter **Eingaben** findest du den Bereich **ALERT-COMBO**:
1. Wähle bis zu **5 Signale** (z. B. „Pearl Long“, „Blues: Ein Hoch kommt noch (aktiv)“). 1. Wähle bis zu **5 Signale** (z. B. „Pearl Long“, „Blues: Ein Hoch kommt noch (aktiv)“).
2. **UND/ODER**: Häkchen „Signale nicht kombinieren“ aktiv = **ODER**, sonst **UND**. 2. **UND/ODER**: Häkchen „Signale nicht kombinieren“ aktiv = **ODER**, sonst **UND**.
@@ -33,6 +45,6 @@ Im Reiter **Eingaben** findest du den Bereich **ALERT-COMBO**:
--- ---
## Schritt 4: TradingView-Alerts anlegen ## Optional Schritt 4: TradingView-Alerts anlegen
- Rechtsklick im Chart → **Alarm hinzufügen** → gewünschten Indikator/Alert auswählen. - Rechtsklick im Chart → **Alarm hinzufügen** → gewünschten Indikator/Alert auswählen.
- Für Blues existieren eigene Alerts: **Start**, **Aktiv**, **Erfüllt**, **Wolkenbruch**. - Für Blues existieren eigene Alerts: **Start**, **Aktiv**, **Erfüllt**, **Wolkenbruch**.

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

View File

@@ -1,15 +1,12 @@
// ================================================================================================= // =================================================================================================
// Croc Vibes by Telgos Version 4.1.1 // Croc Vibes by Telgos Version 4.2.2
// Lizenz: Mozilla Public License 2.0 https://mozilla.org/MPL/2.0/ // Lizenz: Mozilla Public License 2.0 https://mozilla.org/MPL/2.0/
// Danksagung (Basis/Ideen): amper04, ray_duke, husky, Audidriver13 // Danksagung (Basis/Ideen): amper04, ray_duke, husky, Audidriver13
// ================================================================================================= // =================================================================================================
//@version=6 //@version=6
indicator("Croc Vibes by Telgos", overlay=true, max_labels_count=500, max_lines_count=500) indicator("Croc Vibes by Telgos v4.2.2", overlay=true, max_labels_count=500, max_lines_count=500)
// ------------------------------------- // ========= Eingaben: Chart-Signale =========
// Eingaben: Chart-Signale
// -------------------------------------
wolke_Line_pink = input.source(title="Wolke Linie Pink", defval=close, group="Chart-Signale") wolke_Line_pink = input.source(title="Wolke Linie Pink", defval=close, group="Chart-Signale")
cloud_punkt_long = input.source(title="Cloud Punkt Long", defval=close, group="Chart-Signale") cloud_punkt_long = input.source(title="Cloud Punkt Long", defval=close, group="Chart-Signale")
red_devil_long = input.source(title="Red Devil Long", defval=close, group="Chart-Signale") red_devil_long = input.source(title="Red Devil Long", defval=close, group="Chart-Signale")
@@ -23,36 +20,37 @@ lollipop_long = input.source(title="Lollipop long", defval=close, group
aw_rocket_long = input.source(title="AW-Rocket long", defval=close, group="Chart-Signale") aw_rocket_long = input.source(title="AW-Rocket long", defval=close, group="Chart-Signale")
bgrl_signal = input.source(title="Black Green Rocket Long", defval=close, group="Chart-Signale") bgrl_signal = input.source(title="Black Green Rocket Long", defval=close, group="Chart-Signale")
// ------------------------------------- // ========= Eingaben: Lochstreifen / MSI =========
// Eingaben: Lochstreifen / MSI
// -------------------------------------
kerze_g = input.source(title="Kerzenfarbe (1) Gruen", defval=close, group="Lochstreifen") kerze_g = input.source(title="Kerzenfarbe (1) Gruen", defval=close, group="Lochstreifen")
kerze_s = input.source(title="Kerzenfarbe (2) Schwarz", defval=close, group="Lochstreifen") kerze_s = input.source(title="Kerzenfarbe (2) Schwarz", defval=close, group="Lochstreifen")
kerze_r = input.source(title="Kerzenfarbe (3) Rot", defval=close, group="Lochstreifen") kerze_r = input.source(title="Kerzenfarbe (3) Rot", defval=close, group="Lochstreifen")
status_r = input.source(title="Status (2) Rot", defval=close, group="Lochstreifen") status_r = input.source(title="Status (2) Rot", defval=close, group="Lochstreifen")
status_g = input.source(title="Status (3) Grün", defval=close, group="Lochstreifen") status_g = input.source(title="Status (3) Grün", defval=close, group="Lochstreifen")
wolke_g = input.source(title="Wolke (1) Grün", defval=close, group="Lochstreifen") wolke_g = input.source(title="Wolke (1) Grün", defval=close, group="Lochstreifen")
wolke_r = input.source(title="Wolke (3) Rot", defval=close, group="Lochstreifen") wolke_r = input.source(title="Wolke (3) Rot", defval=close, group="Lochstreifen")
trend_s = input.source(title="Trend (1) Schwarz", defval=close, group="Lochstreifen") trend_s = input.source(title="Trend (1) Schwarz", defval=close, group="Lochstreifen")
trend_r = input.source(title="Trend (2) Rot", defval=close, group="Lochstreifen") trend_r = input.source(title="Trend (2) Rot", defval=close, group="Lochstreifen")
trend_g = input.source(title="Trend (3) Grün", defval=close, group="Lochstreifen") trend_g = input.source(title="Trend (3) Grün", defval=close, group="Lochstreifen")
setter_r = input.source(title="Setter (Trend 5) Rot", defval=close, group="Lochstreifen") setter_r = input.source(title="Setter (Trend 5) Rot", defval=close, group="Lochstreifen")
setter_g = input.source(title="Setter (Trend 6) grün", defval=close, group="Lochstreifen") setter_g = input.source(title="Setter (Trend 6) grün", defval=close, group="Lochstreifen")
welle_g = input.source(title="Welle (1) grün", defval=close, group="Lochstreifen") welle_g = input.source(title="Welle (1) grün", defval=close, group="Lochstreifen")
welle_gg = input.source(title="Welle (2) dunkelgrün", defval=close, group="Lochstreifen") welle_gg = input.source(title="Welle (2) dunkelgrün", defval=close, group="Lochstreifen")
welle_r = input.source(title="Welle (4) Rot", defval=close, group="Lochstreifen") welle_r = input.source(title="Welle (4) Rot", defval=close, group="Lochstreifen")
welle_rr = input.source(title="Welle (6) dunkelRot", defval=close, group="Lochstreifen") welle_rr = input.source(title="Welle (6) dunkelRot", defval=close, group="Lochstreifen")
src1 = input.source(close, "Day OverBought 1", group="MSI") src1 = input.source(close, "Day OverBought 1", group="MSI")
// ------------------------------------- // ========= Darstellung =========
// Darstellung label_offset_mult = input.float(1.5, title="Label-Abstand (ATR x)", minval=0.1, step=0.1, group="Darstellung")
// ------------------------------------- show_price_textbox = input.bool(true, "Preis-Textboxen an Blues-Level anzeigen", group="Darstellung")
label_offset_mult = input.float(1.5, title="Label-Abstand (ATR x)", minval=0.1, step=0.1, group="Darstellung") show_blues_lines = input.bool(true, "Blaue Pending-Linien im Chart anzeigen", group="Darstellung")
show_ps_wolke = input.bool(true, "Wolke Linie Pink auf Preisskala", group="Darstellung")
show_ps_bluel = input.bool(true, "Blues Long-Level auf Preisskala (nur aktiv)", group="Darstellung")
show_ps_blues = input.bool(true, "Blues Short-Level auf Preisskala (nur aktiv)", group="Darstellung")
col_ps_wolke = input.color(color.new(color.fuchsia, 0), "Farbe: Wolke Pink", group="Darstellung")
col_ps_bluel = input.color(color.new(color.blue, 0), "Farbe: Blues Long", group="Darstellung")
col_ps_blues = input.color(color.new(color.blue, 0), "Farbe: Blues Short", group="Darstellung")
// ------------------------------------- // ========= Helper =========
// Helper / Ableitungen
// -------------------------------------
asBool(src) => nz(src) > 0 asBool(src) => nz(src) > 0
atr = ta.atr(16) atr = ta.atr(16)
@@ -88,23 +86,27 @@ cz_r = asBool(kerze_r)
baerische_welle = wl_rr or wl_r baerische_welle = wl_rr or wl_r
bullische_welle = wl_gg or wl_g bullische_welle = wl_gg or wl_g
allRed = st_r and cz_r and wk_r and tr_r and set_r and baerische_welle // ========= Kernsignale =========
kerzeSG_l = st_r and (cz_s or cz_g) and wk_r and tr_r and set_r and baerische_welle allRed = st_r and cz_r and wk_r and tr_r and set_r and baerische_welle
isPearlLong = kerzeSG_l and allRed[1] and allRed[2] kerzeSG_l = st_r and (cz_s or cz_g) and wk_r and tr_r and set_r and baerische_welle
isPearlLong = kerzeSG_l and allRed[1] and allRed[2]
allGreen = st_g and cz_g and wk_g and tr_g and set_g and bullische_welle allGreen = st_g and cz_g and wk_g and tr_g and set_g and bullische_welle
kerzeSG_s = st_g and (cz_s or cz_r) and wk_g and tr_g and set_g and bullische_welle kerzeSG_s = st_g and (cz_s or cz_r) and wk_g and tr_g and set_g and bullische_welle
isPearlShort = kerzeSG_s and allGreen[1] and allGreen[2] isPearlShort = kerzeSG_s and allGreen[1] and allGreen[2]
stephan_zusatzbedingung_erfuellt = cp_long or rd_long or lolli_long or bb_long or awr_long or bgrl or g_plus // --- NEU: „Rotes Plus“ (r_plus) als Zusatzbedingung aufgenommen ---
stephan_zusatzbedingung_erfuellt = cp_long or rd_long or lolli_long or bb_long or awr_long or bgrl or g_plus or r_plus
stephan_setup = not na(src1) and wk_g and tr_s and set_r and stephan_zusatzbedingung_erfuellt stephan_setup = not na(src1) and wk_g and tr_s and set_r and stephan_zusatzbedingung_erfuellt
Kerze_in_wolke_gr = close - wolke_Line_pink Kerze_in_wolke_gr = close - wolke_Line_pink
ulti_rally = hgr_long and (Kerze_in_wolke_gr > 0) and st_r and cz_r and set_r and not baerische_welle ulti_rally = hgr_long and (Kerze_in_wolke_gr > 0) and st_r and cz_r and set_r and not baerische_welle
is_bgrl = bgrl is_bgrl = bgrl
is_rotes_plus = r_plus and wk_g is_rotes_plus = r_plus and wk_g
// ========= Blues-Zonenpflege =========
g_active = wk_g g_active = wk_g
r_active = wk_r r_active = wk_r
@@ -113,16 +115,13 @@ f_rise(sig) =>
cond_prev = na(sig[1]) or (sig[1] <= 0) cond_prev = na(sig[1]) or (sig[1] <= 0)
cond_now and cond_prev cond_now and cond_prev
// -------------------------------------
// Zonenpflege für grüne/rote Wolke (Blues-Logik)
// -------------------------------------
var int g_zoneStart = na var int g_zoneStart = na
var float g_zoneHigh = na var float g_zoneHigh = na
g_switch = barstate.isfirst ? true : (g_active != g_active[1]) g_switch = barstate.isfirst ? true : (g_active != g_active[1])
if bar_index == 0 or g_switch if bar_index == 0 or g_switch
g_zoneStart := bar_index g_zoneStart := bar_index
g_zoneHigh := na g_zoneHigh := na
g_inZone = g_active and bar_index >= g_zoneStart g_inZone = g_active and bar_index >= g_zoneStart
g_zoneHigh_prev = g_zoneHigh g_zoneHigh_prev = g_zoneHigh
if g_inZone if g_inZone
if na(g_zoneHigh) or high > g_zoneHigh if na(g_zoneHigh) or high > g_zoneHigh
@@ -134,7 +133,7 @@ r_switch = barstate.isfirst ? true : (r_active != r_active[1])
if bar_index == 0 or r_switch if bar_index == 0 or r_switch
r_zoneStart := bar_index r_zoneStart := bar_index
r_zoneLow := na r_zoneLow := na
r_inZone = r_active and bar_index >= r_zoneStart r_inZone = r_active and bar_index >= r_zoneStart
r_zoneLow_prev = r_zoneLow r_zoneLow_prev = r_zoneLow
if r_inZone if r_inZone
if na(r_zoneLow) or low < r_zoneLow if na(r_zoneLow) or low < r_zoneLow
@@ -145,6 +144,7 @@ short_blue_now = r_inZone and f_rise(blauer_punkt_long)
long_start_ok = long_blue_now and not na(g_zoneHigh_prev) long_start_ok = long_blue_now and not na(g_zoneHigh_prev)
short_start_ok = short_blue_now and not na(r_zoneLow_prev) short_start_ok = short_blue_now and not na(r_zoneLow_prev)
// --- State & Zeichnungsobjekte ---
var bool long_pending_active = false var bool long_pending_active = false
var float long_refHigh = na var float long_refHigh = na
var label startLblLong = na var label startLblLong = na
@@ -155,6 +155,11 @@ var float short_refLow = na
var label startLblShort = na var label startLblShort = na
var line shortPendingLine = na var line shortPendingLine = na
// --- Preis-Textboxen (Labels) ---
var label priceLblLong = na
var label priceLblShort = na
// --- Events (für Alerts) ---
var bool ev_long_start = false var bool ev_long_start = false
var bool ev_short_start = false var bool ev_short_start = false
var bool ev_long_done = false var bool ev_long_done = false
@@ -168,30 +173,69 @@ ev_short_done := false
ev_long_break := false ev_long_break := false
ev_short_break := false ev_short_break := false
// --- Start Long ---
if long_start_ok and not long_pending_active if long_start_ok and not long_pending_active
// Gegen-Zone beenden → immer nur 1 Zone aktiv
if short_pending_active
if not na(startLblShort)
label.delete(startLblShort)
startLblShort := na
if not na(shortPendingLine)
line.delete(shortPendingLine)
shortPendingLine := na
if not na(priceLblShort)
label.delete(priceLblShort)
priceLblShort := na
short_pending_active := false
short_refLow := na
long_pending_active := true long_pending_active := true
long_refHigh := g_zoneHigh_prev long_refHigh := g_zoneHigh_prev
ev_long_start := true ev_long_start := true
if high < long_refHigh if high < long_refHigh
if not na(startLblLong) if not na(startLblLong)
label.delete(startLblLong) label.delete(startLblLong)
startLblLong := label.new(bar_index, high + atr * label_offset_mult, "Ein Hoch kommt noch", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_down, color=color.blue, textcolor=color.white, size=size.small) startLblLong := label.new(bar_index, high + atr * label_offset_mult, "Ein Hoch kommt noch", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_down, color=color.blue, textcolor=color.white, size=size.small)
if not na(longPendingLine)
line.delete(longPendingLine)
longPendingLine := line.new(bar_index, long_refHigh, bar_index + 1, long_refHigh, xloc=xloc.bar_index, extend=extend.right, color=color.blue, width=2)
// Linie nur, wenn Haken gesetzt
if show_blues_lines
if not na(longPendingLine)
line.delete(longPendingLine)
longPendingLine := line.new(bar_index, long_refHigh, bar_index + 1, long_refHigh, xloc=xloc.bar_index, extend=extend.right, color=color.blue, width=2)
// --- Start Short ---
if short_start_ok and not short_pending_active if short_start_ok and not short_pending_active
// Gegen-Zone beenden → immer nur 1 Zone aktiv
if long_pending_active
if not na(startLblLong)
label.delete(startLblLong)
startLblLong := na
if not na(longPendingLine)
line.delete(longPendingLine)
longPendingLine := na
if not na(priceLblLong)
label.delete(priceLblLong)
priceLblLong := na
long_pending_active := false
long_refHigh := na
short_pending_active := true short_pending_active := true
short_refLow := r_zoneLow_prev short_refLow := r_zoneLow_prev
ev_short_start := true ev_short_start := true
if low > short_refLow if low > short_refLow
if not na(startLblShort) if not na(startLblShort)
label.delete(startLblShort) label.delete(startLblShort)
startLblShort := label.new(bar_index, low - atr * label_offset_mult, "Ein Tief kommt noch", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_up, color=color.blue, textcolor=color.white, size=size.small) startLblShort := label.new(bar_index, low - atr * label_offset_mult, "Ein Tief kommt noch", xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_up, color=color.blue, textcolor=color.white, size=size.small)
if not na(shortPendingLine)
line.delete(shortPendingLine)
shortPendingLine := line.new(bar_index, short_refLow, bar_index + 1, short_refLow, xloc=xloc.bar_index, extend=extend.right, color=color.blue, width=2)
// Linie nur, wenn Haken gesetzt
if show_blues_lines
if not na(shortPendingLine)
line.delete(shortPendingLine)
shortPendingLine := line.new(bar_index, short_refLow, bar_index + 1, short_refLow, xloc=xloc.bar_index, extend=extend.right, color=color.blue, width=2)
// --- Fulfillment / Cloud-Break ---
long_fulfilled_now = long_pending_active and high >= long_refHigh long_fulfilled_now = long_pending_active and high >= long_refHigh
short_fulfilled_now = short_pending_active and low <= short_refLow short_fulfilled_now = short_pending_active and low <= short_refLow
long_cloud_break = long_pending_active and not g_active long_cloud_break = long_pending_active and not g_active
@@ -209,6 +253,7 @@ if short_cloud_break
end_long = long_pending_active and (long_fulfilled_now or long_cloud_break) end_long = long_pending_active and (long_fulfilled_now or long_cloud_break)
end_short = short_pending_active and (short_fulfilled_now or short_cloud_break) end_short = short_pending_active and (short_fulfilled_now or short_cloud_break)
// --- End Long (inline) ---
if end_long if end_long
if not na(startLblLong) if not na(startLblLong)
label.delete(startLblLong) label.delete(startLblLong)
@@ -216,9 +261,13 @@ if end_long
if not na(longPendingLine) if not na(longPendingLine)
line.delete(longPendingLine) line.delete(longPendingLine)
longPendingLine := na longPendingLine := na
if not na(priceLblLong)
label.delete(priceLblLong)
priceLblLong := na
long_pending_active := false long_pending_active := false
long_refHigh := na long_refHigh := na
// --- End Short (inline) ---
if end_short if end_short
if not na(startLblShort) if not na(startLblShort)
label.delete(startLblShort) label.delete(startLblShort)
@@ -226,12 +275,53 @@ if end_short
if not na(shortPendingLine) if not na(shortPendingLine)
line.delete(shortPendingLine) line.delete(shortPendingLine)
shortPendingLine := na shortPendingLine := na
if not na(priceLblShort)
label.delete(priceLblShort)
priceLblShort := na
short_pending_active := false short_pending_active := false
short_refLow := na short_refLow := na
// ------------------------------------- // --- Linien entfernen, wenn Haken aus ---
// Standard-Alertbedingungen if not show_blues_lines
// ------------------------------------- if not na(longPendingLine)
line.delete(longPendingLine)
longPendingLine := na
if not na(shortPendingLine)
line.delete(shortPendingLine)
shortPendingLine := na
// --- Preis-Textboxen zeichnen / aktualisieren ---
if show_price_textbox and long_pending_active
int lx = na(longPendingLine) ? bar_index : line.get_x1(longPendingLine)
float ly = long_refHigh
string t = str.tostring(ly, format.mintick)
if na(priceLblLong)
priceLblLong := label.new(lx, ly, t, 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, lx)
label.set_y(priceLblLong, ly)
label.set_text(priceLblLong, t)
else
if not na(priceLblLong)
label.delete(priceLblLong)
priceLblLong := na
if show_price_textbox and short_pending_active
int sx = na(shortPendingLine) ? bar_index : line.get_x1(shortPendingLine)
float sy = short_refLow
string ts = str.tostring(sy, format.mintick)
if na(priceLblShort)
priceLblShort := label.new(sx, sy, 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, sx)
label.set_y(priceLblShort, sy)
label.set_text(priceLblShort, ts)
else
if not na(priceLblShort)
label.delete(priceLblShort)
priceLblShort := na
// ========= Alerts: Standard =========
alertcondition(isPearlLong, title="Pearl Long", message="Pearl Diver erkannt {{ticker}} {{interval}}") alertcondition(isPearlLong, title="Pearl Long", message="Pearl Diver erkannt {{ticker}} {{interval}}")
alertcondition(isPearlShort, title="Pearl Short", message="Oyster Farmer erkannt {{ticker}} {{interval}}") alertcondition(isPearlShort, title="Pearl Short", message="Oyster Farmer erkannt {{ticker}} {{interval}}")
alertcondition(ulti_rally, title="Ulti Rally", message="Ulti Rally erkannt {{ticker}} {{interval}}") alertcondition(ulti_rally, title="Ulti Rally", message="Ulti Rally erkannt {{ticker}} {{interval}}")
@@ -248,18 +338,15 @@ alertcondition(ev_short_done, title="Blues: Ein Tief kommt noch (Erfüllt)",
alertcondition(ev_long_break, title="Blues: Ein Hoch kommt noch (Wolkenbruch)", message="Blues Long INVALID (Cloud Break) {{ticker}} {{interval}}") alertcondition(ev_long_break, title="Blues: Ein Hoch kommt noch (Wolkenbruch)", message="Blues Long INVALID (Cloud Break) {{ticker}} {{interval}}")
alertcondition(ev_short_break, title="Blues: Ein Tief kommt noch (Wolkenbruch)", message="Blues Short INVALID (Cloud Break) {{ticker}} {{interval}}") alertcondition(ev_short_break, title="Blues: Ein Tief kommt noch (Wolkenbruch)", message="Blues Short INVALID (Cloud Break) {{ticker}} {{interval}}")
// ------------------------------------- // ========= Alert-Kombinator (UND/ODER) =========
// Alert-Kombinator (UND/ODER)
// -------------------------------------
grp = "ALERT-COMBO" grp = "ALERT-COMBO"
optNone = "— (keins) —"
optNone = "— (keins) —" optPearlLong = "Pearl Long"
optPearlLong = "Pearl Long" optPearlShort = "Pearl Short"
optPearlShort = "Pearl Short" optUlti = "Ulti Rally"
optUlti = "Ulti Rally" optStephan = "Stephan Setup"
optStephan = "Stephan Setup" optBGRL = "BGRL"
optBGRL = "BGRL" optRotesPlus = "Rotes Kreuz (grüne Wolke)"
optRotesPlus = "Rotes Kreuz (grüne Wolke)"
optBlueLActive = "Blues: Ein Hoch kommt noch (aktiv)" optBlueLActive = "Blues: Ein Hoch kommt noch (aktiv)"
optBlueSActive = "Blues: Ein Tief kommt noch (aktiv)" optBlueSActive = "Blues: Ein Tief kommt noch (aktiv)"
@@ -303,7 +390,7 @@ s4 = sel4 != optNone
s5 = sel5 != optNone s5 = sel5 != optNone
anySel = (s1 ? c1 : false) or (s2 ? c2 : false) or (s3 ? c3 : false) or (s4 ? c4 : false) or (s5 ? c5 : false) anySel = (s1 ? c1 : false) or (s2 ? c2 : false) or (s3 ? c3 : false) or (s4 ? c4 : false) or (s5 ? c5 : false)
allSel = (s1 ? c1 : true ) and (s2 ? c2 : true ) and (s3 ? c3 : true ) and (s4 ? c4 : true ) and (s5 ? c5 : true ) allSel = (s1 ? c1 : true) and (s2 ? c2 : true) and (s3 ? c3 : true) and (s4 ? c4 : true) and (s5 ? c5 : true)
hasSelection = s1 or s2 or s3 or s4 or s5 hasSelection = s1 or s2 or s3 or s4 or s5
pickedBlueL = (sel1 == optBlueLActive) or (sel2 == optBlueLActive) or (sel3 == optBlueLActive) or (sel4 == optBlueLActive) or (sel5 == optBlueLActive) pickedBlueL = (sel1 == optBlueLActive) or (sel2 == optBlueLActive) or (sel3 == optBlueLActive) or (sel4 == optBlueLActive) or (sel5 == optBlueLActive)
@@ -315,62 +402,41 @@ comboCond = hasSelection ? (useOr ? anySel : allSel) : false
alertcondition(comboCond, title="ALERT-COMBO (aus Eingaben)", message="ALERT-COMBO erfüllt {{ticker}} {{interval}}") alertcondition(comboCond, title="ALERT-COMBO (aus Eingaben)", message="ALERT-COMBO erfüllt {{ticker}} {{interval}}")
// ------------------------------------- // ========= Telgos 2-Bar-Prime =========
// Telgos 2-Bar-Prime (Kerze 0 oder -1)
// -------------------------------------
grpTHP = "Telgos-Filter" grpTHP = "Telgos-Filter"
require_since_start = input.bool(true, "2-Bar-Prime: Auslöser seit Blues-Start", group=grpTHP) require_since_start = input.bool(true, "Ein Hoch/Tief kommt noch für Filter aktiv", group=grpTHP, tooltip="Wenn aktiviert: Nur Auslöser berücksichtigen, die seit Beginn des aktuellen 'Ein Hoch/Tief kommt noch' aufgetreten sind")
// Auslösermenge für 2-Bar-Prime
ausloeser_signal = isPearlLong or ulti_rally or stephan_setup or is_bgrl or is_rotes_plus ausloeser_signal = isPearlLong or ulti_rally or stephan_setup or is_bgrl or is_rotes_plus
// Kerzenfenster: nur aktuelle Kerze (0) oder vorherige Kerze (-1)
trigger_now_or_prev = ausloeser_signal or (bar_index > 0 ? ausloeser_signal[1] : false) trigger_now_or_prev = ausloeser_signal or (bar_index > 0 ? ausloeser_signal[1] : false)
// Optional: Der Auslöser muss seit Beginn der aktuellen Blues-Phase aufgetreten sein since_start = ta.barssince(ev_long_start)
since_start = ta.barssince(ev_long_start)
since_trigger = ta.barssince(ausloeser_signal) since_trigger = ta.barssince(ausloeser_signal)
cond_since_start = not na(since_start) and not na(since_trigger) and since_trigger <= since_start cond_since_start = not na(since_start) and not na(since_trigger) and since_trigger <= since_start
// Finale Bedingung
telgos_2bar_prime_cond = long_pending_active and trigger_now_or_prev and (not require_since_start or cond_since_start) telgos_2bar_prime_cond = long_pending_active and trigger_now_or_prev and (not require_since_start or cond_since_start)
// Ein eigener Alarmtitel/-text
alertcondition(telgos_2bar_prime_cond, title="Telgos 2-Bar-Prime", message="Telgos 2-Bar-Prime {{ticker}} {{interval}}") alertcondition(telgos_2bar_prime_cond, title="Telgos 2-Bar-Prime", message="Telgos 2-Bar-Prime {{ticker}} {{interval}}")
// Preis-Textbox links vom Linienstart, exakt auf Linienhöhe (robust, kein Kreuz) // ========= Preisskala-Labels =========
var label priceLblLong = na
var label priceLblShort = na
// LONG Text links vom Startpunkt der Long-Linie // Wolke (Pink) Linie im Pane + Preisskaleneintrag
if long_pending_active and not na(longPendingLine) plot(show_ps_wolke ? wolke_Line_pink : na,
int lx1 = line.get_x1(longPendingLine) title = "Wolke Pink",
float ly1 = line.get_y1(longPendingLine) color = col_ps_wolke,
string tL = str.tostring(ly1, format.mintick) linewidth = 1,
if na(priceLblLong) style = plot.style_line,
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) trackprice = true,
else display = display.all)
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
// SHORT Text links vom Startpunkt der Short-Linie // Blues NUR Preisskala (keine Linie), nur auf der letzten Kerze und nur wenn aktiv
if short_pending_active and not na(shortPendingLine) ps_bluel_val = show_ps_bluel and long_pending_active ? long_refHigh : na
int sx1 = line.get_x1(shortPendingLine) ps_blues_val = show_ps_blues and short_pending_active ? short_refLow : na
float sy1 = line.get_y1(shortPendingLine) ps_bluel_last = barstate.islast ? ps_bluel_val : na
string tS = str.tostring(sy1, format.mintick) ps_blues_last = barstate.islast ? ps_blues_val : na
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
// ------------------------------------- plot(ps_bluel_last, title="Blues Long-Level", color=col_ps_bluel, trackprice=true, display=display.price_scale)
// Labels / Shapes (dezente Visualisierung) plot(ps_blues_last, title="Blues Short-Level", color=col_ps_blues, trackprice=true, display=display.price_scale)
// -------------------------------------
// ========= Dezente Labels / Shapes =========
if isPearlLong if isPearlLong
label.new(bar_index, low - atr * label_offset_mult, text="Pearl Diver", style=label.style_label_up, color=color.purple, textcolor=color.white, size=size.small) label.new(bar_index, low - atr * label_offset_mult, text="Pearl Diver", style=label.style_label_up, color=color.purple, textcolor=color.white, size=size.small)
if isPearlShort if isPearlShort