68 Commits
3.6.0 ... main

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
d6adfe1ba6 docs/FAQ.md aktualisiert 2025-09-06 06:51:51 +00:00
b1be0e3cc2 Preis-Textboxen an blauen Linien hinzugefügt
Zeigt den exakten Preis der aktiven Blues-Linie (Long/Short) direkt links am Startpunkt der Linie an.
Verbessert die Lesbarkeit und verhindert Überschneidungen mit der Linie.
2025-09-06 08:48:58 +02:00
7bbe02db3b README.md aktualisiert 2025-09-05 20:08:19 +00:00
c0dd450f64 docs/FAQ.md aktualisiert 2025-09-05 16:15:26 +00:00
15c8744da1 docs/FAQ.md aktualisiert 2025-09-05 16:14:47 +00:00
82a8e0845e README.md aktualisiert 2025-09-05 15:26:38 +00:00
48824ee395 README.md aktualisiert 2025-09-05 15:25:15 +00:00
82bbe33572 docs/CHANGELOG.md aktualisiert 2025-09-05 15:16:54 +00:00
851adb2ff4 README.md aktualisiert 2025-09-05 15:16:04 +00:00
b277a0eed4 feat: Telgos 2-Bar-Prime Alarmfilter hinzugefügt
- Neuer Spezial-Alarm für Blues Long
- prüft nur aktuelle Kerze (0) und vorherige Kerze (-1)
- optionale Bedingung: Auslöser seit Beginn der Blues-Phase
- Changelog & README entsprechend erweitert
2025-09-05 17:13:16 +02:00
11d6dbb3c5 textanpassung 2025-09-02 17:17:25 +02:00
8d09f63e8d Update Reihenfolge Lochstreifen Kerzenfarben 2025-09-02 17:16:00 +02:00
a375de8558 blabla raus aus README 2025-09-02 16:30:08 +02:00
afc4ca17e0 Link auf Video mit Variablenzuweisungen 2025-09-02 16:27:24 +02:00
e8c7f85c9a chore: Release v4.0.0 – Signalzuweisung korrigiert, Reihenfolge verbessert, alte Skripte entfernt
- "Status Grün" als 3. Parameter von oben festgelegt (Fix)
- Reihenfolge der input.source-Zuweisungen an Overlay-Darstellung angepasst
- Alle alten Pine-Skripte entfernt → nur noch `croc_vibes.pine`
- Doku aktualisiert (Installation, Beschreibung, Changelog, FAQ ergänzt)
- Alte Beschreibungen (Blues Add-on, Vibes+Blues) im Docs-Ordner erhalten, aber als Referenz markiert
2025-09-02 14:39:28 +02:00
eb1d4c3e13 feat(croc-vibes): Version 3.9.0 mit Grünem Plus im Stephan-Setup
- Neues Input-Signal „Grünes Plus“ hinzugefügt
- Stephan-Setup erweitert: Grünes Plus ist ODER-verknüpft mit den bisherigen Zusatzbedingungen
- README.md auf v3.9.0 aktualisiert (Aktuelle Version, Komponenten-Tabelle, FAQ-Hinweis)
- CHANGELOG.md mit Eintrag für 3.9.0 ergänzt
2025-09-01 16:51:58 +02:00
f4fdb20446 README.md aktualisiert 2025-08-31 09:56:26 +00:00
3b1ee5f97a Dateien nach "docs/img" hochladen 2025-08-31 09:54:48 +00:00
dd7b686bbc README.md aktualisiert 2025-08-28 07:13:53 +00:00
7abd71264b README.md aktualisiert 2025-08-28 07:04:06 +00:00
46b2686721 README.md aktualisiert 2025-08-28 06:31:32 +00:00
ac58ae94be absatz fehlte 2025-08-28 08:21:06 +02:00
a042f7be71 Docs: Disclaimer + Konsistenz (temporäres Community-Hilfsskript, Anfänger-Fokus, keine zentrale Anlaufstelle) 2025-08-28 08:20:35 +02:00
795f966869 Klarstellung: Croc Vibes ist ein temporäres Community-Hilfsskript für Anfänger, keine zentrale Anlaufstelle 2025-08-28 07:52:23 +02:00
adb841a1af mailmap: Autor auf Telgos gemappt 2025-08-27 17:41:41 +02:00
a2ecbeaae0 README verlinkeung gleich zu beginn auf die aktuelle Version 2025-08-24 17:52:49 +02:00
612dff76f7 docs: update FAQ and docs for TradingView plan requirements
- FAQ: neuer Abschnitt „Welche TradingView-Version brauche ich?“
  * Hinweis: Pine Script läuft in allen Plänen, Limit ist nur die Anzahl gleichzeitiger Indikatoren
  * Essentials reicht für Croc 3.0 + Croc Vibes
- README/Installation/FAQ an v3.8.0 angepasst (Blues integriert, Alert-Combo, Screener-Plots)
- Blues Add-on als deprecated markiert
- CHANGELOG.md ergänzt
2025-08-24 17:46:27 +02:00
0828e87dfc feat: Release Croc Vibes V3.8.0 with Blues & Alert-Combo
- integriert Blues-Add-on direkt ins Hauptscript
- einheitliche Labels (inkl. Blues)
- neue Alerts für Blues (Start, Aktiv, Erfüllt, Wolkenbruch)
- Alert-Combo Eingabe mit bis zu 5 Signalen (UND/ODER)
- Screener/Backtest-Plots für aktive Blues hinzugefügt
- robustes Mapping via if/else
2025-08-24 17:19:14 +02:00
53cdd269bb update FAQ wegen Einschränkung der Blaulinienerkennung 2025-08-23 16:21:16 +02:00
8f63312e8f faq text angepasst 2025-08-23 11:54:12 +02:00
27a57e8269 neuer punkt in FAQ aufgenommen 2025-08-23 11:52:36 +02:00
2d3ef5bac7 textanpassung in README 2025-08-23 10:20:52 +02:00
31badc0e8c Link auf Banner in README aufgenommen 2025-08-23 09:42:27 +02:00
db10660f0c Banner aktualisiert: breite Version durch schmale ersetzt
- Alte breite Version (croc_vibes_banner.png) durch kompakte, transparente Version ersetzt
- Dateiname unverändert, sodass bestehende Links in README bestehen bleiben
- Neues Format (400x150) besser geeignet für Forum/Profilbanner und README
2025-08-23 09:38:19 +02:00
c20781c7c9 README/Installation präzisiert: Video nur für Schritt 2 (Variablen-Zuweisung)
- README: Video-Sektion umbenannt und Hinweise zu input.source ergänzt
- docs/Installation.md: Schritt 2 ausführlich beschrieben (Mapping, Stolpersteine, Links)
2025-08-23 09:29:12 +02:00
e835a7d116 README: Bannerbild hinzugefügt
- Neues Banner (croc_vibes_banner.png) erstellt und unter docs/img/ abgelegt
- Banner wird nun ganz oben in der README angezeigt
- Optische Aufwertung und klarer Projekt-Header
2025-08-23 09:24:26 +02:00
43fe55aa43 README: Wichtigen Hinweis an den Anfang gestellt
Der Hinweis zur fehlenden Copy&Paste-Möglichkeit im Forum steht nun direkt am Anfang.
Einleitung gestrafft und Zweck des Repos klarer formuliert.
2025-08-23 08:35:39 +02:00
1fc4a85869 Refactor: Blaue-Punkt-Labels durch Blues-Add-on ersetzt (v6)
- Pine auf Version 6 aktualisiert
- Swing-Lookback und Label-Schalter entfernt
- Neues Blues-Add-on integriert:
  • Pending-Labels und horizontale Linien für „Ein Hoch/Tief kommt noch“
  • Automatisches Erfüllen und Aufräumen bei Wolkenbruch
- Alte Blue-Label-Logik entfernt
- Restliche Setups (Pearl, Stephan, Ulti, BGRL, Rotes Plus) unverändert
2025-08-22 23:29:34 +02:00
98cb905750 Funktion(blues): Erstes Pine v6 Skript & Überarbeitung der Projektstruktur
Dieser Commit führt das `blues_addon` Skript ein. Es ist das erste Skript in diesem Projekt, das die neue Pine Script® Version 6 verwendet und markiert damit einen wichtigen technischen Schritt nach vorne.
Gleichzeitig wurde die gesamte Projekt- und Dokumentationsstruktur grundlegend überarbeitet, um Übersichtlichkeit und Skalierbarkeit zu verbessern:
- Umgestaltung der README.md zur zentralen Übersichtsseite.
- Auslagerung der detaillierten Beschreibungen in eigene Dateien.
- Erstellung separater Dateien für Installationsanleitung (Installation.md) und FAQ (FAQ.md).
- Einführung einer konsistenten Benennung für alle Projektdateien.
2025-08-22 12:15:43 +02:00
15 changed files with 967 additions and 348 deletions

2
.gitignore vendored Normal file
View File

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

13
FAQ.md
View File

@@ -1,13 +0,0 @@
# Croc Vibes FAQ
denn die immer wiederkehrenden Fragen kosten viel zu viel *unwiederbringliche Lebenszeit*.** 😉
### Warum muss ich meine Variablen nach einem Update neu zuordnen?
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.
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. Wer also am Script arbeitet oder externe Indikatoren als Quelle einbindet, muss damit rechnen, die Zuordnungen nach einer Änderung erneut vorzunehmen.
---

View File

@@ -1,109 +0,0 @@
# 📈 Croc Vibes Installations- & Nutzungshinweise
Dieses Skript erkennt diverse Long-Signale im Croc 3.0 System und zeigt sie direkt im TradingView-Chart inklusive Labels, Marken und automatischer Alerts.
Ziel: **visuelles Feedback, wann ein valider Einstieg vorliegt**, z.B. „Pearl Diver“, „Ulti Rally“, „Stephan Setup“ oder „Black Green Rocket Long (BGRL)“.
---
## 🧭 Voraussetzungen
- Kostenloser Account bei [tradingview.com](https://www.tradingview.com)
- Alle benötigten **Croc-Indikatoren** müssen dem Chart hinzugefügt sein (Lochstreifen, MSI, Cloud etc.)
- Du brauchst das Pine Skript `Croc Vibes by Telgos` in der aktuellen Version (unter Mozilla Public License 2.0)
---
## ✨ Schritt 1: Skript in TradingView einfügen
1. Öffne deinen TradingView-Chart (z.B. S&P 500, Nasdaq, BTC …)
2. Öffne unten den Reiter **„Pine Editor“**
3. Füge das vollständige Skript `Croc Vibes by Telgos` ein
4. Klicke oben auf **„Speichern“** → gib dem Skript einen Namen
5. Klicke auf **„Zum Chart hinzufügen“**
Du siehst nun je nach Marktlage **bunte Labels, Punkte, Marken und Signale** direkt im Chart.
---
## 🧩 Schritt 2: Eingaben korrekt zuweisen (Pflicht)
Ohne diesen Schritt **funktioniert das Skript nicht** du siehst keine Signale.
### 🔧 So gehts:
1. Bewege die Maus über den Skript-Namen im Chart
2. Klicke auf das ⚙️ **Zahnrad-Symbol** → gehe zum Reiter **„Eingaben“**
3. Dort siehst du 4 Gruppen:
| Gruppe | Bedeutung |
|-------------------------|---------------------------------------------------------------------------|
| **Chart-Signale** | Verknüpfung zu Croc-Punkten wie Cloud, Pearl, BGRL usw. |
| **Lochstreifen** | Status, Trend, Welle, Kerzenfarbe → die Zahl in Klammern = Plot-Nummer |
| **MSI** | Bedingungen für Stephan Setup |
| **Allgemeine Einstellungen** | Steuerung von Labels, Marken, Abständen |
> 📌 **Beispiel:** „Trend (3) Grün“ → ist der **dritte Plot** des „Trend“-Indikators.
> Wichtig: Die Croc-Indikatoren **müssen auf dem Chart liegen**, sonst erscheinen sie nicht zur Auswahl.
> Hier ein Link auf Video zur Zuweisung der Variablen: https://git.cygos.synology.me/Telgos/Croc_Vibes/raw/branch/main/Schritt2.mp4
---
## ⚙️ Schritt 3: Konfiguration (optional)
Im Reiter **„Allgemeine Einstellungen“** kannst du das Verhalten des Skripts anpassen:
| Option | Wirkung |
|-------------------------------------|-------------------------------------------------------------------------|
| ✅ **Blaue Punkte Labels anzeigen** | Aktiviert Hinweise wie „Ein Hoch kommt noch“ oder „Tief verpasst“ |
| 🔢 **Swing-Lookback** | Bestimmt, wie viele Kerzen zurück für Swing-Bewertungen geschaut wird |
| 📐 **Label Abstand (ATR Multiplikator)** | Beeinflusst vertikalen Abstand der Labels zu den Kerzen |
---
## 🔔 Schritt 4: Alerts einrichten (empfohlen)
1. Klicke im Chart oben auf das Glocken-Symbol 🔔
2. Wähle dein Skript als Bedingung aus
3. Wähle z.B. **„Pearl Long“** oder **„Stephan Setup“**
4. Definiere deine Nachricht (z.B. „🚀 Croc Long-Signal aktiv!“)
5. Lege Benachrichtigungsmethode fest (Push, E-Mail, Webhook …)
6. Speichern ✅
---
## ✅ Enthaltene Signale (Auswahl)
| Signaltyp | Bedeutung / Logik |
|---------------------|------------------------------------------------------------------------------------|
| **Pearl Diver** | Basissignal bei roten Bedingungen + Kerzenfarbe-Kombi |
| **Oyster Farmer** | Gegenstück für Short |
| **Ulti Rally** | Starker bullischer Ausbruch mit Cloud & Setup |
| **Stephan Setup** | Kombi aus MSIFilter + CloudKomponenten (z.B. BGRL, Red Devil, Rocket etc.) |
| **BGRL** | Black Green Rocket Long (Lochstreifen + grüner Punkt bei schwarzer Kerze) |
| **Blauer Punkt erfüllt** | Bestätigung von offenen Punkten basierend auf Swing-Bedingungen |
---
## 🧾 Lizenz (Mozilla Public License 2.0)
Der Code unterliegt der [MPL 2.0](https://mozilla.org/MPL/2.0/).
| Du darfst … | Du musst … |
|--------------------------------------|-------------------------------------------------------|
| ✅ frei nutzen, verändern, veröffentlichen | ⚠️ Lizenztext erhalten |
| ✅ auch kommerziell verwenden | ⚠️ Änderungen ebenfalls unter MPL 2.0 stellen |
| ✅ Teile in eigene Projekte einbauen | 🔒 Nur der Script-Teil muss offengelegt werden |
---
## 🧠 Tipp zum Schluss
Wenn du beim ersten Setup keine Signale siehst:
- Prüfe, ob **alle Quellen korrekt zugewiesen** sind
- Achte auf **identische Timeframes**
- Nutze **normale Candles**, kein Heikin Ashi (verändert Setup-Verhalten)
- Aktiviere im Zweifel **nur einzelne Gruppen (z.B. nur Pearl)** zur Fehlersuche
---
by Telgos bereitgestellt ohne Support
Für Feedback, Erweiterungen oder Bugfixes: bitte eigene Forks nutzen oder melden.

25
LICENSE.md Normal file
View File

@@ -0,0 +1,25 @@
---
⚠️ **Wichtiger Hinweis** ⚠️
---
**Croc Vibes** ist ein *temporäres Community-Hilfsskript*, insbesondere für **Anfänger**.
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.
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.
Sobald im Forum das **direkte Teilen von Skripten** möglich ist, wird dieses Hilfsskript eingestellt, damit die Community wieder **geschlossen im Forum** bleibt.
---
# Lizenz
Dieses Projekt steht unter der **Mozilla Public License 2.0 (MPL-2.0)**.
Das bedeutet:
- ✅ Du darfst den Code frei nutzen, ändern und weitergeben.
- ✅ Änderungen am Code müssen ebenfalls unter der MPL-2.0 veröffentlicht 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/).

168
README.md
View File

@@ -1,93 +1,79 @@
# Pine Script Bereitstellung ohne Support <p align="left">
<img src="./docs/img/croc_vibes_banner.png" alt="Croc Vibes Banner" width="600">
Im Forum von André ist es aktuell technisch nicht möglich, Pine Script so zu posten, dass ein einfaches Copy & Paste funktioniert. Wenn sich das ändern, wird der Zugriff hierauf deaktiviert. </p>
🛠️ **Hinweis:**
Für das Script gibt es *keinen Support*. Auch Anfragen auf Erweiterungen oder Anpassung dieser Version werden nicht supportet. Du kannst das Script gerne an deine eigenen Bedürfnisse anpassen, umbauen oder erweitern ganz wie du magst. 💡 Wenn du Ideen oder Wünsche für neue Funktionen hast, kannst du sie gern André direkt vorschlagen vielleicht landen sie in einer zukünftigen Croc-Version.
# 📈 Croc Vibes by Telgos Pine Script Übersicht
Dieses Skript ist eine erweiterte Indikator-Logik im Croc-Handelssystem, implementiert mit Pine Script® Version 5 für TradingView.
Ziel ist es, verschiedene Long-Setups wie Pearl Diver, Stephan Setup oder Ulti Rally anhand von Original-Lochstreifenindikatoren, Wolkenfarben, Candle-Farben und MSI-Werten zu erkennen und visuell wie analytisch darzustellen.
> 👨‍💻 Autor: Telgos
> 🕊️ Lizenz: [Mozilla Public License 2.0](https://mozilla.org/MPL/2.0/)
## 🔧 Technische Grundlagen
Das Skript verwendet:
- Pine Script® V5
- Externe Inputs aus Connector-Indikatoren (Wolke, Trend, Punkte, MSI)
- Swing-Analyse auf Hoch/Tief zur Punktvalidierung
- ATR-basierte Visualisierung von Labels
- Dynamische SL/TP-Marken
- Alerts für Screener / Automatisierung
## 🧩 Eingabestruktur
**Gruppe: Chart-Signale**
- Cloud-, Red-Devil-, BB-Kombi-, Rocket-, Lollipop- und BGRL-Signale
- Blauer Punkt Long/Short
- MSI-Level (Day, Week 2, Week 5)
**Gruppe: Lochstreifen**
- Farben: Kerze, Trend, Setter, Welle, Wolke
- Status (grün/rot)
**Allgemeine Einstellungen**
- Anzeigeoptionen für Labels
- ATR-Multiplikator
- Swing-Lookback-Wert
## 📈 Strategien / Setups
### 🟣 Pearl Diver / Oyster Farmer
- Strikte Farbkombinationen aus Status, Trend, Wolke, Setter und Kerze
- Swing-basierte Bestätigung der vorherigen AllRed/AllGreen-Bedingungen
### 🟢 Stephan Setup
- MSI-Level (alle negativ)
- Zusatzbedingung (mind. ein aktives Zusatzsignal)
- Setter rot + Trend schwarz + Wolke grün
### 💠 Ulti Rally
- Hellgrüner Punkt oberhalb der Wolke
- Kein aktiver Bärenmarkt (Welle nicht rot)
- Setter rot + Status rot + Kerze rot
### ⬛ Black Green Rocket Long (BGRL)
- Rein auf externes Signal basiert
## 🔵 Blaue Punkt-Erkennung (Swing Validation)
Validierung über:
- Swing High/Low innerhalb des Lookback
- Wolkenfarbe als Trend-Richtung
- Signal wird als "erfüllt" markiert oder mit alternativen Labels:
- „Ein Hoch kommt noch“
- „Ein Tief kommt noch“
- „Hoch/Tief verpasst“
## 🧠 Visualisierung
- Farbige Labels direkt am Chart
- SL/TP-Linien mit Preisangabe neben der letzten Kerze (Entry + minTick)
- Shapes für Screener/Backtest (z.B. `plotshape(isPearlLong)`)
## 🔔 Alerts
Für folgende Bedingungen:
- Pearl Diver / Oyster Farmer
- Stephan Setup
- Ulti Rally
- BGRL
- Blauer Punkt erfüllt
## 🛡️ Hinweise
- Das Skript nutzt ausschließlich visuelle Darstellung. Kein automatisierter Entry per `strategy.entry`.
- Für Screener-/Bot-Zwecke sind die `alertcondition()`-Blöcke ideal vorbereitet.
- Eine Backtest-Strategie müsste separat in einer Pine-Strategy-Datei umgesetzt werden.
--- ---
> Kein Support freie Anpassung durch den Nutzer erwünscht.
![TradingView](https://img.shields.io/badge/Platform-TradingView-blue?logo=tradingview&logoColor=white)
![License: MPL-2.0](https://img.shields.io/badge/License-MPL%202.0-green)
![Status: Community Script](https://img.shields.io/badge/Status-Community%20Script-orange)
---
# Croc Vibes 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)
---
⚠️ **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
### 📸 Aktueller Screenshot
![Aktueller Screenshot](./docs/img/screenshot_aktuell.png)
➡️ **[Croc Vibes v4.2.2](./indicators/croc_vibes.pine)** ✅
👉 Alle Änderungen im [CHANGELOG.md](./docs/CHANGELOG.md)
---
## 💡 Über das Projekt
**Croc Vibes** wurde entwickelt, weil der Croc 3.0 nur eine begrenzte Anzahl an Labels ausgibt.
Gerade **Anfänger** profitieren von:
- zusätzlichen Labels 🎯
- klareren Signalzuweisungen 📊
- besserer Übersicht im Chart 🖥️
---
## ⚙️ Installation
📥 Anleitung: [Installation.md](./docs/Installation.md)
---
## ❓ FAQ
🙋 Antworten auf häufige Fragen: [FAQ.md](./docs/FAQ.md)
---
## 🛠 Hinweis zur Nutzung
Dieses Skript dient ausschließlich **zu Lern- und Community-Zwecken**.
Handel immer eigenverantwortlich! 💡
---
## 📜 Lizenz
Dieses Projekt steht unter der
[Mozilla Public License 2.0](https://mozilla.org/MPL/2.0/)
➡️ Details in [LICENSE.md](./LICENSE.md).
---
<p align="center">🐊 Mit ❤️ von <b>Telgos</b> für die Community 🐊</p>

Binary file not shown.

View File

@@ -1,135 +0,0 @@
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// CrocVibes by Telgos
// Danke für die Grundlagen und Basisversion: amper04, ray_duke, husky, Audidriver13│
//@version=5
indicator("Croc Vibes V3.6 by Telgos", overlay=true)
// === Inputs ===
// --- Gruppe: Chart-Signale ---
wolke_Line_rot = input.source(title="Wolke Linie Pink", defval=close, group="Chart-Signale")
blauer_punkt_long = input.source(title="Blauer Punkt Long", defval=close, group="Chart-Signale")
blauer_punkt_short = input.source(title="Blauer Punkt Short", defval=close, group="Chart-Signale")
hellgruener_punkt_long = input.source(title="Hellgruener 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")
bb_kombi_long = input.source(title="BB Kombi long", defval=close, group="Chart-Signale")
lollipop_long = input.source(title="Lollipop 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")
rotes_plus = input.source(title="Rotes Plus", defval=close, group="Chart-Signale")
// --- Gruppe: Lochstreifen ---
status_g = input.source(title="Status (1) Grün", defval=close, group="Lochstreifen")
status_r = input.source(title="Status (2) Rot", 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")
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_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_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_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_rr = input.source(title="Welle (6) dunkelRot", 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_r = input.source(title="Kerzenfarbe (3) Rot", defval=close, group="Lochstreifen")
// --- Gruppe: MSI ---
src1 = input.source(close, "Day OverBought 1", group="MSI")
// --- Gruppe: Allgemeine Einstellungen ---
show_blue_dot_labels = input.bool(true, title="Blaue Punkte Labels anzeigen", group="Allgemeine Einstellungen")
swing_lookback = input.int(5, title="Swing-Lookback", minval=1, group="Allgemeine Einstellungen")
label_offset_mult = input.float(3.0, title="Label Abstand (ATR Multiplikator)", minval=0.1, step=0.1, group="Allgemeine Einstellungen")
// Signal_close zu Übergeben macht keinen Sinn
signal_close = close
// === Logik ===
atr = ta.atr(16)
baerische_welle = (welle_rr > 0 or welle_r > 0)
bullische_welle = (welle_gg > 0 or welle_g > 0)
// === Pearl Diver ===
allRed = (status_r > 0) and (kerze_r > 0) and (wolke_r > 0) and (trend_r > 0) and (setter_r > 0) and baerische_welle
kerzeSG_l = (status_r > 0) and ((kerze_s > 0) or (kerze_g > 0)) and (wolke_r > 0) and (trend_r > 0) and (setter_r > 0) and baerische_welle
isPearlLong = kerzeSG_l and allRed[1] and allRed[2]
allGreen = (status_g > 0) and (kerze_g > 0) and (wolke_g > 0) and (trend_g > 0) and (setter_g > 0) and bullische_welle
kerzeSG_s = (status_g > 0) and ((kerze_s > 0) or (kerze_r > 0)) and (wolke_g > 0) and (trend_g > 0) and (setter_g > 0) and bullische_welle
isPearlShort = kerzeSG_s and allGreen[1] and allGreen[2]
// === Stephan-Setup (V2-Logik) ===
stephan_zusatzbedingung_erfuellt = (cloud_punkt_long > 0) or
(red_devil_long > 0) or
(lollipop_long > 0) or
(bb_kombi_long > 0) or
(aw_rocket_long > 0) or
(bgrl_signal > 0)
stephan_setup = not na(src1) and (wolke_g > 0) and (trend_s > 0) and (setter_r > 0) and stephan_zusatzbedingung_erfuellt
// === Ulti Rally (V2-kompatibel) ===
Kerze_in_wolke_gr = signal_close - wolke_Line_rot
ulti_rally = (hellgruener_punkt_long > 0) and (Kerze_in_wolke_gr > 0) and (status_r > 0) and (kerze_r > 0) and (setter_r > 0) and not baerische_welle
// === BGRL ===
is_bgrl = bgrl_signal > 0
// === Rotes Plus ===
is_rotes_plus = (rotes_plus > 0) and (wolke_g > 0)
// === Blaue Punkte ===
highest_swing = ta.highest(high, swing_lookback)
lowest_swing = ta.lowest(low, swing_lookback)
isBlueShortFulfilled = (wolke_g > 0 and blauer_punkt_short > high and high == highest_swing)
isBlueLongFulfilled = (wolke_r > 0 and blauer_punkt_long < low and low == lowest_swing)
punkt_erfuellt = isBlueShortFulfilled or isBlueLongFulfilled
// === Alerts ===
alertcondition(isPearlLong, title="Pearl Long", message="Pearl Diver erkannt")
alertcondition(isPearlShort, title="Pearl Short", message="Oyster Farmer erkannt")
alertcondition(ulti_rally, title="Ulti Rally", message="Ulti Rally erkannt")
alertcondition(stephan_setup, title="Stephan Setup", message="Stephan Setup erkannt")
alertcondition(is_bgrl, title="BGRL", message="Black Green Rocket Long erkannt")
alertcondition(is_rotes_plus, title="Rotes Kreuz bei grüner Wolke", message="Rotes Kreuz erkannt")
// === Labels ===
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)
if isPearlShort
label.new(bar_index, high + atr * label_offset_mult, text="Oyster Farmer", style=label.style_label_down, color=color.purple, textcolor=color.white, size=size.small)
if ulti_rally
label.new(bar_index, low - atr * label_offset_mult, text="Ulti", style=label.style_label_up, color=color.aqua, textcolor=color.white, size=size.small)
if stephan_setup
label.new(bar_index, low - atr * label_offset_mult, text="Stephan", style=label.style_label_up, color=color.teal, textcolor=color.white, size=size.small)
if is_bgrl
label.new(bar_index, low - atr * label_offset_mult, text="BGRL", style=label.style_label_up, color=color.black, textcolor=color.white, size=size.small)
if is_rotes_plus
label.new(bar_index, high + atr * label_offset_mult, text="Rotes Kreuz", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
// === Blaue Punkt Labels ===
if isBlueShortFulfilled and show_blue_dot_labels
label.new(bar_index, high + atr * label_offset_mult, text="Blauer erfüllt", style=label.style_label_down, color=color.blue, textcolor=color.white, size=size.small)
if isBlueLongFulfilled and show_blue_dot_labels
label.new(bar_index, low - atr * label_offset_mult, text="Blauer erfüllt", style=label.style_label_up, color=color.blue, textcolor=color.white, size=size.small)
if wolke_g > 0 and blauer_punkt_short > high and not punkt_erfuellt and show_blue_dot_labels
label.new(bar_index, high + atr * label_offset_mult, text="Ein Hoch kommt noch", style=label.style_label_down, color=color.blue, textcolor=color.white, size=size.small)
if wolke_g > 0 and blauer_punkt_short < low and show_blue_dot_labels
label.new(bar_index, low - atr * label_offset_mult, text="Tief verpasst", style=label.style_label_up, color=color.blue, textcolor=color.white, size=size.small)
if wolke_r > 0 and blauer_punkt_long < low and not punkt_erfuellt and show_blue_dot_labels
label.new(bar_index, low - atr * label_offset_mult, text="Ein Tief kommt noch", style=label.style_label_up, color=color.blue, textcolor=color.white, size=size.small)
if wolke_r > 0 and blauer_punkt_long > high and show_blue_dot_labels
label.new(bar_index, high + atr * label_offset_mult, text="Hoch verpasst", style=label.style_label_down, color=color.blue, textcolor=color.white, size=size.small)
// === Shapes für Screener/Backtest ===
plotshape(isPearlLong, title="Pearl Long", location=location.abovebar, color=color.new(color.purple, 100), style=shape.labelup, size=size.tiny)
plotshape(isPearlShort, title="Pearl Short", location=location.belowbar, color=color.new(color.purple, 100), style=shape.labeldown, size=size.tiny)
plotshape(ulti_rally, title="Ulti Rally", location=location.abovebar, color=color.new(color.aqua, 100), style=shape.diamond, size=size.tiny)
plotshape(stephan_setup, title="Stephan Setup", location=location.abovebar, color=color.new(color.teal, 100), style=shape.labelup, size=size.tiny)
plotshape(is_bgrl, title="BGRL", location=location.abovebar, color=color.new(color.black, 100), style=shape.triangleup, size=size.tiny)
plotshape(is_rotes_plus, title="Rotes Kreuz", location=location.belowbar, color=color.new(color.red, 100), style=shape.labeldown, size=size.tiny)

102
docs/CHANGELOG.md Normal file
View File

@@ -0,0 +1,102 @@
## [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)
---
## [4.1.1] 2025-09-06
### Added
- **Preis-Textboxen an blauen Linien**
- Zeigt den exakten Preis der aktiven Blues-Linie (Long/Short) im Chart an
- Darstellung: Groß & blau, Position links am Startpunkt der Linie
- Verhindert Überschneidung mit der Linie → bessere Lesbarkeit
---
## [4.1.0] 2025-09-05
### Added
- **Telgos 2-Bar-Prime**: Neuer Spezial-Alarmfilter
- Löst nur aus, wenn „Ein Hoch kommt noch“ aktiv ist
- UND ein Auslöser (Pearl Long, Ulti Rally, Stephan Setup, BGRL, Rotes Kreuz bei grüner Wolke)
auf der aktuellen Kerze (0) oder der vorherigen Kerze (1) erscheint
---
## [4.0.1] 2025-09-02
### Changed
- **Reihenfolge der Signal-Zuweisungen nochmal verbessert** → Kerzenfarben sind jetzt über dem Status
---
## [4.0.0] 2025-09-02
### Changed
- **Signalzuweisung korrigiert:** „Status Grün“ ist jetzt der **3. Parameter von oben**
- **Reihenfolge der Signal-Zuweisungen verbessert** → entspricht jetzt der Overlay-Darstellung (oben → unten)
- **Dokumentation aktualisiert:** Installation & Beschreibung angepasst; alte Skript-Beschreibungen bleiben im Docs-Ordner, aber nur als Referenz
### Removed
- **Alte Pine-Skripte entfernt:** `croc_vibes_3.8.0.pine`, `croc_vibes_3.9.0.pine`, `croc_vibes+blues.pine`, `blues_addon.pine`
- Ab sofort nur noch ein zentrales Skript: `indicators/croc_vibes.pine`
---
## [3.9.0] 2025-09-01
### Added
- **Input „Grünes Plus“** (`gruenes_plus`) als `input.source`
- **Stephan-Setup**: „Grünes Plus“ als zusätzliche **ODER**-verknüpfte Zusatzbedingung
### Changed
- README & Doku auf v3.9.0 aktualisiert (Aktuelle Version, Komponenten-Tabelle, FAQ-Hinweis)
### Fixed
- Kleinere Formulierungen in README vereinheitlicht
---
## [3.8.0] 2025-08-24
### Added
- Blues-Integration im Hauptindikator (Start, Aktiv, Erfüllt, Wolkenbruch) inkl. Alerts
- Alert-Combo (bis zu 5 Signale; UND/ODER; Auto-ODER bei beiden Blues)
- Screener/Backtest-Plots für „Blues aktiv“
### Changed
- Einheitliche Labelgrößen
- Dokumentation aktualisiert (README, FAQ, Installation)
### Deprecated
- Separates Blues-Add-on (`blues_addon.pine`) bitte Kombi-Version nutzen

250
docs/FAQ.md Normal file
View File

@@ -0,0 +1,250 @@
# Croc Vibes FAQ
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*. 😉
---
## Ü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?
✅ Kurzantwort: Nach Börsenschluss gibt es keine Kursdaten mehr → keine neuen Alarme.
🔎 Details:
* 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
---
### ❓ Warum muss ich meine Variablen nach einem Update neu zuordnen?
✅ Kurzantwort: TradingView behandelt ein aktualisiertes Script wie ein neues.
Das Zurücksetzen der Variablen ist **by design** und nicht vermeidbar.
📖 Siehe auch die ausführliche [Installation & Update-Anleitung](./Installation.md)
---
### ❓ Welche TradingView-Version brauche ich für Croc Vibes?
✅ Kurzantwort: **Essentials** reicht für Croc 3.0 + Croc Vibes.
🔎 Details:
* Pine läuft in allen TV-Plänen
* Entscheidend: maximale Anzahl gleichzeitiger Indikatoren
* Viele Zusatz-Indis → höherer Plan evtl. sinnvoll
---
## Croc Vibes Nutzung
### ❓ 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)
---
### ❓ Was ist der Unterschied zwischen dem Telgos 2-Bar-Prime und den selbst gebauten Combo-Alarmen?
**Kurzantwort:**
* **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 gibt es den Telgos 2-Bar-Prime überhaupt?
**Kurzantwort:** Weil es mühsam ist, alle Signal-Kombinationen jedes Mal neu in der Combo oder im Screener zusammenzuklicken.
🔎 **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.
---
### ❓ Reicht Croc Basic oder brauche ich Professional für Croc Vibes?
**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**.
---
### ❓ Wie nutze ich den TradingView-Aktienscreener in Verbindung mit Croc Vibes?
✅ 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.
🔎 **Details:**
* Ö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.
---
### ❓ Warum zeigt der 2-Bar-Prime manchmal Fehler bei einzelnen Symbolen?
✅ Kurzantwort: Weil er immer die letzten **zwei Kerzen** braucht. Fehlen Kerzen oder sind unvollständig, kann er nicht berechnen.
🔎 **Details:**
* 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)

50
docs/Installation.md Normal file
View File

@@ -0,0 +1,50 @@
# 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
`indicators/` Pine Scripts
- `croc_vibes.pine`
(Weitere Beschreibungen sind in den [Docs](./) enthalten nur als Referenz.)
---
## Schritt 1: Script kopieren
1. Öffne die Datei `indicators/croc_vibes.pine`.
2. Kopiere den gesamten Inhalt.
3. In TradingView → **Pine-Editor** einfügen → **Zum Chart hinzufügen**.
---
## Schritt 2: Variablen zuweisen (input.source)
- 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.
📺 **Videoanleitung (Schritt 2 Variablen zuweisen):**
[Direkt im Browser ansehen](https://share.telgos.de/api/public/dl/6eo9V2cC?inline=true)
---
## Optional Schritt 3: Alert-Combo konfigurieren
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)“).
2. **UND/ODER**: Häkchen „Signale nicht kombinieren“ aktiv = **ODER**, sonst **UND**.
3. Wenn **beide Blues** (Long & Short) gewählt sind, erzwingt der Indikator automatisch **ODER**.
---
## Optional Schritt 4: TradingView-Alerts anlegen
- Rechtsklick im Chart → **Alarm hinzufügen** → gewünschten Indikator/Alert auswählen.
- Für Blues existieren eigene Alerts: **Start**, **Aktiv**, **Erfüllt**, **Wolkenbruch**.

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

BIN
docs/img/e_community.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

461
indicators/croc_vibes.pine Normal file
View File

@@ -0,0 +1,461 @@
// =================================================================================================
// Croc Vibes by Telgos Version 4.2.2
// Lizenz: Mozilla Public License 2.0 https://mozilla.org/MPL/2.0/
// Danksagung (Basis/Ideen): amper04, ray_duke, husky, Audidriver13
// =================================================================================================
//@version=6
indicator("Croc Vibes by Telgos v4.2.2", overlay=true, max_labels_count=500, max_lines_count=500)
// ========= Eingaben: 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")
red_devil_long = input.source(title="Red Devil Long", defval=close, group="Chart-Signale")
hellgruener_punkt_long = input.source(title="Hellgruener Punkt Long", defval=close, group="Chart-Signale")
blauer_punkt_long = input.source(title="Blauer Punkt Long", defval=close, group="Chart-Signale")
gruenes_plus = input.source(title="Grünes Plus", defval=close, group="Chart-Signale")
bb_kombi_long = input.source(title="BB Kombi long", defval=close, group="Chart-Signale")
rotes_plus = input.source(title="Rotes Plus", defval=close, group="Chart-Signale")
blauer_punkt_short = input.source(title="Blauer Punkt Short", defval=close, group="Chart-Signale")
lollipop_long = input.source(title="Lollipop 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")
// ========= Eingaben: Lochstreifen / MSI =========
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_r = input.source(title="Kerzenfarbe (3) 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")
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")
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_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_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_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_rr = input.source(title="Welle (6) dunkelRot", defval=close, group="Lochstreifen")
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_textbox = input.bool(true, "Preis-Textboxen an Blues-Level anzeigen", 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 =========
asBool(src) => nz(src) > 0
atr = ta.atr(16)
b_long = asBool(blauer_punkt_long)
b_short = asBool(blauer_punkt_short)
hgr_long = asBool(hellgruener_punkt_long)
cp_long = asBool(cloud_punkt_long)
rd_long = asBool(red_devil_long)
bb_long = asBool(bb_kombi_long)
lolli_long = asBool(lollipop_long)
awr_long = asBool(aw_rocket_long)
bgrl = asBool(bgrl_signal)
r_plus = asBool(rotes_plus)
g_plus = asBool(gruenes_plus)
st_g = asBool(status_g)
st_r = asBool(status_r)
wk_g = asBool(wolke_g)
wk_r = asBool(wolke_r)
tr_s = asBool(trend_s)
tr_r = asBool(trend_r)
tr_g = asBool(trend_g)
set_r = asBool(setter_r)
set_g = asBool(setter_g)
wl_g = asBool(welle_g)
wl_gg = asBool(welle_gg)
wl_r = asBool(welle_r)
wl_rr = asBool(welle_rr)
cz_g = asBool(kerze_g)
cz_s = asBool(kerze_s)
cz_r = asBool(kerze_r)
baerische_welle = wl_rr or wl_r
bullische_welle = wl_gg or wl_g
// ========= Kernsignale =========
allRed = st_r and cz_r and wk_r and tr_r and set_r and baerische_welle
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
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]
// --- 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
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
is_bgrl = bgrl
is_rotes_plus = r_plus and wk_g
// ========= Blues-Zonenpflege =========
g_active = wk_g
r_active = wk_r
f_rise(sig) =>
cond_now = (not na(sig)) and (sig > 0)
cond_prev = na(sig[1]) or (sig[1] <= 0)
cond_now and cond_prev
var int g_zoneStart = na
var float g_zoneHigh = na
g_switch = barstate.isfirst ? true : (g_active != g_active[1])
if bar_index == 0 or g_switch
g_zoneStart := bar_index
g_zoneHigh := na
g_inZone = g_active and bar_index >= g_zoneStart
g_zoneHigh_prev = g_zoneHigh
if g_inZone
if na(g_zoneHigh) or high > g_zoneHigh
g_zoneHigh := high
var int r_zoneStart = na
var float r_zoneLow = na
r_switch = barstate.isfirst ? true : (r_active != r_active[1])
if bar_index == 0 or r_switch
r_zoneStart := bar_index
r_zoneLow := na
r_inZone = r_active and bar_index >= r_zoneStart
r_zoneLow_prev = r_zoneLow
if r_inZone
if na(r_zoneLow) or low < r_zoneLow
r_zoneLow := low
long_blue_now = g_inZone and f_rise(blauer_punkt_short)
short_blue_now = r_inZone and f_rise(blauer_punkt_long)
long_start_ok = long_blue_now and not na(g_zoneHigh_prev)
short_start_ok = short_blue_now and not na(r_zoneLow_prev)
// --- State & Zeichnungsobjekte ---
var bool long_pending_active = false
var float long_refHigh = na
var label startLblLong = na
var line longPendingLine = na
var bool short_pending_active = false
var float short_refLow = na
var label startLblShort = 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_short_start = false
var bool ev_long_done = false
var bool ev_short_done = false
var bool ev_long_break = false
var bool ev_short_break = false
ev_long_start := false
ev_short_start := false
ev_long_done := false
ev_short_done := false
ev_long_break := false
ev_short_break := false
// --- Start Long ---
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_refHigh := g_zoneHigh_prev
ev_long_start := true
if high < long_refHigh
if not na(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)
// 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
// 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_refLow := r_zoneLow_prev
ev_short_start := true
if low > short_refLow
if not na(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)
// 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
short_fulfilled_now = short_pending_active and low <= short_refLow
long_cloud_break = long_pending_active and not g_active
short_cloud_break = short_pending_active and not r_active
if long_fulfilled_now
ev_long_done := true
if short_fulfilled_now
ev_short_done := true
if long_cloud_break
ev_long_break := true
if short_cloud_break
ev_short_break := true
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 Long (inline) ---
if end_long
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
// --- End Short (inline) ---
if end_short
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
// --- Linien entfernen, wenn Haken aus ---
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(isPearlShort, title="Pearl Short", message="Oyster Farmer erkannt {{ticker}} {{interval}}")
alertcondition(ulti_rally, title="Ulti Rally", message="Ulti Rally erkannt {{ticker}} {{interval}}")
alertcondition(stephan_setup,title="Stephan Setup", message="Stephan Setup erkannt {{ticker}} {{interval}}")
alertcondition(is_bgrl, title="BGRL", message="Black Green Rocket Long erkannt {{ticker}} {{interval}}")
alertcondition(is_rotes_plus,title="Rotes Kreuz bei grüner Wolke", message="Rotes Kreuz erkannt {{ticker}} {{interval}}")
alertcondition(long_pending_active, title="Blues: Ein Hoch kommt noch (aktiv)", message="Blues Long aktiv {{ticker}} {{interval}}")
alertcondition(short_pending_active, title="Blues: Ein Tief kommt noch (aktiv)", message="Blues Short aktiv {{ticker}} {{interval}}")
alertcondition(ev_long_start, title="Blues: Ein Hoch kommt noch (Start)", message="Blues Long START {{ticker}} {{interval}}")
alertcondition(ev_short_start, title="Blues: Ein Tief kommt noch (Start)", message="Blues Short START {{ticker}} {{interval}}")
alertcondition(ev_long_done, title="Blues: Ein Hoch kommt noch (Erfüllt)", message="Blues Long FULFILLED {{ticker}} {{interval}}")
alertcondition(ev_short_done, title="Blues: Ein Tief kommt noch (Erfüllt)", message="Blues Short FULFILLED {{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}}")
// ========= Alert-Kombinator (UND/ODER) =========
grp = "ALERT-COMBO"
optNone = "— (keins) —"
optPearlLong = "Pearl Long"
optPearlShort = "Pearl Short"
optUlti = "Ulti Rally"
optStephan = "Stephan Setup"
optBGRL = "BGRL"
optRotesPlus = "Rotes Kreuz (grüne Wolke)"
optBlueLActive = "Blues: Ein Hoch kommt noch (aktiv)"
optBlueSActive = "Blues: Ein Tief kommt noch (aktiv)"
sel1 = input.string(optNone, "Signal-Auswahl 1", options=[optNone,optPearlLong,optPearlShort,optUlti,optStephan,optBGRL,optRotesPlus,optBlueLActive,optBlueSActive], group=grp)
sel2 = input.string(optNone, "Signal-Auswahl 2", options=[optNone,optPearlLong,optPearlShort,optUlti,optStephan,optBGRL,optRotesPlus,optBlueLActive,optBlueSActive], group=grp)
sel3 = input.string(optNone, "Signal-Auswahl 3", options=[optNone,optPearlLong,optPearlShort,optUlti,optStephan,optBGRL,optRotesPlus,optBlueLActive,optBlueSActive], group=grp)
sel4 = input.string(optNone, "Signal-Auswahl 4", options=[optNone,optPearlLong,optPearlShort,optUlti,optStephan,optBGRL,optRotesPlus,optBlueLActive,optBlueSActive], group=grp)
sel5 = input.string(optNone, "Signal-Auswahl 5", options=[optNone,optPearlLong,optPearlShort,optUlti,optStephan,optBGRL,optRotesPlus,optBlueLActive,optBlueSActive], group=grp)
noCombine = input.bool(false, "Signale nicht kombinieren", group=grp, tooltip="Aus: Alle ausgewählten Signale müssen gleichzeitig zutreffen (UND). Ein: Irgendeins reicht (ODER).")
f_pick(name) =>
bool res = false
if name == optPearlLong
res := isPearlLong
else if name == optPearlShort
res := isPearlShort
else if name == optUlti
res := ulti_rally
else if name == optStephan
res := stephan_setup
else if name == optBGRL
res := is_bgrl
else if name == optRotesPlus
res := is_rotes_plus
else if name == optBlueLActive
res := long_pending_active
else if name == optBlueSActive
res := short_pending_active
res
c1 = f_pick(sel1)
c2 = f_pick(sel2)
c3 = f_pick(sel3)
c4 = f_pick(sel4)
c5 = f_pick(sel5)
s1 = sel1 != optNone
s2 = sel2 != optNone
s3 = sel3 != optNone
s4 = sel4 != optNone
s5 = sel5 != optNone
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)
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)
pickedBlueS = (sel1 == optBlueSActive) or (sel2 == optBlueSActive) or (sel3 == optBlueSActive) or (sel4 == optBlueSActive) or (sel5 == optBlueSActive)
bothBluesSelected = pickedBlueL and pickedBlueS
useOr = noCombine or bothBluesSelected
comboCond = hasSelection ? (useOr ? anySel : allSel) : false
alertcondition(comboCond, title="ALERT-COMBO (aus Eingaben)", message="ALERT-COMBO erfüllt {{ticker}} {{interval}}")
// ========= Telgos 2-Bar-Prime =========
grpTHP = "Telgos-Filter"
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")
ausloeser_signal = isPearlLong or ulti_rally or stephan_setup or is_bgrl or is_rotes_plus
trigger_now_or_prev = ausloeser_signal or (bar_index > 0 ? ausloeser_signal[1] : false)
since_start = ta.barssince(ev_long_start)
since_trigger = ta.barssince(ausloeser_signal)
cond_since_start = not na(since_start) and not na(since_trigger) and since_trigger <= since_start
telgos_2bar_prime_cond = long_pending_active and trigger_now_or_prev and (not require_since_start or cond_since_start)
alertcondition(telgos_2bar_prime_cond, title="Telgos 2-Bar-Prime", message="Telgos 2-Bar-Prime {{ticker}} {{interval}}")
// ========= Preisskala-Labels =========
// 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
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
label.new(bar_index, high + atr * label_offset_mult, text="Oyster Farmer", style=label.style_label_down, color=color.purple, textcolor=color.white, size=size.small)
if ulti_rally
label.new(bar_index, low - atr * label_offset_mult, text="Ulti", style=label.style_label_up, color=color.aqua, textcolor=color.white, size=size.small)
if stephan_setup
label.new(bar_index, low - atr * label_offset_mult, text="Stephan", style=label.style_label_up, color=color.teal, textcolor=color.white, size=size.small)
if is_bgrl
label.new(bar_index, low - atr * label_offset_mult, text="BGRL", style=label.style_label_up, color=color.gray, textcolor=color.white, size=size.small)
if is_rotes_plus
label.new(bar_index, high + atr * label_offset_mult, text="Rotes Kreuz", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.small)
plotshape(isPearlLong, title="Pearl Long", location=location.abovebar, color=color.new(color.purple, 100), style=shape.labelup, size=size.tiny)
plotshape(isPearlShort, title="Pearl Short", location=location.belowbar, color=color.new(color.purple, 100), style=shape.labeldown, size=size.tiny)
plotshape(ulti_rally, title="Ulti Rally", location=location.abovebar, color=color.new(color.aqua, 100), style=shape.diamond, size=size.tiny)
plotshape(stephan_setup, title="Stephan Setup", location=location.abovebar, color=color.new(color.teal, 100), style=shape.labelup, size=size.tiny)
plotshape(is_bgrl, title="BGRL", location=location.abovebar, color=color.new(color.gray, 100), style=shape.triangleup, size=size.tiny)
plotshape(is_rotes_plus, title="Rotes Kreuz", location=location.belowbar, color=color.new(color.red, 100), style=shape.labeldown, size=size.tiny)
plotshape(long_pending_active, title="Ein Hoch kommt noch", location=location.abovebar, color=color.new(color.blue, 100), style=shape.circle, size=size.tiny)
plotshape(short_pending_active, title="Ein Tief kommt noch", location=location.belowbar, color=color.new(color.blue, 100), style=shape.circle, size=size.tiny)