37 Commits

Author SHA1 Message Date
942e9d7958 README.md aktualisiert 2025-09-05 20:08:19 +00:00
7059c02150 docs/FAQ.md aktualisiert 2025-09-05 16:15:26 +00:00
f81d72b8ae docs/FAQ.md aktualisiert 2025-09-05 16:14:47 +00:00
cb6ba309de README.md aktualisiert 2025-09-05 15:26:38 +00:00
8de7d1f015 README.md aktualisiert 2025-09-05 15:25:15 +00:00
63da566f91 docs/CHANGELOG.md aktualisiert 2025-09-05 15:16:54 +00:00
22dece5168 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
13 changed files with 626 additions and 348 deletions

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.

23
LICENSE.md Normal file
View File

@@ -0,0 +1,23 @@
---
⚠️ **Wichtiger Hinweis** ⚠️
**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.
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**.
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/).

154
README.md
View File

@@ -1,93 +1,65 @@
# Pine Script Bereitstellung ohne Support ![Croc Vibes Banner](./docs/img/croc_vibes_banner.png)
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.
🛠️ **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)
---
⚠️ **Wichtiger Hinweis** ⚠️
**Croc Vibes** ist ein *Community-Hilfsskript*.
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)
---
## 📌 Aktuelle Version
➡️ **[Croc Vibes v4.0.0](./indicators/croc_vibes.pine)** ✅
👉 Details zu allen Änderungen siehe [CHANGELOG.md](./docs/CHANGELOG.md)
# ✨ Neues Feature: Telgos 2-Bar-Prime
**Telgos 2-Bar-Prime** ist ein spezieller Alarmfilter für **Croc Vibes**:
- **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
**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.
---
## Installation
👉 Details siehe [Installation.md](./docs/Installation.md).
---
## FAQ
👉 Häufige Fragen findest du in der [FAQ.md](./docs/FAQ.md).
---
## Hinweis zur Nutzung
Croc Vibes ist ein Community-Hilfsskript und nicht offiziell von André.
Es gibt keinen Anspruch auf Vollständigkeit oder Support Nutzung erfolgt auf eigene Verantwortung.
---
## Lizenz
Dieses Projekt steht unter der [Mozilla Public License 2.0](https://mozilla.org/MPL/2.0/).
Siehe auch [LICENSE.md](./LICENSE.md).

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)

53
docs/CHANGELOG.md Normal file
View File

@@ -0,0 +1,53 @@
# Changelog
## [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

83
docs/FAQ.md Normal file
View File

@@ -0,0 +1,83 @@
# 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.
Denn die immer wiederkehrenden Fragen kosten viel zu viel *unwiederbringliche Lebenszeit*. 😉
---
### Wie richte ich den Telgos 2-Bar-Prime Alarmfilter ein?
Der **Telgos 2-Bar-Prime** ist ein spezieller Alarmfilter, der zwei Bedingungen kombiniert:
1. „Ein Hoch kommt noch“ (Blues Long) ist aktiv
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?
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.
---
### Warum kann Croc Vibes nicht im Pinescreener verwendet werden?
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.
---
### Ich sehe in der Auswahl mehrere Werte (z. B. Kerzenfarbe oder Wolke). Woher weiß ich, welcher richtig ist?
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**.
**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.
---
### Warum sehe ich „Ein Hoch kommt noch“ / „Ein Tief kommt noch“ nicht immer?
Aktuelle Regel (ab v3.8.0):
- „**Ein Hoch kommt noch**“ wird **nur in grüner Wolke** markiert.
- „**Ein Tief kommt noch**“ wird **nur in roter Wolke** markiert.
---
### Wie richte ich die AlertCombo ein?
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)“).
---
### Welche TradingView-Version brauche ich für Croc Vibes?
Das hängt von der Anzahl der gleichzeitig laufenden Indikatoren ab:
- **Essentials** reicht in der Regel aus, wenn du nur **Croc 3.0 + Croc Vibes** parallel laufen lassen möchtest.
- 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.
---
## Muss ich alle Croc-Indikatoren aktiv haben, damit Croc Vibes funktioniert?
Für Croc Vibes v4.0.0 brauchst du die drei Kern-Indikatoren:
- **Croc Chart**
- **Croc Lochstreifen**
- **Croc MSI**
Genau aus diesen Indis kommen die Variablen, die das Script benötigt.

38
docs/Installation.md Normal file
View File

@@ -0,0 +1,38 @@
# Installation
## Dateien
`indicators/` Pine Scripts
- `croc_vibes.pine` (v4.0.0, aktuelles Hauptskript) ✅
Alle anderen Skripte (Blues Add-on, Kombi-Version etc.) wurden entfernt.
Die Beschreibungen dazu sind noch 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)
---
## 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**.
---
## 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

366
indicators/croc_vibes.pine Normal file
View File

@@ -0,0 +1,366 @@
// =================================================================================================
// Croc Vibes by Telgos Version 4.1.0
// 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", 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")
// -------------------------------------
// Helper / Ableitungen
// -------------------------------------
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
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]
stephan_zusatzbedingung_erfuellt = cp_long or rd_long or lolli_long or bb_long or awr_long or bgrl or g_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
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
// -------------------------------------
// Zonenpflege für grüne/rote Wolke (Blues-Logik)
// -------------------------------------
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)
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
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
if long_start_ok and not long_pending_active
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)
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)
if short_start_ok and not short_pending_active
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)
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)
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)
if end_long
if not na(startLblLong)
label.delete(startLblLong)
startLblLong := na
if not na(longPendingLine)
line.delete(longPendingLine)
longPendingLine := na
long_pending_active := false
long_refHigh := na
if end_short
if not na(startLblShort)
label.delete(startLblShort)
startLblShort := na
if not na(shortPendingLine)
line.delete(shortPendingLine)
shortPendingLine := na
short_pending_active := false
short_refLow := na
// -------------------------------------
// Standard-Alertbedingungen
// -------------------------------------
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 (Kerze 0 oder -1)
// -------------------------------------
grpTHP = "Telgos-Filter"
require_since_start = input.bool(true, "2-Bar-Prime: Auslöser seit Blues-Start", group=grpTHP)
// Auslösermenge für 2-Bar-Prime
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)
// Optional: Der Auslöser muss seit Beginn der aktuellen Blues-Phase aufgetreten sein
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
// Finale Bedingung
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}}")
// -------------------------------------
// Labels / Shapes (dezente Visualisierung)
// -------------------------------------
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)