Alles über Watchlisten in TradingViewDieses Tutorial dreht sich komplett um Watchlisten in TradingView. Watchlisten können nützlich sein, wenn du deine wichtigsten Symbole immer schnell griffbereit haben möchtest oder bestimmte Märkte immer im Blick behalten willst. Wir schauen uns daher an, wie Watchlisten angelegt, verwaltet und gelöscht werden, um dir die Arbeit mit TradingView noch einmal mehr zu erleichtern.
Falls du weitere Fragen rund um TradingView oder Pine Script™ hast, schreibe es gerne in die Kommentare.
Dein Steven
Tutorial
PineScript Guide 6 - bgcolor() und barcolor()Hallo Scripter,
zuletzt haben wir uns den ersten Teil der visuellen Komponenten - plot(), hline() und fill() - angeschaut. Heute geht es weiter mit den Funktionen bgcolor() und barcolor().
█ Was schauen wir uns in diesem Video an?
In diesem Video beschäftigen wir uns mit den Funktionen "bgcolor()" und "barcolor()".
█ Was ist ist die "bgcolor()"-Funktion?
Ihr habt bestimmt schon einmal Indikatoren gesehen, welche den Hintergrund des Charts einfärben. Um das zu erreichen gibt es verschiedene Wege. Der einfachste ist die Funktion "bgcolor()" zu nutzen, welche als primären Parameter eine Farbe verwendet. Erweitert um den ternären Operator "? :" lässt sich der Hintergrund entsprechend unserer Bedingungen einfärben.
Im folgenden Beispiel färben wir den Hintergrund blau, wenn der Schlusskurs größer ist als der Eröffnungskurs und rot, wenn das Gegenteil der Fall ist.
bgcolor(close > open ? color.blue : color.yellow)
Wir verwenden im Beispiel den ternären Operator, welche wie folgt zu lesen ist:
WENN ? DANN : SONST
█ Was ist ist die "barcolor()"-Funktion?
Ähnlich wie bei der "bgcolor()"-Funktion lassen sich auch mit der "barcolor()"-Funktion Bestandteile des Charts einfärben. In diesem Fall färben wir den Körper der Kerze ein. Die Logik ist identisch, als primären Parameter verwenden wir eine Farbe.
barcolor(close > open ? color.blue : color.yellow)
█ Übung 6
Färbe den Charts lila ein, wenn der Preis den gleitenden Durchschnitt (SMA 20) nach oben kreuzt. Färbe die Kerze gelb, wenn der Preis den gleitenden Durchschnitt (SMA 20) nach unten kreuzt.
█ Lösung Übung 5
Übung 5: Berechne zwei gleitende Durchschnitte ( SMA 10 und SMA 20) und fülle den Bereich zwischen beiden Durchschnitten rot, wenn der SMA10 größer ist als der SMA20 und grün, wenn das Gegenteil der Fall ist.
//@version=5
indicator("Übung 5", overlay=true)
i_len1 = input.int(10, "SMA Length 1")
i_len2 = input.int(20, "SMA Length 2")
sma1 = ta.sma(close, i_len1)
sma2 = ta.sma(close, i_len2)
a = plot(sma1, "SMA 1", color=color.new(color.blue, 100))
b = plot(sma2, "SMA 2", color=color.new(color.blue, 100))
fill(a, b, color= sma1 > sma2 ? color.red : color.green)
PineScript Guide 5 - plot(), hline() und fill()Hallo Scripter,
zuletzt haben wir uns mit den Schlüsselwörtern "var" und "varip", sowie den einfachen Datentypen beschäftigt. Wir haben also ein Grundverständnis für unsere ersten Gehversuche im PineScript erhalten und können uns den einfachen visuellen Komponenten widmen.
█ Was schauen wir uns in diesem Video an?
In diesem Video beschäftigen wir uns mit den Funktionen "plot()", "hline()" und "fill()" welche wir zur Darstellung unserer berechneten Werte nutzen können.
█ Was ist ist die "plot()"-Funktion?
Die plot()-Funktion ist eine der am meistgenutzten Funktionen in PineScript. Sie wird dazu verwendet im PineScript kalkulierte Werte grafisch darzustellen. Neben Linien können das Histograme, Columns, Areas oder einfache Symbole sein.
Die plot()-Funktion wird immer im global scope des Scripts angelegt, was dazu führt, dass sie mit jedem neuen Preisupdate ausgeführt wird. Weiterhin kann die plot()-Funktion zur Erstellung von fills() genutzt werden. (siehe unten)
█ Was ist ist die "hline()"-Funktion?
Die hline()-Funktion ermöglicht es einfache horizontale Level auf dem Chart anzuzeigen. Auch die hline()-Funktion kann zur Erstellung von fills() genutzt werden.
█ Was ist ist die "fill()"-Funktion?
Die "fill()"-Funktion lässt uns den Bereich zwischen zwei plots oder zwei hlines farbig ausfüllen. Ein gutes Beispiel hierfür sind die Bollinger Bänder, bei denen der Bereich zwischen oberem und unterem Band eingefärbt wird.
█ Übung 5
Berechne zwei gleitende Durchschnitte (SMA 10 und SMA 20) und fülle den Bereich zwischen beiden Durchschnitten rot, wenn der SMA10 größer ist als der SMA20 und grün, wenn das Gegenteil der Fall ist.
█ Lösung Übung 4
Übung 3: Erstelle ein Skript, das grüne Kerzen zählt, sofern die beiden vorherigen Kerzen rot waren. Der Wert soll sich stetig erhöhen (persistieren) und die Ausgabe soll eine blaue Linie sein.
//@version=5
indicator("Übung 4")
grueneKerze = close > open
roteKerze = close < open
var int zaehler = 0
if grueneKerze and roteKerze and roteKerze
zaehler += 1
plot(zaehler, "Zähler", color.blue)
Progressives AnlageverhaltenRisikomanagement Teil 1
Das Risikomanagement im Trading ist ein sehr umfangreiches und komplexes Thema. Es beinhaltet u.a. die folgenden Themengebiete:
1. Risikokapital für ‚non-professionals‘
2. Risikoarme Einstiegspunkte
3. Stop Loss
4. Positionsgrößen
5. Progressives Anlageverhalten
6. Rückschläge in die Strategie einbauen
7.Weitere Werkzeuge
8. Risikomodell
In diesem Tutorial wird das 'Progressive Anlageverhalten' näher beleuchtet.
PineScript Guide 4 - var und varipHallo Scripter,
im vorherigen Video haben wir uns mit den unterschiedlichen einfachen Datentypen auseinandergesetzt. Bevor wir nun mit komplexeren Datentypen weiter machen, streuen wir noch kurz das Thema "var und varip" ein, da es für die Variablendeklaration wichtig ist.
█ Was schauen wir uns in diesem Video an?
Dieses Video soll dir zeigen was die Schlüsselwörter var und varip bezwecken und wie wir sie bei der Variablendeklaration einsetzen können.
█ Was ist das Schlüsselwort var?
Variablen werden in PineScript mit der Angabe eines Datentyps und eines Variablennamen deklariert. PineScript wird bei einer solchen Deklaration den Wert der Variablen mit jeder neuen Kerze auf den Ursprungswert zurücksetzen. Die folgende Variable „counter“ erhält mit jeder neuen Kerze den Wert 0 und erhöht diesen dann, sofern es sich um eine grüne Kerze handelt. Sobald eine neue Kerze erscheint, wird der Wert wieder auf 0 gesetzt.
int counter = 0
if close > open
counter += 1
Fügen wir hingegen das Schlüsselwort „var“ hinzu, dann persistiert der Wert der „counter“ Variable und sie wird nicht auf 0 zurückgesetzt. Wir zählen somit alle grünen Kerzen im Chart.
var int counter = 0
if close > open
counter += 1
Das Schlüsselwort „var“ bietet sich somit an, wenn Werte zwischen verschiedenen Kerzen übernommen werden sollen. Ein gutes Beispiel hierfür ist ein Schalter, der an- und ausgeschaltet werden kann. Wir definieren eine Variable „tradeErlaubt“ und schalten diese an oder aus, je nachdem welche Bedingung im Skript eintritt.
var bool tradeErlaubt = false
movingAverageCrossover = ta.crossover(close, ta.sma(close, 50))
movingAverageCrossunder = ta.crossunder(close, ta.sma(close, 50))
if movingAverageCrossover
tradeErlaubt := true
else if movingAverageCrossunder
tradeErlaubt := false
if tradeErlaubt
// hier folgt der Code, der nur ausgeführt wird, wenn „tradeElaubt“ wahr ist
█ Was ist das Schlüsselwort varip?
Ähnlich wie das var Schlüsselwort sorgt auch das varip Schlüsselwort (var intrabar persist) dafür, dass Werte persistieren. Während eine mit „var“ deklarierte Variable immer nur einen Wert je Kerze übernimmt, kann eine Variable, die mit „varip“ deklariert wurde, auch intrabar Aktualisierungen abspeichern.
Wir könnten zum Beispiel je neuer Preisdaten einen Zähler aufaddieren, um die Preisbewegungen innerhalb einer Kerze zu zählen. Varip funktioniert nur mit aktuellen Kerzen, die Live-Daten erhalten. Für historische Kerzen, wird der Wert für eine „varip“ Variable anhand der OHLC-Daten (Open, High, Low, Close) berechnet, also nur einmal.
Zur Verdeutlichung kannst du dir das nachfolgende Skript in deinem Chart anschauen. Während anfänglich beide Zähler den exakt gleichen Wert ausgeben, da varip nur einen Preisdatensatz je historischer Kerze erhält, ändern sich die beiden Kurven sobald es neue Live-Daten gibt. Varip zählt ab jetzt jede Preisbewegung, während var maximal nur einmal je Kerze hochzählt.
//@version=5
indicator("Var vs. Varip")
varip int counter = 0
if close > open
counter += 1
var int counter2 = 0
if close > open
counter2 += 1
plot(counter, "Varip", color.blue)
plot(counter2, "Var", color.red)
█ Übung 4
Erstelle ein Skript, das grüne Kerzen zählt, sofern die beiden vorherigen Kerzen rot waren. Der Wert soll sich stetig erhöhen (persistieren) und die Ausgabe soll eine blaue Linie sein.
█ Lösung Übung 3
Übung 3: Erstelle ein PineScript, dass einen Moving Averages berechnet, bei dem sich der Parameter für die Periode des Moving Average aus einem „Input“, welchen der Benutzer selber festlegen kann, ergibt. Der Moving Average soll grün dargestellt werden.
//@version=5
indicator("Übung 3", overlay=true)
i_length = input.int(20, "MA Länge")
ma = ta.sma(close, i_length)
plot(ma, "MA", color.green)
Edit: Ändert bitte im letzten Code Beispiel die MA Zeile in (Das Beschreibungsfeld der Idee zerlegt leider die richtige Syntax): ma = ta.sma(close, i_length)
Journaling-Prozess im Trading | So lernst du optimal!Hallo Trader,
viele von euch wollen wissen, wie man eigentlich aus seinen Trades lernt, um stetig besser zu werden. Dies ist ein großes Thema, mit dem wir uns persönlich befassen. Daher möchte ich dir heute zeigen, wie wir den Journaling-Prozess gestalten.
█ Journaling-Prozess im Trading - So lernst du optimal
Im Trading beschäftigen wir uns zu oft damit, ob wir einen guten oder einen schlechten Trade gemacht haben. Dies korreliert häufig mit dem monetären Ausgang des Trades. Das Problem liegt dabei auf der Hand: Wir lernen so nichts und machen nur geringe Fortschritte. Was wäre aber, wenn wir den Markt betrachten, wie er ist und wir hieraus lernen?
Der Prozess
1. Trades
Trades können Live-Trades, Demo-Trades oder aber fiktive Trades sein. Die Märkte bewegen sich immer wieder nach den gleichen Prinzipien, daher ist es egal, ob wir aus den gestrigen Charts lernen, da sich diese Verhaltensweisen in der Zukunft wiederholen werden. Wichtiger, statt diese Frage zu beantworten, ist es also, sich tatsächlich mit den Prinzipien auseinander zu setzen und zu lernen.
In diesem Beispiel habe ich AMD gehandelt. Losgelöst von meinem Trade möchte ich aber mehr darüber lernen, wie AMD sich bewegt und welche Prinzipien sich hier finden lassen.
Dies ist also der Grundstein dafür, auch neue Strategien zu entwickeln oder bestehende Konzepte zu optimieren. Es macht natürlich Sinn, sich gerade bei den fiktiven Trades Aktien rauszusuchen, die besonders relevant waren. Warum etwas auseinander nehmen, was eine durchschnittliche Chance gegeben hat, während drei andere Aktien vielleicht viel bessere Chancen dargestellt haben?
2. Screenshots der Trades anlegen und annotieren
Im zweiten Schritt des Prozesses bietet es sich an (sofern der Trade tatsächlich auch live ausgeführt wurde), die Ausführung der Trades abzuspeichern. Häufig sieht man hier bereits, dass unsauber gehandelt wurde etc. Auch hier gilt: Wir wollen alles akzeptieren, wie es ist. Kein Trader ist perfekt. Allein die Tatsache, dass wir die Arbeit auf uns nehmen signalisiert, dass wir besser werden wollen, was die eigentliche Journey des Tradings darstellt.
3. Charts annotieren und abspeichern
Nachdem wir in (2) unsere tatsächlichen Trades beschriftet haben, kommen wir nun zum eigentlichen Lernen. Dieses zeige ich im Video exemplarisch für die Aktie von AMD. Persönlich nutze ich hier unterschiedliche Zeitebenen und markiere mir größtenteils relevante Unterstützungs- und Widerstandslinien und mache mir ein paar Notizen, welche ich dann später im vierten Punkt verschriftliche. Die Vorgehensweise hierbei sollte dem Top-Down-Prinzip folgen. Starte also zuerst mit den höheren Zeitebenen, bevor du dich in die kleineren Zeitebenen bewegst. Hier markiere ich mir gute Spots, die für mich relevant waren und aus meiner Sicht gute Einstiege oder auch Ausstiege geboten hätten/haben. Prinzipien, die ich schon hunderte Male beobachtet haben, notiere ich mir ebenfalls und können später in meiner Wissensdatenbank als weiteres Beispiel für dieses Prinzip eingesetzt werden. In diesem Beispiel ist die Marke von 100$ relevant.
4. Wissenssicherung und Verknüpfung
Mit SHIFT+CMD(STRG)+S kannst du die jeweiligen Charts leicht in deine Zwischenablage kopieren und von dort in Tools deiner Wahl einfügen. Ich nutze dazu einen Markdown-Editor. Alle Charts kopiere ich also in einen neuen Eintrag, bevor ich weitere schriftliche Ausführungen dazu vornehme. Beobachtungen, wie in diesem Beispiel die 100$-Marke könnte ich dann wieder mit einem alten Eintrag über Zahlen, näher gerade Zahlen, verbinden. So füge ich mein Wissen zusammen und lerne neue Prinzipien und kann mehr über die Wahrheit lernen. Je mehr Beispiele zu unterschiedlichen Prinzipien, desto besser. Nur so lässt sich ein Muster besser beschreiben.
5. Ableiten und optimieren der Plays im Playbook
Wie in (4) schon ersichtlich, wird es einem so deutlich leichter fallen, gewisse Beobachten auf regelmäßiger Basis zu finden. Diese führen dazu, dass man bestehende Strategien, besser gesagt Setups, optimieren oder neue Setups herleiten kann. Du beobachtest im Tageschart ein Gap? Wie groß ist dieses? Ist dies vielleicht ein Gap-Play? Gab es Earnings, also Quartalszahlen? Dann könnte dieser Trade dein Earnings-Gap-Play werden. Wir wollen den KONTEXT des Trades mit dieser Vorgehensweise verstehen und mehr lernen!
6. Statistische Auswertung im Online-Journal & Trades taggen
Deine Trades sollten getaggt werden, um sie den entsprechenden Setups zuordnen zu können. Nur so kannst du sehen, was für dich erfolgreich funktioniert und was nicht. Die anderen Schritte werden dir dabei helfen, die Performance zu optimieren und neue Quellen für bessere Trades zu finden. Die statistische Auswertung ist wichtig, aber nicht alles. Hier kannst du viel über dein aktuelles Trading ableiten, aber in die Zukunft schaust du nur, indem du Schritte 1-5 immer wieder durchläufst und dein Gehirn mit dem Markt verbindest.
PineScript Guide 3 - Forms und einfache DatentypenHallo Trader,
nachdem wir uns in den ersten beiden Teilen eher abstrakte Inhalte und das Grundgerüst von PineScript angeschaut haben, folgen nun in diesem dritten Teil des PineScript Guides Inhalte die uns näher an die Programmierung von Skripten heranführen.
█ Was schauen wir uns in diesem Video an?
In diesem Video werden dir die verschiedenen einfachen Datentypen und Formen in PineScript vorgestellt. Am Ende des Videos sollst du verschiedene Datentypen voneinander unterscheiden können und wissen, wann du welchen Datentypen einsetzen kannst.
█ Welche Formen gibt es in PineScript?
const – beschreibt einen konstanten Wert der bereits vor der Ausführung des Skriptes feststeht und sich nicht verändert (zum Beispiel ein Indikatorname)
input – beschreit einen Wert, der vom Benutzer über die Indikator Einstellungen verändert werden kann
simple – beschreibt einen einfachen Wert der feststeht sobald das Skript zum ersten Mal ausgeführt wird und ändert sich anschließend nicht. Das sind beispielsweise Informationen zum jeweiligen Chart wie syminfo.type, welches uns Informationen zur Asset-Klasse liefern.
series – beschreibt einen sich zur Laufzeit dynamisch verändernden Wert. Das können Ergebnisse aus Kalkulationen, Funktionen oder ähnliches sein.
█ Welche einfachen Datentypen gibt es in PineScript?
int – Ganzzahlige Werte (-3000, -1, 0, 1, 2, 500, 5330, etc.)
float – Dezimalzahlen (1.23, 33.7, -222.8)
bool – Wahrheitswerte (true, false)
color – Farben (z.B. color.red oder Hex-code #FFFFFF)
string – Text ("Beispieltext 123")
█ Übung 3
Erstelle ein PineScript, dass einen Moving Averages berechnet, bei dem sich der Parameter für die Periode des Moving Average aus einem „Input“, welchen der Benutzer selber festlegen kann, ergibt. Der Moving Average soll grün dargestellt werden.
Randnotiz: Das Ergebnis der Moving Average Berechnung ist eine „series“, da der Moving Average in jeder Kerze neu kalkuliert wird.
█ Lösung Übung 2
Übung 2: Erstelle ein PineScript, dass den aktuellen Eröffnungskurs und den Eröffnungskurs vor zwei Perioden im Chart jeweils als Linie anzeigt.
//@version=5
indicator("Mein zweiter PineScript Indikator", overlay=true)
plot(open, title="Eröffnungskurs", color=color.red)
plot(open , title="Eröffnungskurs zwei Perioden zuvor", color=color.blue)
PineScript Guide 2 - Ausführungsmodell und ZeitreiheHallo Trader,
willkommen zum zweiten Teil des "PineScript für Einsteiger"-Guide.
█ Worum geht es in dieser Tutorial-Serie?
Dieser Kurs soll dir einen einfachen Einstieg in die PineScript Programmierung ermöglichen. Es ist egal, ob du vorher schon einmal programmiert hast oder gerade mit dem Programmieren anfängst. Der Kurs wird dir die Grundlagen der PineScript Programmierung erklären und dir mit einfachen Beispielen den Einstieg erleichtern.
█ Was schauen wir uns in diesem Video an?
Dieses Video soll dir zeigen wie PineScript ausgeführt wird und wie sich die Daten in PineScript zusammensetzen bzw. aufgebaut sind. Daher schauen wir uns das Execution Model- und das "Time Series"-Konzept an. Beide Konzepte sind abstrakt, aber notwendig um funktionierende Skripte zu erstellen.
█ Was ist das Execution Model / Ausführungsmodell? Oder anders ausgedrückt, wie wird PineScript ausgeführt?
Die Kerzen auf dem Tradingview Chart können technisch in historische und aktuelle Kerzen unterteilt werden.
Historische Kerzen liegen in der Vergangenheit und das jeweilige PineScript, welches auf deinem Chart angewendet wird, wird beim Öffnen des Charts einmal für historische Kerzen ausgeführt.
Historische Kerzen beinhalten einen Wert für jede Variable innerhalb des Skriptes.
Aktuelle Kerzen (realtime bar) sind solche, die den aktuellen Markt widerspiegeln und fortlaufend mit frischen Daten versorgt werden. Bei aktuellen Kerzen wird das PineScirpt somit mehrfach (einmal pro neuer Preisdaten) innerhalb einer Kerze ausgeführt. Wenn das Zeitintervall der Kerze überschritten wird (nennen wir sie Kerze A), erscheint eine neue aktuelle Kerze (Kerze B). Ab jetzt erhält Kerze B die neuen Preisdaten und Kerze A behält den Stand der Daten des letzten Updates innerhalb ihres Intervalls.
Aktuelle Kerzen verändern die Werte ihrer Variablen fortlaufend mit der Aktualisierung der Preisdaten.
█ Was ist das Time Series- / Zeitreihen-Konzept?
Die Preis- und Zeitdaten sind auf dem Chart und in PineScript anhand einer Zeitreihe sortiert. Dabei erhält jede Kerze einen Index. Die aktuelle Kerze (ganz rechts) hat den Index , die vorherige den Index und so weiter. Sobald eine neue Kerze erscheint, erhöht sich der Index aller vergangenen Kerzen um 1 und die aktuelle Kerze erhält den Index 0.
Als Programmierer können wir mit diesem Konzept auf bestimmte Kerzen referenzieren. Möchtest du dir eine Kerze markieren, um sie später wiederzuverwenden (zum Beispiel um eine Linie einzuzeichnen), kannst du dir ihren Index abspeichern.
Willst du zum Beispiel auf dem Tageschart den Schlusskurs von vor 3 Tagen abfragen, kannst du dies über close tun. „close“ ist hierbei eine built-in Variable für den Schlusskurs, die uns in PineScript zur Verfügung steht und die eckigen Klammern mit dem entsprechenden Index 3 sagen deinem Skript, den Schusskurs welcher Kerze du abfragen willst.
Das Execution Model und das Time Series Konzept bilden die Grundlage eines jeden PineScripts. Sie wirken anfänglich etwas abstrakt, vereinfachen uns die Arbeit mit den Preisdaten allerdings enorm.
█ Übung 2
Erstelle ein PineScript, dass den aktuellen Eröffnungskurs und den Eröffnungskurs vor zwei Perioden im Chart jeweils als Linie anzeigt.
█ Lösung für Übung 1
Übung 1: Erstelle ein Skript mit dem Namen "Mein erster PineScript Indikator", welches eine durchgehende rote Linie des Eröffnungskurses einer jeden Periode einzeichnet.
//@version=5
indicator("Mein erster PineScript Indikator", overlay=true)
plot(open, title="Eröffnungskurs", color=color.red)
PineScript Guide 1 - PineScript und PineEditorHallo Trader,
viele von euch traden bereits mit Indikatoren und wollen diese individualisieren. Tradingview bietet uns mit PineScript die Möglichkeit eigene Indikatoren mit ganz einfachen Schritten zu erstellen. Leider gibt es in der deutschen Community noch nicht allzu viele Informationen zur PineScript-Programmierung. Daher möchte ich euch mit diesem Tutorial ein wenig unter die Arme greifen. Ziel ist es jede Woche ein neues Thema zu behandeln, so dass wir gemeinsam die volle Funktionalität von PineScript erkunden.
█ Zu meiner Person
Ich bin Pascal und programmiere seit über 5 Jahren in PineScript. Angefangen habe ich aus reiner Neugier und habe so stetig meine Fähigkeiten weiterentwickelt. Hierbei kam mir meine vorherige Tätigkeit als Software-Entwickler zu gute. Durch meine Erfahrung bei der Hilfestellung im PineScript Chat und die Veröffentlichung diverser Open Source-Skripte bin ich nun in der Lage dieses Tutorial zu erstellen. Weiterhin bin ich im offiziellen Tradingview HelpCenter als Trusted Pine Programmer For Hire gelistet.
█ Worum geht es in dieser Tutorial-Serie?
Dieser Kurs soll dir einen einfachen Einstieg in die PineScript Programmierung ermöglichen. Es ist egal, ob du vorher schon einmal programmiert hast oder gerade mit dem Programmieren anfängst. Der Kurs wird dir die Grundlagen der PineScript Programmierung erklären und dir mit einfachen Beispielen den Einstieg erleichtern.
█ Was schauen wir uns in diesem Tutorial an?
Das erste Tutorial soll dir einen Einblick verschaffen. Daher schauen wir uns zunächst die folgenden Themen an:
Was ist der PineEditor?
Was ist PineScript?
Wie wird ein Skript erstellt?
Falls dir der Beitrag hilft würde ich mich über ein Like oder einen Kommentar unterhalb freuen. Feedback jeglicher Art ist gerne gesehen. Lasst uns gemeinsam die behandelten Themen diskutieren. Frohes Programmieren :)
█ Was ist der PineEditor?
Der PineEditor ist das Herzstück der PineScript Programmierung. In ihm erstellen wir unsere Skripte und er unterstützt uns dabei mit diversen Funktionen.
Zwei Kernaufgaben möchte ich dabei besonders herausstellen:
Syntax-Highlighting - Der PineEditor zeigt uns für verschiedene Teilbereiche des Skriptes unterschiedliche Farben an. So sind integrierte Funktionen bläulich eingefärbt und Konstanten, wie zum Beispiel Parameter rot. Das Syntax-Highlighting hilft uns zu erkennen, wo mögliche Fehlerquellen liegen und macht das Skipt allgemein lesbarer.
Hilfestellung - Wir können mittels Mouseover ein kleines Popup anzeigen lassen, welches uns Informationen zu integrierten PineScript Funktionen liefert. Weiterhin können wir mittels CTRl+Click (PC) oder cmd+Click (Mac) die Hilfeseite zur jeweiligen PineScript-Funktion öffnen, in der wir detaillierte Informationen zu allen Parametern, Funktionen und Features finden. Sogar nach über 5 Jahren PineScript-Programmierung nutze ich beide Funktionen täglich.
Der PineEditor integriert außerdem den PineComplier, welcher beim Abspeichern eines Skriptes die Syntax überprüft. Sollte das Skript einen Fehler enthalten, dann zeigt dir der PineEditor eine entsprechende Fehlermeldung an, die dir Rückschlüsse auf das Fehlverhalten gibt. Solltest du mal nicht wissen was falsch gelaufen ist, dann kannst du gerne im deutschen PineScript Chat nachfragen: Deutscher PineScript Chat
█ Was ist PineScript?
PineScript ist eine spezialisierte Scriptsprache, die es nur auf Tradingview gibt. Sie ist sehr mächtig, was es ermöglicht in wenigen Zeilen Funktionalitäten zu erschaffen für die in anderen Programmiersprachen mehrere hundert Zeilen notwendig werden. PineScript ist so designt, dass es für Einsteiger leicht ist einen ersten eigenen Indikator zu erstellen. Dennoch gibt es einige Einstiegshürden, die ich in diesem Kurs auflösen möchte.
PineScript wird genutzt um Indikatoren, Strategien oder Library Skripte zu schreiben.
Indikatoren, dienen dazu grafische Elemente, auf dem Chart oder unterhalb des Charts, anzuzeigen oder Benachrichtigungen auszulösen
Libraries, sind vorgefertigte Funktionalitäten, die in andere Skripte importiert werden können
Backtesting Skripte, dienen dazu eine Strategie gegen die historischen Preisdaten auszuwerten und eine schnelle Übersicht über potenzielle Rendite und andere Statistiken zu bekommen.
PineScript ist sehr gut dokumentiert und daher zugänglich für Einsteiger. Außerdem hat Tradingview eine große Scripter-Community, in der Hilfe schnell gefunden werden kann.
█ Wie wird ein Skript erstellt?
Zur Erstellung eines Skriptes öffnen wir zunächst den Chart. Unterhalb des Charts findest du den "PineEditor". Ein Klick auf diesen öffnet ein neues Fenster, indem die folgenden Zeilen zu sehen sind:
//@version=5
indicator("Mein Skript")
plot(close)
Diese Zeilen sind die Grundstruktur eines jeden Skriptes. Jedes Skript beinhaltet eine Versionsnummer, eine Angabe zur Art des Skriptes (in diesem Fall ein "indicator") und eine Ausgabe (in diesem Fall eine einfache Linie/plot des Schlusskurses)
Solltest du das Skript speichern wollen, dann kannst du innerhalb des PineEditors auf "Speichern" klicken, dem Skript einen Namen geben und es anschließend bei den Indikatoren unter "Meine Skripte" wiederfinden.
Unter der Funktion "Öffnen" kannst du bestehende Skripte öffnen oder neue Skripte erstellen.
█ Übung 1
Zum Abschluss des ersten Tutorials möchte ich dir eine Übungsaufgabe geben, welche ich im nächsten Tutorial auflösen werden:
- Erstelle ein Skript mit dem Namen "Mein erster PineScript Indikator", welches eine durchgehende rote Linie des Eröffnungskurses einer jeden Periode einzeichnet.
Wie analysiere ich meine Charts mit Support und Resistance ZonenIn diesem Tutorial zeige ich euch, wie ich meine Charts Analysiere, was ich dazu nutze und was für mich wichtig ist!
Sofern Ihr fragen habt, dann könnt ihr mir gerne schreiben! Ihr könnt mir auch gerne weitere Themen für Tutorials nennen.
Grüße und noch einen erfolgreichen Wochenabschluss!