In diesem Artikel zeige ich dir, wie du einen Indikator für TradingView entwickeln kannst. Als Beispiel verwende ich einen Indikator, der die wichtigsten Kennzahlen für die Analyse von Aktien anzeigt.
- Aufbau des Indikators
- Definition der Eingabeparameter
- Berechnung der Kennzahlen
- Darstellung der Kennzahlen im Chart
- Ressourcen
Aufbau des Indikators
Der Indikator besteht aus drei Teilen. Zum einen gibt es die eigentliche Berechnung der Kennzahlen und zum anderen die Darstellung der Kennzahlen im Chart. Weiterhin möchten wir dem Nutzer die Möglichkeit geben, die Werte und Schwellen für die Kennzahlen individuell anzupassen.
Der Aufbau des Indikators ist wie folgt:
- Definition der Eingabeparameter
- Berechnung der Kennzahlen
- Darstellung der Kennzahlen im Chart
Definition der Eingabeparameter
Zunächst definieren wir den Indikator und die Eingabeparameter. Die Eingabeparameter sind die Werte, die der Nutzer individuell anpassen kann. In unserem Fall sind das die Schwellenwerte für die Kennzahlen.
//@version=5
indicator("Test Titel", shorttitle="Test", overlay=true)
// Inputs
adrLength = input(defval=20, title="ADR period")
adrThresh = input(defval=3, title="ADR Threshold")
advLength = input(defval=21,title="ADV period")
dvolThresh = input(defval=50,title="$Vol Threshold in M")
tableOrientation = input.string(defval = "vertical", title = "Orientation of Dashboard", options = ["vertical", "horizontal"])
tablePosition = input.string(defval= position.top_right, options = [position.bottom_right, position.bottom_left, position.top_right, position.top_left])
adrLength
definiert die Anzahl der Tage, die für die Berechnung der Average Daily Range (ADR) verwendet werden.adrThresh
ist der Schwellenwert für die ADR.advLength
definiert die Anzahl der Tage, die für die Berechnung des Average Daily Volume (ADV) verwendet werden.dvolThresh
ist der Schwellenwert für das ADV.tableOrientation
definiert die Ausrichtung des Dashboards.tablePosition
definiert die Position des Dashboards im Chart.
Berechnung der Kennzahlen
Exemplarisch zeige ich dir die Berechnung der Average Daily Range (ADR) und der prozentualen Veränderung. Die Berechnung der anderen Kennzahlen erfolgt analog.
// Definitions - calculated values
adrValue = request.security(syminfo.tickerid, 'D', ta.sma((high/low-1)[1]*100,adrLength))
changeValue = request.security(syminfo.tickerid, 'D', (close/close[1]-1)*100)
Darstellung der Kennzahlen im Chart
Die Darstellung der Kennzahlen erfolgt in einem Dashboard. Hierfür verwenden wir die Funktion table.new
. Die Funktion table.new
erwartet als Parameter die Position des Dashboards im Chart, die Anzahl der Zeilen und Spalten sowie die Ausrichtung des Dashboards.
// Design Variables for Table
var numberColums = 6 // Standardinitialisierung
var numberRows = 1 // Standardinitialisierung
if tableOrientation == "vertical"
numberColums := 1
numberRows := 6
var table t = table.new(tablePosition, numberColums, numberRows, border_width = 3)
posColor = color.rgb(38, 166, 154)
negColor = color.rgb(240, 83, 80)
neutralColor = color.new(#999999, 0)
lightTransp = 90
avgTransp = 80
heavyTransp = 69
// Fill Table with ADR
f_fillCellADRValue(_table, _column, _row, _value, _threshold = 0) =>
_c_color = _value >= _threshold ? posColor : negColor
_transp = _value >= _threshold ? lightTransp : heavyTransp
_cellText = str.tostring(_value, "0.00") + "%\n" + "ADR"
table.cell(_table, _column, _row, _cellText, bgcolor = color.new(_c_color, _transp), text_color = _c_color)
// Fill Table with Change
f_fillCellchangeValue(_table, _column, _row, _value, _threshold = 0) =>
_c_color = _value >= _threshold ? posColor : negColor
_transp = _value >= _threshold ? lightTransp : heavyTransp
_cellText = str.tostring(_value, "0.00") + "%\n" + "Chg"
table.cell(_table, _column, _row, _cellText, bgcolor = color.new(_c_color, _transp), text_color = _c_color)
if barstate.islast
if tableOrientation == "horizontal"
f_fillCellADRValue(t, 0, 0, adrValue, adrThresh)
f_fillCellchangeValue(t, 1, 0, changeValue)
else
f_fillCellADRValue(t, 0, 0, adrValue, adrThresh)
f_fillCellchangeValue(t, 0, 1, changeValue)
Zusammenfassung
In diesem Artikel hast du gelernt, wie du einen Indikator für TradingView entwickeln kannst. Als Beispiel haben wir einen Indikator entwickelt, der die wichtigsten Kennzahlen für die Analyse von Aktien anzeigt. Den fertigen Indikator kannst du dir hier¹ anschauen und kostenlos nutzen.
Ressourcen
¹: Hierbei handelt es sich um einen Werbe- oder einen Affiliate-Link. Wenn du auf diesen Link klickst, etwas kaufst oder abschließt, erhalten wir (je nach Anbieter) eine Provision. Dir entstehen dadurch keine Mehrkosten und du unterstützt unser Projekt. Wir danken dir für deinen Support.