HomeFunktionenAcademyLive-SignaleVergleichenTrack RecordPreiseToolsBlog
🌐 ES FR DE ZH AR
Anmelden Registrieren

Pine Script v6: Ein Einstiegsleitfaden für Indikator-Entwickler (2026)

Vom Quantum Algo-Team · · ~9 Min. Lesezeit
Schnelle Antwort Pine Script v6 ist die aktuelle Scripting-Sprachversion von TradingView, veröffentlicht in 2025. Die größten Änderungen gegenüber v5 sind ein strengeres Typsystem, schnellere Ausführung und verbesserte Built-ins für Arrays, Matrizen und Zeitreihen. Bestehende v5-Skripte funktionieren weiterhin – die Migration erfolgt opt-in über die //@version=6 Direktive am Anfang Ihres Skripts. Für neue Skripte beginnen Sie mit v6. Für bestehende Skripte migrieren Sie nur, wenn Sie ein v6 Feature benötigen.

Was Pine Script ist, kurz erklärt

Pine Script ist die domänenspezifische Sprache von TradingView zum Schreiben benutzerdefinierter technischer Indikatoren und Strategien, die innerhalb der Chart-Engine von TradingView laufen. Es ist keine universelle Programmiersprache – jedes Skript läuft einmal pro Bar über die Chart-Historie, wobei der Status implizit durch die Bar-Serie verwaltet wird. Wenn Sie es noch nie verwendet haben, dauert das mentale Modell etwa einen Tag; die Fallstricke etwa ein Jahr.

Version 6, veröffentlicht 2025, ist die aktuelle Produktionsversion. Die Versionen 4 und 5 funktionieren noch, sind aber nicht mehr der Standard für neue Skripte.

Setup – Ihr erstes v6-Skript

Jedes Pine Script beginnt mit einer Versionsanweisung in Zeile 1. Um einen v6-Indikator zu erstellen:

//@version=6
indicator("My First v6 Indicator", overlay=true)

// Plot the close price as a line on the chart
plot(close, color=color.new(color.aqua, 0), linewidth=2)

Speichern Sie dies im TradingView Pine Editor und fügen Sie es zum Chart hinzu. Sie sehen den Schlusskurs als cyan-farbene Linie geplottet. Drei Dinge sind zu beachten: der //@version=6 Direktive ist obligatorisch und muss die erste nicht-leere Zeile sein; indicator() ist die Deklaration, die festlegt, ob Ihr Skript ein Indikator (Overlay oder Pane) oder eine Strategie (mit simulierten Trades) ist; und overlay=true bedeutet, dass das Skript auf dem Preischart gezeichnet wird und nicht in einem separaten Bereich darunter.

Was sich von v5 zu v6 geändert hat

1. Strengeres Typsystem

Die größte einzelne Änderung. v6 erzwingt eine Typprüfung, die v5 entweder ignorierte oder stillschweigend behandelte. Der häufigste Fall: v5 erlaubte es Ihnen, einen series int wo ein simple int wurde erwartet und stillschweigend herabgestuft. v6 wirft einen Fehler zur Kompilierzeit.

Praktische Konsequenz: Wenn Sie ein v5-Skript migrieren und es plötzlich nicht mehr kompiliert, liegt der Fehler fast immer an einem Typen-Mismatch in einem Funktionsargument. Die Lösung besteht normalerweise darin, den Wert einzupacken in int(), float(), oder verwenden Sie die entsprechende eingebaute Funktion, um Typen explizit zu konvertieren.

2. Schnellere Laufzeit

v6 führte Compiler-Optimierungen ein, die die Ausführungsgeschwindigkeit für die meisten Skripte deutlich verbessern. Die Verbesserungen sind am deutlichsten bei Skripten mit intensiver request.security() Verwendung (Multi-Timeframe-Analyse), Array-Manipulation oder Matrix-Operationen. Einfache Plot-und-Farb-Skripte zeigen keinen spürbaren Unterschied.

3. Verbesserte request.security() Verhalten

Die Funktion zum Abrufen von Daten aus einem anderen Zeitrahmen erhielt eine sauberere Argumentverarbeitung und besseren Schutz gegen den historischen "Lookahead-Bias"-Fehler. Der klassische v4/v5-Fehler – die Verwendung von lookahead=barmerge.lookahead_on ohne die Konsequenzen zu verstehen — löst jetzt eine klarere Warnung aus, wenn das Skript veröffentlicht wird.

4. Neue eingebaute Funktionen

Mehrere Hilfsfunktionen, die zuvor eine manuelle Implementierung erforderten, sind jetzt eingebaut. Bemerkenswerte Ergänzungen: verbesserte String-Formatierung, besseres Matrix-Slicing und praktische Methoden für den Array-Typ, die Boilerplate-Code reduzieren.

Die Muster, die für SMC-Indikatoren wichtig sind

Wenn Sie Smart Money Concepts-Indikatoren entwickeln (Order Blocks, FVGs, BOS-Erkennung, Liquidity Sweeps), tauchen drei Pine Script-Muster ständig auf. Beherrschen Sie diese und Sie können das meiste bauen, was in kommerziellen SMC-Paketen enthalten ist.

Muster 1: Erkennung von Swing-Hochs und -Tiefs

Die Grundlage jedes Marktstruktur-Indikators. Verwenden Sie ta.pivothigh() und ta.pivotlow() mit einem linken/rechten Balkenfenster:

//@version=6
indicator("Swing Detection", overlay=true)

length = input.int(5, "Pivot Length", minval=1)

ph = ta.pivothigh(high, length, length)
pl = ta.pivotlow(low, length, length)

// Plot circles at confirmed swing points
plotshape(not na(ph), location=location.abovebar,
          style=shape.circle, color=color.red, size=size.tiny)
plotshape(not na(pl), location=location.belowbar,
          style=shape.circle, color=color.green, size=size.tiny)

Hinweis: Pivots werden bestätigt length Bars nachdem sie sich gebildet haben. Dies ist eine nicht-repaintierende Bestätigung — einmal gedruckt, bewegt sich der Pivot nicht mehr. Der Trade-off ist Latenz: Sie wissen erst 5 Bars später, dass der Pivot existiert (mit length=5).

Muster 2: Zeichnen von Zonen (Boxen für Order Blocks und FVGs)

Verwenden Sie die box.new() built-in zum Zeichnen von Rechtecken. Boxen können aktualisiert, nach rechts erweitert werden, wenn neue Bars erscheinen, oder gelöscht werden, wenn sie ungültig werden:

//@version=6
indicator("Bullish FVG Detector", overlay=true, max_boxes_count=500)

// Bullish FVG: low of current bar > high of bar 2 ago
fvg_top = low
fvg_bot = high[2]
isFVG = fvg_top > fvg_bot

if isFVG
    box.new(left=bar_index[2], top=fvg_top, right=bar_index, bottom=fvg_bot,
            bgcolor=color.new(color.green, 80),
            border_color=color.new(color.green, 50))

Zwei Dinge erwischen Erstentwickler hier. Erstens, max_boxes_count standardmäßig auf 50 — erhöhen Sie es für jeden Indikator, der Zonen über lange Historien zeichnet. Zweitens werden Boxen bei Kompilierungszeit pro Bar; wenn Sie auf jedem Bar eine Box zeichnen ohne bedingte Logik, erschöpfen Sie das Limit schnell.

Muster 3: Statusverfolgung über Bars hinweg (die var Schlüsselwort)

Pine Script führt Ihren Code einmal pro Bar aus, aber Sie benötigen oft einen Status, der persistent ist. Der var Schlüsselwort deklariert eine Variable, die einmal initialisiert wird und über Balkenausführungen hinweg bestehen bleibt:

//@version=6
indicator("BOS Tracker", overlay=true)

// Persistent state: track the last confirmed swing high
var float lastSwingHigh = na

// Update when a new pivot high is confirmed
ph = ta.pivothigh(high, 5, 5)
if not na(ph)
    lastSwingHigh := ph

// Detect BOS: close above the last swing high
isBOS = not na(lastSwingHigh) and close > lastSwingHigh

if isBOS
    label.new(bar_index, high, "BOS",
              color=color.new(color.green, 0), textcolor=color.white)

Ohne var, würde die Variable bei jedem Bar zurückgesetzt werden. Mit var, bleibt der Wert erhalten. Dies ist das grundlegende Muster für jeden Indikator, der sich an vergangene Ereignisse erinnern muss — jeder BOS-Detektor, MSS-Detektor, Mitigations-Tracker und Order-Block-Alterungssystem verwendet dieses Muster intern.

Häufige Fallstricke, die Entwicklern beim ersten Mal Probleme bereiten

Fallstrick 1 Repainting-Indikatoren, die in Backtests großartig aussehen, aber im Live-Trading Geld verlieren. Die Ursache ist die Verwendung von lookahead=barmerge.lookahead_on in request.security() Aufrufen oder der Verwendung von zukunftsorientierten Konstrukten wie ta.pivothigh() ohne Berücksichtigung der Balkenbestätigungsverzögerung. Wenn die Signale Ihres Indikators auf historischen Daten perfekt aussehen, vermuten Sie zuerst Repainting.
Fallstrick 2 Keine Verwendung format.mintick für Preis-Labels. Fest codierte Dezimalpräzision funktioniert nicht, wenn das Skript auf Instrumente mit unterschiedlichen Tick-Größen angewendet wird (BTC vs EURUSD vs ES). Verwenden Sie str.tostring(price, format.mintick) für jeden in Labels oder Alerts angezeigten Preis.
Fallstrick 3 Zu viele Objekte zeichnen. Pine Script hat feste Limits für die Anzahl der Linien, Boxen, Labels und Tabellen, die ein Skript zeichnen kann (Standard 50, max. 500). Indikatoren, die bei jedem Bar ein Label oder eine Box für jedes Signal zeichnen, entfernen stillschweigend die ältesten Objekte. Setzen Sie max_lines_count, max_boxes_count, usw. im indicator() Deklaration explizit, wenn Sie mehr benötigen.
Fallstrick 4 Variablenzuweisung vs. Neuzuweisung. Pine verwendet = für die erste Zuweisung und := zur Neuzuweisung. x = 5 an zwei Stellen erzeugt zwei Variablen im Geltungsbereich. x := 5 weist eine bestehende Variable neu zu. Verwechseln Sie diese und Sie verbringen eine Stunde damit, Werte zu debuggen, die sich nicht aktualisieren.

Veröffentlichen auf TradingView

Sobald Ihr Skript funktioniert, können Sie es in der öffentlichen Bibliothek von TradingView veröffentlichen – entweder als Open-Source (jeder kann den Code lesen und kopieren) oder nur auf Einladung (Sie kontrollieren den Zugriff). Beide Optionen erreichen die Nutzerbasis von TradingView; Open-Source-Veröffentlichungen werden anhand der House Rules geprüft und in der Editors' Picks-Pipeline eingestuft, wenn die Qualität hoch ist.

Drei Hausregeln, die neue Autoren am häufigsten überraschen: keine externen Werbelinks in Skripttiteln oder Beschreibungen einbinden, keine Repainting-Techniken ohne Offenlegung verwenden und keine Markenreferenz innerhalb der Chart-Ausgabe (keine Logos, keine Wasserzeichen-Labels). Die ersten beiden sind technisch; die dritte ist durchsetzungsorientiert und trifft regelmäßig kommerzielle Publisher.

Häufig gestellte Fragen

Muss ich meine v5-Skripte zu v6 migrieren?

Bestehende v5-Skripte laufen unbegrenzt weiter auf TradingView — es gibt keine erzwungene Abschaltung. Migration wird nur empfohlen, wenn Sie eine v6-spezifische Funktion benötigen (verbessertes Typsystem, bessere Performance, neue eingebaute Funktionen) oder wenn Sie ein neues Skript von Grund auf erstellen. Bei veröffentlichten Indikatoren lohnt sich der Migrationsaufwand selten, es sei denn, Sie pflegen das Skript aktiv.

Was ist die größte Breaking Change in Pine Script v6?

Das verstärkte Typ-System. v6 erzwingt strengere Typprüfung – implizite Konvertierungen, die in v5 stillschweigend funktionierten, werfen jetzt Fehler. Das häufigste Migrationsproblem sind Series-vs-Simple-Typ-Mismatches in Funktionsargumenten, die zuvor unentdeckt blieben.

Ist Pine Script v6 schneller als v5?

Ja, im Durchschnitt. Der v6 Compiler führt aggressivere Optimierungen durch und hat eine schnellere Ausführungszeit für die meisten gängigen Muster. Die Verbesserung ist besonders deutlich bei Skripten mit intensiver Array-Manipulation oder vielen request.security Aufrufe.

Kann ich v5 und v6 im selben Skript verwenden?

Nein. Die Version wird am Anfang des Skripts deklariert (//@version=6 oder //@version=5) und gilt für das gesamte Skript. Versionen können innerhalb eines einzelnen Indikators oder einer Strategie nicht gemischt werden.

Wo kann ich Pine Script v6 Indikatoren veröffentlichen?

TradingViews Public Library akzeptiert sowohl v5- als auch v6-Skripte. Open-Source-Skripte werden von TradingView-Moderatoren gegen die Hausregeln überprüft – dieselben Regeln gelten unabhängig von der Version. Closed-Source (nur auf Einladung) Skripte haben weniger Überprüfungsaufwand, können aber nicht in der Public Library beworben werden.

● Open Source auf TradingView

Sehen Sie Produktions-v6-Indikatoren in Aktion

Quantum Algos kostenlose Neural Confluence Engine und die komplette Zeno-Suite sind in Pine Script v6 geschrieben. Das kostenlose Skript ist Open-Source – klonen Sie es, studieren Sie es, modifizieren Sie es als Lernreferenz.

Auf TradingView anzeigen
Kostenlos nutzbar · Veröffentlichte Skripte, geprüft von TradingView-Moderatoren