Wie man Indikatoren in TradingView schreibt – mit Beispielen und Handelseinstellungen
In diesem Artikel erfahren Sie Schritt für Schritt, wie Sie einen Indikator in TradingView erstellen und implementieren. Außerdem werden wichtige Aspekte der Sicherheit und der Anbindung an Börsen behandelt.

Wie man Indikatoren in TradingView schreibt – mit Beispielen und Handelseinstellungen

Dieser Artikel erklärt Ihnen, wie Sie Indikatoren in TradingView erstellen und diese mithilfe von Pine Script mit Börsen verbinden. Implementierungsdetails, Sicherheitsaspekte und technische Tipps für sicheres und effektives Trading werden ebenfalls behandelt.
0 Aktien
0
0
0
0

 

Wie erstellt man Indikatoren und Strategien in TradingView und verbindet es mit einer Börse?

Dieser umfassende und praxisorientierte Leitfaden erklärt Schritt für Schritt, wie Sie Indikatoren und Strategien mit Pine Script Version 5 entwickeln, Webhook-Alarme in TradingView erstellen, einen sicheren Webhook-Server mit Flask und ccxt einrichten sowie technische und sicherheitsrelevante Tipps und Hinweise zur Standortwahl geben, um die Latenz zu reduzieren. Der Artikel eignet sich für Trader, Entwickler und Betriebsteams.

 

Teil 1 – Erste Schritte mit Pine Script (Version 5)

Pine Script Version 5 bietet neue Funktionen und erweiterte Features. So legen Sie los:

  • Version auswählen: Aus //@version=5 Verwenden.
  • Zwei Haupttypen: Indikator (zur Anzeige im Diagramm und zur Signalgenerierung) und Strategie (Zum Backtesting und zur Ausführung hypothetischer Aufträge).
  • Eingabevariablen: Aus der Funktion Eingang Zur Verwendung für vom Benutzer änderbare Parameter.
  • Alarm: Aus Alarmzustand Verwenden Sie es, um in TradingView sinnvolle Alarmbedingungen zu definieren.

 

Einfaches Indikatorbeispiel (EMA Crossover + RSI-Filter)

//@version=5
indicator("EMA Crossover + RSI Filter", overlay=true)

// Inputs
shortLen = input.int(9, "EMA Short Length")
longLen  = input.int(21, "EMA Long Length")
rsiLen   = input.int(14, "RSI Length")
rsiThresh = input.int(50, "RSI Threshold")

// Price
price = close

// Indicators
emaShort = ta.ema(price, shortLen)
emaLong  = ta.ema(price, longLen)
rsi = ta.rsi(price, rsiLen)

// Signals
bull = ta.crossover(emaShort, emaLong) and rsi > rsiThresh
bear = ta.crossunder(emaShort, emaLong) and rsi < rsiThresh

plot(emaShort, color=color.blue)
plot(emaLong, color=color.orange)
plotshape(bull, title="Long", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")
plotshape(bear, title="Short", location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT")

// Alerts
alertcondition(bull, title="Long Alert", message="LONG_SIGNAL")
alertcondition(bear, title="Short Alert", message="SHORT_SIGNAL")

Praktische Tipps: Die Alarmmeldung sollte im JSON-Format oder in einer bestimmten Struktur vorliegen, damit der Webserver sie problemlos verarbeiten kann; zum Beispiel: {"signal":"LONG","symbol":"BTCUSDT","timeframe":"1m"}.

 

Einfaches Strategiebeispiel mit Risikomanagement

//@version=5
strategy("EMA Crossover Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1)

// inputs ...
// (same indicators as above)
shortLen = input.int(9, "EMA Short Length")
longLen  = input.int(21, "EMA Long Length")
rsiLen   = input.int(14, "RSI Length")
rsiThresh = input.int(50, "RSI Threshold")

price = close
emaShort = ta.ema(price, shortLen)
emaLong  = ta.ema(price, longLen)
rsi = ta.rsi(price, rsiLen)

bull = ta.crossover(emaShort, emaLong) and rsi > rsiThresh
bear = ta.crossunder(emaShort, emaLong) and rsi < rsiThresh

if bull
    strategy.entry("Long", strategy.long)
if bear
    strategy.entry("Short", strategy.short)

// Example Stop Loss / Take Profit
strategy.exit("Exit Long", from_entry="Long", loss=100, profit=200)
strategy.exit("Exit Short", from_entry="Short", loss=100, profit=200)

Erläuterung: Für genauere Backtests als Strategie Verwendung und Parameter Stop-Loss Und Gewinnmitnahme Und passen Sie die Positionsgröße an.

 

Teil 2 – Struktur von Alarmen und Webhooks in TradingView

Nachdem Sie einen Indikator oder eine Strategie zum Chart hinzugefügt haben, erstellen Sie über das Menü „Benachrichtigungen“ eine neue Benachrichtigung. In den Einstellungen:

  • Alarmtyp: Option Webhook-URL Wählen Sie Ihre Serveradresse aus und geben Sie sie ein (z. B. https://trade.example.com/webhook).
  • Nachricht: Verwenden Sie Standard-JSON; schließen Sie Felder ein. Symbol, Aktion, Preis, Zeitrahmen, uuid Und Zeitstempel.

Beispiel für eine Alarmmeldung:

{"symbol":"BTCUSDT","action":"LONG","price":"${close}","timeframe":"1m","strategy":"EMA_CROSS_V1"}

 

Teil 3 – Einrichten eines Webservers zum Empfangen von Alarmen und Senden von Aufträgen an die Börse

Vorgeschlagene Architektur:

  • TradingView (Alarm) → HTTPS-Webhook (NGINX + Flask/Node) → Bot (Geschäftslogik) → Exchange-API (ccxt oder SDK)

Installation der Voraussetzungen (Beispiel für Ubuntu)

sudo apt update
sudo apt install -y python3 python3-venv python3-pip
python3 -m venv venv
source venv/bin/activate
pip install flask ccxt

Beispiel app.py mit Flask und ccxt

from flask import Flask, request, jsonify
import ccxt, os, hmac, hashlib, time

app = Flask(__name__)

API_KEY = os.getenv("EXCHANGE_API_KEY")
API_SECRET = os.getenv("EXCHANGE_API_SECRET")

exchange = ccxt.binance({
    'apiKey': API_KEY,
    'secret': API_SECRET,
    'enableRateLimit': True,
})

@app.route('/webhook', methods=['POST'])
def webhook():
    data = request.json
    # simple validation: check data presence (use HMAC in production)
    if not data:
        return jsonify({"error":"no data"}),400

    symbol = data.get("symbol")
    action = data.get("action")
    qty = data.get("qty", 0.001)

    try:
        if action == "LONG":
            order = exchange.create_market_buy_order(symbol, qty)
        elif action == "SHORT":
            order = exchange.create_market_sell_order(symbol, qty)
        else:
            return jsonify({"error":"unknown action"}),400
        return jsonify(order)
    except Exception as e:
        return jsonify({"error":str(e)}),500

 

Teil 4 – Sichere Serverbereitstellung (Linux/Docker/systemd)

Empfehlung: Verwenden Sie Docker Compose mit nginx als Reverse-Proxy und certbot für TLS.

docker-compose.yml Beispiel

version: '3.8'
services:
  app:
    build: .
    restart: always
    environment:
      - EXCHANGE_API_KEY
      - EXCHANGE_API_SECRET
  nginx:
    image: nginx:stable
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./certs:/etc/letsencrypt
    ports:
      - "80:80"
      - "443:443"

Beispiel einer systemd-Unit, die ohne Docker ausgeführt werden kann

[Unit]
Description=Trading Webhook Bot
After=network.target

[Service]
User=trade
WorkingDirectory=/home/trade/app
Environment=EXCHANGE_API_KEY=your_key_here
Environment=EXCHANGE_API_SECRET=your_secret_here
ExecStart=/home/trade/venv/bin/gunicorn -w 4 -b 127.0.0.1:5000 app:app
Restart=always

[Install]
WantedBy=multi-user.target

Beispielhafte administrative Befehle:

sudo systemctl daemon-reload
sudo systemctl enable --now tradebot.service
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp

 

Abschnitt 5 – Sicherheits- und Stabilitätstipps

  • Sichere Speicherung des API-Schlüssels: Aus der Umgebungsvariablen, Datei mit chmod 600 Oder verwenden Sie Secret Manager.
  • TLS: Verwenden Sie ein gültiges Zertifikat (certbot + nginx) für HTTPS.
  • Nachrichtenbestätigung: Verwenden Sie HMAC-SHA256, um eingehende TradingView-Nachrichten zu verifizieren.
  • Einschränkungen und Wiederholungsversuche: Implementieren Sie Ratenbegrenzungs- und Wiederholungs-/Backoff-Algorithmen.
  • Überwachung und Protokollierung: Verwenden Sie Prometheus + Grafana oder ELK, um den Gesundheitszustand und die Reaktionszeiten zu überwachen.
  • Schutz vor Angriffen: Nutzen Sie Fail2Ban, iptables und Anti-DDoS- oder CDN-Dienste für öffentliche Endpunkte.

 

Abschnitt 6 – Backtesting, Optimierung und Forward-Testing

  • Backtest: Aus Funktionen Strategie.* Verwenden Sie Pine für historische Analysen, aber beachten Sie die parametrischen Einschränkungen von Pine.
  • Optimierung: Testen Sie die Parameter manuell oder mithilfe externer Skripte (z. B. durch Generieren mehrerer Diagramme mit unterschiedlichen Parametern).
  • Vorwärtstest: Testen Sie nach dem Backtesting immer auf einem Demokonto oder mit einem geringen Datenvolumen auf einem VPS mit niedriger Latenz.
  • Schlupf- und Latenzmessung: Erfassen und analysieren Sie den Zeitpunkt des Empfangs des Webhooks und den Zeitpunkt der Auftragsausführung an der Börse.

 

Abschnitt 7 – Vergleich von Rechenzentrumsstandorten für den Handel

Die Standortwahl für Rechenzentren kann bei Hochfrequenzstrategien über den Erfolg jeder Millisekunde entscheiden. Sie sollte auf Exchanges und BGP-Routen basieren.

  • Europa (Frankfurt, Amsterdam): Geeignet für europäische Börsen und einige Liquiditätsfonds.
  • Östliche USA (New York, NJ): Geeignet für Coinbase und verwandte Märkte in New York.
  • Asien (Singapur, Tokio, Hongkong): Geeignet für Binance Asia, OKX und asiatische Märkte.

Wenn Sie hauptsächlich auf Binance oder asiatischen Börsen handeln, ist ein VPS in Singapur oder Tokio besser geeignet; für US-Börsen ist ein Standort in New York/New Jersey besser geeignet.

 

Abschnitt 8 – Empfohlene Serverkonfigurationen für den Handel

VPS für Trading (niedrige Latenz)

  • CPU: 2-4 hochfrequente vCPUs
  • Arbeitsspeicher: 4-8 GB
  • Speicher: NVMe SSD 50-100 GB
  • Netzwerk: geringe Latenz/1 Gbit/s, BGP/Anycast falls erforderlich

Server für rechenintensive Aufgaben/Backtesting

  • CPU: 8+ vCPUs
  • Arbeitsspeicher: 32+ GB
  • Speicher: NVMe 1 TB
  • GPU: Falls ML/KI zur Verarbeitung von Modellen benötigt wird

Nutzen Sie außerdem Sicherheitsfunktionen wie Anti-DDoS, Private Networking und Firewall-Management, um die Stabilität und Sicherheit des Dienstes zu erhöhen.

 

Abschnitt 9 – Praktische Tipps zur Risikominderung bei der Handelsautomatisierung

  • Stop-Loss und maximales Exposure: Legen Sie für jede Order einen Stop-Loss und einen maximalen Expositionsbetrag fest.
  • API-Kontostatus: Prüfen Sie die Einschränkungen und den KYC-Status.
  • Schutzschalter: Stoppen Sie den Bot, wenn die Anzahl der Fehler oder die Latenzzeit deutlich ansteigt.
  • Gesundheitsüberwachung: Überwachen Sie Verfügbarkeit, Latenz und Füllstand und richten Sie Benachrichtigungen für das Support-Team ein.

 

Abschluss

Dieser Leitfaden behandelt die wichtigsten Schritte vom Schreiben von Indikatoren und Strategien in Pine Script (Version 5), über das Erstellen von Webhook-Alarmen in TradingView und das Einrichten eines sicheren Webhook-Servers mit Flask/ccxt bis hin zu wichtigen Sicherheitsüberlegungen, der Wahl eines Rechenzentrumsstandorts und empfohlenen Serverkonfigurationen.

Wenn Sie Infrastrukturlösungen wie VPS mit niedriger Latenz, Anti-DDoS-Server oder Grafikserverdienste für rechenintensive Anwendungen benötigen, bietet Ihnen unser Unternehmen diese Einrichtungen an über 85 Standorten weltweit und kann Ihre Infrastruktur einrichten und optimieren.

 

Häufig gestellte Fragen

Das könnte Ihnen auch gefallen