Wie man TA-Indikatoren auf TradingView erstellt
Startseite
Artikel
Wie man TA-Indikatoren auf TradingView erstellt

Wie man TA-Indikatoren auf TradingView erstellt

Fortgeschritten
Veröffentlicht Aug 28, 2020Aktualisiert Jun 15, 2023
13m

Einf√ľhrung

Ohne die richtigen Trading-Tools k√∂nnen Sie keine effektive technische Analyse durchf√ľhren. Eine starke Trading-Strategie hilft Ihnen g√§ngige Fehler zu vermeiden, verbessert Ihr Risikomanagement und erh√∂ht Ihre F√§higkeit, Chancen zu erkennen und zu nutzen.
F√ľr viele ist TradingView die ideale Charting-Plattform. Die leistungsstarke HTML5-Webanwendung, die eine Vielzahl von Werkzeugen f√ľr die technische Analyse bietet, wird von Millionen von Menschen genutzt, um die Bewegungen in den M√§rkten f√ľr Devisen, Krypto-W√§hrungen und traditionelle Aktienm√§rkte zu verfolgen.
TradingView verf√ľgt √ľber viele leistungsstarke Funktionen: Es erm√∂glicht uns die Verfolgung von Verm√∂genswerten √ľber zahlreiche Trading-Plattformen hinweg und die Ver√∂ffentlichung von Trading-Ideen in seinem sozialen Netzwerk. In diesem Artikel werden wir uns auf seine Anpassbarkeit konzentrieren. Wir werden Pine Script verwenden, eine Programmiersprache die in TradingView zum Einsatz kommt und die uns eine granulare Kontrolle √ľber unsere Chart-Layouts erm√∂glicht.

Los geht's!


Was ist Pine Script?

Pine Script ist eine Script-Sprache, die zur Modifizierung Ihrer TradingView-Charts verwendet werden kann. Die Plattform stattet Sie bereits mit vielen Funktionen daf√ľr aus, aber mit Pine Script k√∂nnen Sie noch einen Schritt weiter gehen. Ganz gleich, ob Sie die Farben Ihrer Candlesticks √§ndern oder eine neue Strategie backtesten m√∂chten, mit dem Pine Editor k√∂nnen Sie Ihre Echtzeit-Charts nach Belieben anpassen.
Der Code selbst ist exzellent dokumentiert, daher sollten Sie unbedingt das Benutzerhandbuch f√ľr weitere Informationen lesen. Unser Ziel in diesem Tutorial ist es, einige der Grundlagen zu diskutieren und Indikatoren einzuf√ľhren, die f√ľr das Cryptocurrency-Trading n√ľtzlich sein k√∂nnen.


Einrichtung

Es ist unglaublich einfach, mit Pine Script anzufangen. Jeder Code, den wir eingeben, wird auf den Servern von TradingView ausgef√ľhrt, so dass wir √ľber einen Browser auf den Editor zugreifen und unsere Skripte entwickeln k√∂nnen ‚Äď ohne dass ein zus√§tzlicher Download oder eine zus√§tzliche Konfiguration erforderlich ist.

In diesem Tutorial werden wir das W√§hrungspaar Bitcoin/Binance USD (BTCBUSD) charten. Wenn Sie noch keines haben, erstellen Sie ein kostenloses Konto (es gibt auch ein Pro-Abonnement, aber das ist f√ľr diese Anleitung nicht notwendig).¬†
Folgen Sie diesem Link, und Sie sehen einen Chart, der dem folgenden ähnelt:


Ihrer wird wahrscheinlich aktueller sein.


Hier wollen wir den Full-Featured Chart anschauen ‚Äď klicken Sie auf die Schaltfl√§che, um ihn aufzurufen. Dadurch erhalten wir eine viel detailliertere Ansicht, Zeichenwerkzeuge und Optionen zur Darstellung von Trendlinien, und vieles mehr.


Das Full-Featured Chart. Sie können den Zeitrahmen anpassen, indem Sie auf die Ansichten oberhalb der hervorgehobenen Tabs klicken.


Wir werden nicht weiter darauf eingehen, wie die verschiedenen zur Verf√ľgung stehenden Tools zu verwenden sind, aber wenn Sie es mit der technischen Analyse ernst meinen, raten wir Ihnen dringend, sich mit diesen vertraut zu machen. Unten links (im Bild hervorgehoben) sehen Sie einige verschiedene Tabs ‚Äď klicken Sie dort auf Pine Editor.


Der Pine Editor



Dieser Editor ist der Ort, an dem die Magie geschieht. Wir sagen ihm, was wir tun wollen, und klicken dann auf Add to Chart, um unsere Anmerkungen oben erscheinen zu sehen. Beachten Sie, dass die Dinge un√ľbersichtlich werden k√∂nnen, wenn wir mehrere Anmerkungen auf einmal einf√ľgen, deshalb entfernen wir sie zwischen den Beispielen (Rechtsklick in das Diagramm > Indikatoren entfernen).
Wie Sie sehen können, haben wir dort bereits ein paar Zeilen Code. Lassen Sie uns auf Add to Chart klicken, um zu sehen, was passiert.



Ein zweiter Chart wird unterhalb des Originals hinzugef√ľgt. Der neue Chart stellt zuf√§llig die gleichen Daten dar. Fahren Sie mit der Maus √ľber My Script und klicken Sie auf das Kreuz, um es zu entfernen. Nun wollen wir uns den Code anschauen.
study("My Script")
Diese erste Zeile dient lediglich der Erstellung unserer Anmerkung. Es wird nur der Name f√ľr den Indikator ben√∂tigt ("My Script", in diesem Fall), aber es gibt auch einige optionale Parameter, die wir hinzuf√ľgen k√∂nnen. Einer davon ist Overlay, der TradingView anweist, den Indikator auf dem bestehenden Chart zu platzieren (statt in einem neuen Segment). Wie Sie aus unserem ersten Beispiel ersehen k√∂nnen, ist er standardm√§√üig auf false voreingestellt. Auch wenn wir ihn jetzt nicht in Aktion sehen werden, f√ľgt overlay=true den Indikator zum bestehenden Chart hinzu.
plot(close)
Diese Linie ist die Anweisung, den Schlusskurs von Bitcoin darzustellen. Mit plot erhalten wir einfach einen Line-Chart, aber wir k√∂nnen auch Candlesticks und Balken anzeigen, wie wir in K√ľrze sehen werden.¬†

Lassen Sie uns nun folgendes versuchen:

//@version=4
study("My Script", overlay=true)
plot(open, color=color.purple)
Sobald Sie dies hinzugef√ľgt haben, sollten Sie einen zweiten Chart sehen (der wie das nach rechts verschobene Original aussieht). Wir haben stattdessen nur den Er√∂ffnungskurs dargestellt, und da die Er√∂ffnungskurs des aktuellen Tages der Schlusskurs des Vortags ist, macht es Sinn, dass diese eine identische Form haben.
Okay! Lassen Sie uns die aktuellen Anmerkungen entfernen (denken Sie daran, wir tun dies, indem wir mit der rechten Maustaste klicken und auf Remove Indicators klicken). Fahren Sie mit der Maus √ľber Bitcoin / BUSD und klicken Sie auf die Schaltfl√§che Hide, um auch den aktuellen Chart zu l√∂schen.

Viele Trader bevorzugen Candlestick-Charts, da sie uns mehr Informationen liefern als eine einfache Darstellung wie die, die wir gerade erstellt haben. F√ľgen wir diese als n√§chstes hinzu.

//@version=4
study("My Script", overlay=true)
plotcandle(open, high, low, close)
Es ist ein guter Anfang, aber ohne Farben sieht es ein bisschen langweilig aus. Idealerweise sollten wir rote Candles haben, wenn der Er√∂ffnungskurs h√∂her ist als der Schlusskurs f√ľr den gegebenen Zeitrahmen, und gr√ľne Candle, wenn der Schlusskurs h√∂her ist als der Er√∂ffnungskurs. Wir f√ľgen eine Zeile √ľber der Funktion plotcandle() hinzu:
//@version=4
study("My Script", overlay=true)
colors = open >= close ? color.red : color.green
plotcandle(open, high, low, close)

Dieser schaut sich jeden Candlestick an und pr√ľft, ob der Er√∂ffnungskurs h√∂her oder gleich dem Schlusskurs ist. Wenn dies der Fall ist, bedeutet dies, dass die Preise in diesem Zeitraum gefallen sind, so dass der Candlestick rot eingef√§rbt wird. Andernfalls wird er gr√ľn eingef√§rbt. √Ąndern Sie die Funktion plotcandle() um dieses Farbschema zu verwenden:

//@version=4
study("My Script", overlay=true)
colors = open >= close ? color.red : color.green
plotcandle(open, high, low, close, color=colors)

Entfernen Sie die aktuellen Indikatoren, falls Sie dies noch nicht getan haben, und f√ľgen Sie diesen dem Chart hinzu. Jetzt sollten wir etwas haben, das einem normalen Candlestick-Chart √§hnelt.


Wunderschön!


Darstellung von Moving Averages (MA)

Wir haben einige der Grundlagen aufgeschrieben. Kommen wir nun zu unserem ersten benutzerdefinierten Indikator ‚Äď der exponentiell gleitende Durchschnitt, oder Exponential Moving Average (EMA). Dies ist ein wertvolles Instrument, da es uns erlaubt, jegliche Marktst√∂rungen herauszufiltern und Preisaktionen zu gl√§tten.¬†
Der EMA unterscheidet sich geringf√ľgig vom einfachen gleitenden Durchschnitt (auf englisch: Simple Moving Average oder SMA), da er den j√ľngsten Daten mehr Gewicht beimisst. Er neigt dazu, eher auf pl√∂tzliche Bewegungen zu reagieren, und wird oft f√ľr kurzfristige Aktionen verwendet (z.B. im Day-Trading).


Der Simple Moving Average (SMA)

Wir k√∂nnen die SMA ebenso gut darstellen, nur damit wir die beiden danach vergleichen k√∂nnen. F√ľgen Sie diese Zeile zu Ihrem Skript hinzu:

plot(sma(close, 10))

Diese stellt den Durchschnitt der letzten zehn Tage dar. Ver√§ndern Sie die Zahl in den Klammern, um zu sehen, wie sich die Kurve unter Ber√ľcksichtigung unterschiedlicher L√§ngen ver√§ndert.


Der SMA, basierend auf den letzten zehn Tagen.


Der Exponential Moving Average (EMA)

Die EMA wird etwas schwieriger zu verstehen sein, aber keine Sorge. Lassen Sie uns zuerst die Formel aufschl√ľsseln:

EMA = (Schlusskurz - EMA des Vortags) * Multiplikator - EMA des Vortags

Also, was sagt uns das? Nun, f√ľr jeden Tag berechnen wir einen neuen gleitenden Durchschnitt, der auf dem des Vortages basiert. Der Multiplikator ‚Äúgewichtet‚ÄĚ die j√ľngste Periode, und wird mit der folgenden Formel berechnet:

Multiplikator = 2 / (Länge des EMA + 1)

Wie bei einfachen gleitenden Durchschnitten m√ľssen wir angeben, wie lang die EMA sein wird. Syntaktisch gesehen ist die Funktion zur Darstellung des EMA √§hnlich wie die des SMA. Stellen Sie ihn neben dem SMA dar, damit Sie die beiden vergleichen k√∂nnen:

//@version=4
study("My Script", overlay=true)
plot(sma(close, 10))
plot(ema(close,10))


Sie können einen leichten Unterschied zwischen den beiden MAs feststellen.



Integrierte Skripte

Bis jetzt haben wir unseren Code manuell geschrieben, damit Sie ein Gef√ľhl daf√ľr bekommen k√∂nnen. Aber lassen Sie uns etwas einf√ľhren, das uns Zeit sparen kann, insbesondere wenn wir komplexere Skripte schreiben und diese nicht von Grund auf neu schreiben wollen.

Klicken Sie oben rechts in Ihrem Editor auf New. Sie erhalten dann ein Dropdown-Men√ľ mit allen m√∂glichen technischen Indikatoren. Klicken Sie auf Moving Average Exponential, um den Quellcode f√ľr einen EMA-Indikator zu sehen.



Fahren Sie fort und f√ľgen Sie diesen zu Ihrem Chart hinzu.


Dieser ist anders als unserer ‚Äď Sie werden die input() Funktionen bemerken. Diese sind sehr benutzerfreundlich, da Sie auf dieses K√§stchen klicken k√∂nnen‚Ķ



...und einfach einige der Werte in einem Pop-up-Fenster √§ndern k√∂nnen, indem Sie auf das R√§dchen f√ľr Settings klicken.



Wir werden in unserem n√§chsten Skript einige input() Funktionen hinzuf√ľgen, um dies zu demonstrieren.


Darstellung des Relative Strength Index (RSI) Indikators

Der Relative Strength Index (RSI) ist ein weiterer wichtiger Indikator in der technischen Analyse. Er wird als Momentum-Indikator bezeichnet, was bedeutet, dass er die Rate misst, mit der Verm√∂genswerte gekauft und verkauft werden. Ein RSI-Wert, der auf einer Skala von 0 bis 100 dargestellt wird, versucht, Investoren dar√ľber zu informieren, ob Verm√∂genswerte √ľberkauft oder √ľberverkauft sind. In der Regel kann ein Verm√∂genswert als √ľberverkauft betrachtet werden, wenn er einen Wert von h√∂chstens 30 hat, und er k√∂nnte mit einem Wert von mindestens 70 √ľberkauft sein.
Wenn Sie auf New > RSI-Strategy gehen, k√∂nnen Sie sich selbst davon √ľberzeugen. Der RSI wird im Allgemeinen √ľber Zeitr√§ume von 14 (d.h. 14 Stunden oder 14 Tage) gemessen, aber es steht Ihnen frei, diese Einstellung an Ihre eigene Strategie anzupassen.
F√ľgen Sie diesen dem Chart hinzu. Sie sollten jetzt ein paar Pfeile angezeigt sehen (definiert durch die Funktion strategy.entry() im Code). RsiLE deutet auf eine potenzielle Gelegenheit hin, Long f√ľr Verm√∂genswert zu gehen, da er m√∂glicherweise √ľberverkauft ist. RsiSE hebt m√∂gliche Punkte hervor, an denen der Verm√∂genswert bei √úberkauf geshortet werden kann. Beachten Sie, dass Sie sich, wie bei allen Indikatoren, nicht unbedingt auf diese als garantiert sicheren Beweis daf√ľr verlassen sollten, dass die Preise sinken oder steigen werden.


Backtesting

Es gibt eine M√∂glichkeit f√ľr uns, unsere selbst erstellten Indikatoren zu testen. Obwohl die bisherige Performance keine Garantie f√ľr zuk√ľnftige Ergebnisse ist, kann uns ein Backtesting unserer Skripte eine Vorstellung davon geben, wie effektiv sie Signale auffangen.

Im Folgenden geben wir Ihnen ein Beispiel f√ľr ein einfaches Skript. Wir werden eine einfache Strategie erstellen, die eine Long-Position eingeht, wenn der BTC-Preis unter 11.000 $ f√§llt, und die Position verl√§sst, wenn der Preis 11.300 $ √ľbersteigt. Dann k√∂nnen wir sehen, wie profitabel diese Strategie in der Vergangenheit gewesen w√§re.

//@version=4
strategy("ToDaMoon", overlay=true)
enter = input(11000)
exit = input(11300)
price = close

if (price <= enter)
    strategy.entry("BuyTheDip", strategy.long, comment="BuyTheDip")
if (price >= exit)
    strategy.close_all(comment="SellTheNews")
Hier haben wir entry und exit als Variablen definiert ‚Äď beide sind Eingaben, was bedeutet, dass wir sie sp√§ter im Chart √§ndern k√∂nnen. Wir richten auch die Variable price ein, die f√ľr jede Periode den Abschlusskurs nimmt. Dann haben wir ein wenig Logik in Form von if Aussagen. Wenn der Teil in Klammern wahr ist, dann wird der einger√ľckte Block darunter ausgef√ľhrt. Andernfalls wird er √ľbersprungen.

Wenn also der Preis niedriger oder gleich dem von uns gew√ľnschten Einstieg ist, wird der erste Ausdruck als wahr gewertet, und wir er√∂ffnen eine Long-Position. Sobald der Preis gleich oder h√∂her als der gew√ľnschte Ausstieg ist, wird der zweite Block ausgel√∂st, wodurch alle offenen Positionen geschlossen werden.

Wir kommentieren den Chart mit Pfeilen, die zeigen, wo wir eingetreten bzw. ausgetreten sind, also haben wir angegeben, wie diese Punkte mit dem Parameter comment beschriftet werden sollen (in diesem Beispiel ‚ÄúBuyTheDip‚ÄĚ und ‚ÄúSellTheNews‚ÄĚ). Kopieren Sie den Code und f√ľgen Sie ihn dem Chart hinzu.


Sie k√∂nnen nun die Indikatoren auf dem Chart sehen. Sie m√ľssen eventuell herauszoomen.


TradingView wendet Ihre Regeln automatisch auf √§ltere Daten an. Sie werden auch feststellen, dass es vom Pine Editor zum Tab Strategy Tester wechselt. Dadurch erhalten Sie einen √úberblick √ľber Ihre potenziellen Gewinne, eine Liste der Trades und deren individuelle Performance.


Positionen, die wir eröffnet und geschlossen haben.


Alles im Zusammenhang

Es ist an der Zeit, unser eigenes Skript zu schreiben, indem wir einige der Konzepte verwenden, die wir bisher gesehen haben. Wir werden EMA und RSI kombinieren und ihre Werte verwenden, um Candlesticks einzufärben und so Erkenntnisse zu gewinnen, die wir leicht visualisieren können.

Dies sollte nicht als Finanzberatung ausgelegt werden ‚Äď es gibt keinen objektiv korrekten Weg, diesen Indikator zu verwenden. Wie bei allen anderen sollte er zusammen mit anderen Tools verwendet werden, um Ihre eigene Strategie zu entwickeln.

Nun lassen Sie uns an unserem neuen Skript arbeiten. Entfernen Sie alle Ihre Indikatoren aus dem Chart und blenden Sie auch den Bitcoin/BUSD-Chart aus, so dass wir eine saubere Oberfläche haben, auf der wir arbeiten können.

Lassen Sie uns mit der Definition unserer Studie beginnen. Sie können sie nennen, wie Sie wollen, aber stellen Sie sicher, dass Sie overlay=true setzen.
study(title="Binance Academy Script", overlay=true)
Erinnern Sie sich an unsere EMA-Formel von vorhin. Wir m√ľssen den Multiplikator mit der L√§nge der EMA angeben. Machen wir daraus eine input, die eine ganze Zahl erfordert (also keine Nachkommastellen). Wir werden auch ein Minimum mit (minval) festlegen, sowie einen Standardwert mit (defval).
study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)


Mit Hilfe dieser neuen Variablen k√∂nnen wir den EMA-Wert f√ľr jede Candle in unserem Chart berechnen:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)


Großartig. Weiter zum RSI. Wir werden ihm auf ähnliche Weise eine Länge geben:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)

Und jetzt k√∂nnen wir die Kalkulation durchf√ľhren:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)

Lassen Sie uns an dieser Stelle die Logik definieren, die die Candlesticks in Abh√§ngigkeit von den EMA- und RSI-Werten einf√§rbt. Nehmen wir eine Situation, in der (a) der Schlusskurs der Candle den EMA-Wert √ľbersteigt und (b) der RSI-Wert √ľber 50 liegt.

Warum? Nun, Sie k√∂nnten entscheiden, dass diese Indikatoren in einer Kombination verwendet werden k√∂nnen, um Ihnen zu sagen, wann Sie Bitcoin kaufen (Long gehen) oder verkaufen (shorten) sollten. Sie k√∂nnten zum Beispiel denken, dass die Erf√ľllung dieser beiden Bedingungen bedeutet, dass es ein guter Zeitpunkt ist, eine Long-Position einzugehen. Oder umgekehrt k√∂nnten Sie es verwenden, um Sie dar√ľber zu informieren, wann Sie nicht shorten sollten, auch wenn andere Indikatoren etwas anderes besagen.

Also wird unsere nächste Zeile so ausssehen:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
Wenn wir dies ins verst√§ndliches Deutsch √ľbersetzen, sagen wir lediglich, dass wir die Candle gr√ľn einf√§rben, wenn der EMA-Wert den Schlusskurs und der RSI-Wert 50 √ľberschreitet. Andernfalls f√§rben wir die Candle rot.¬†

Als Nächstes zeigen wir den EMA an:

study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
plot(emaVal, "EMA")
Zuletzt zeichnen Sie die Candles, wobei Sie darauf achten m√ľssen, den Parameter color einzubeziehen:
study(title="Binance Academy Script", overlay=true)
emaLength = input(title="EMA Length", type=input.integer, defval=25, minval=0)
emaVal = ema(close, emaLength)
rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0)
rsiVal = rsi(close, rsiLength)
colors = close > emaVal and rsiVal > 50 ? color.green : color.red
plot(emaVal, "EMA")
plotcandle(open, high, low, close, color=colors)

Und das ist das Skript! F√ľgen Sie es dem Chart hinzu, um es in Aktion zu sehen.


Ein BTC/BUSD Chart mit dem EMA/RSI Indikator.


Fazit

In diesem Artikel haben wir einige grundlegende Beispiele daf√ľr durchgespielt, was Sie mit dem Pine Editor von TradingView erreichen k√∂nnen. Sie sollten inzwischen wissen, wie Sie einfache Anmerkungen in Preis-Charts machen k√∂nnen, um zus√§tzliche Erkenntnisse aus Ihren eigenen Indikatoren zu gewinnen.

Wir haben uns hier nur ein paar Indikatoren angeschaut, aber es ist einfach, komplexere Indikatoren zu erstellen ‚Äď entweder durch Auswahl der integrierten Skripte unter New oder indem Sie sie selbst schreiben.

Mangelnde Inspiration? Die folgenden Artikel k√∂nnten Ihnen einige Ideen f√ľr Ihr n√§chstes Projekt liefern: