MagicTradeBot TradingView-Integrationsleitfaden (Vollständige Einrichtung mit NATS & Webhooks)

1. Überblick

MagicTradeBot kann Handelssignale direkt von TradingView-Indikatoren, Strategien und Pine Script-Alerts empfangen. Sobald ein Signal eingeht, durchläuft es dieselbe Ausführungs-Engine wie interne Bot-Signale — Order-Erstellung, DCA, intelligente Entscheidungen und Broadcast-Benachrichtigungen funktionieren alle identisch.

Drei Komponenten arbeiten zusammen:

  • 🔗 tv-signal-bridge — eigenständiger Axum-Dienst, der TradingView-Webhooks empfängt, das Geheimnis validiert, das Symbol normalisiert und an NATS veröffentlicht
  • 📡 NATS JetStream — leichtgewichtiger Message-Broker, der in Docker läuft und Signale mit "At-Least-Once"-Zustellung von der Brücke zum Bot überträgt
  • 🤖 MagicTradeBot-Signal-Listener — abonniert NATS, dedupliziert Signale, führt Gatekeeper-Prüfungen durch und ruft dann sync_bot_scan_result auf
INFO
Externe TV-Signale sind vollwertige Signale. Sobald der Signalschlüssel in signal_registry.yaml registriert ist, behandelt der Bot ihn identisch zu TOP_GAINER_LONG_SIGNAL oder jedem anderen internen Signal.

2. Format des Signalschlüssels

Jedes TradingView-Signal erzeugt einen Schlüssel in diesem Format:

TV_{STRATEGIE}_{SEITE}_EXTERNAL_SIGNAL

Einstellung Resultierender Signalschlüssel
Strategie: EMA_CROSS, Seite: long TV_EMA_CROSS_LONG_EXTERNAL_SIGNAL
Strategie: RSI_DIV, Seite: short TV_RSI_DIV_SHORT_EXTERNAL_SIGNAL
Strategie: SUPERTREND, Seite: long TV_SUPERTREND_LONG_EXTERNAL_SIGNAL

3. Voraussetzungen

  • MagicTradeBot installiert und betriebsbereit
  • tv-signal-bridge Binary erstellt und verfügbar
  • Docker Desktop installiert und ausgeführt (für NATS)
  • TradingView kostenpflichtiger Tarif — Essential oder höher
  • Eine öffentliche URL oder IP, damit TradingView die Brücke erreichen kann

4. Einrichtung

4.1 NATS über Docker starten

docker run -d \
  --name nats \
  --restart unless-stopped \
  -p 4222:4222 \
  -p 8222:8222 \
  nats:latest -js

4.2 tv-signal-bridge konfigurieren

Bearbeiten Sie config/config.toml:

[bridge]
bot_name    = "MagicTradeBot-1"
hmac_secret = "ihr-langes-geheimnis-hier"

[stream]
backend  = "nats"
nats_url = "nats://127.0.0.1:4222"
subject  = "trade.signals"

[symbols.mappings]
"BTCUSDT" = "BTC/USDT"
"ETHUSDT" = "ETH/USDT"

4.3 tv-signal-bridge starten

# Windows
./tv-signal-bridge-win.exe

# Linux / macOS
./tv-signal-bridge-linux

4.4 Signalschlüssel in signal_registry.yaml registrieren

register_trading_signals:
  - "TV_EMA_CROSS_LONG_EXTERNAL_SIGNAL"

register_broadcast_signals:
  - "TV_EMA_CROSS_LONG_EXTERNAL_SIGNAL"

4.5 TV-Signale in MagicTradeBot aktivieren

Bearbeiten Sie settings/tradingview.yaml:

enabled: true
bot_name: "MagicTradeBot-1"
stream_backend: "nats"
nats_url: "nats://127.0.0.1:4222"
subject: "trade.signals"

5. TradingView Alert-Einrichtung

Webhook-URL:

https://ihr-server.com:8090/webhook/tradingview

Nachricht (JSON):

{
  "secret":     "ihr-langes-geheimnis-hier",
  "symbol":     "{{ticker}}",
  "side":       "long",
  "strategy":   "EMA_CROSS",
  "confidence": 80.0,
  "timestamp":  {{timenow}}
}

6. Testen ohne TradingView

PowerShell-Test (Windows)

$timestamp = [int]([DateTimeOffset]::UtcNow.ToUnixTimeSeconds())

$body = @{
    secret     = "ihr-langes-geheimnis-hier"
    symbol     = "BTCUSDT"
    side       = "long"
    strategy   = "EMA_CROSS"
    confidence = 85.0
    timestamp  = $timestamp
} | ConvertTo-Json

Invoke-RestMethod -Uri "http://localhost:8090/webhook/tradingview" `
  -Method POST -Body $body -ContentType "application/json"

7. Überprüfung der gesamten Kette

Prüfen Sie Brücken-Logs → Bot-Logs → Discord/Telegram-Benachrichtigung → Datenbank-Handelseintrag.

8. Konfigurationsreferenz

9. Fehlerbehebung

Symptom Lösung
Brücke gibt 401 INVALID_SECRET zurück Geheimnis stimmt nicht überein — exakt kopieren
Signal kommt an der Brücke an, aber nicht beim Bot Prüfen Sie enabled: true und starten Sie den Bot neu
'bot_name mismatch' bot_name muss in beiden Konfigurationsdateien identisch sein

10. Checkliste für den Schnelleinstieg

  • Docker Desktop wird ausgeführt
  • NATS-Container mit -js gestartet
  • Brücke läuft auf Port 8090
  • Signalschlüssel in signal_registry.yaml registriert
  • tradingview.yaml aktiviert mit übereinstimmendem bot_name
  • Mit curl / PowerShell getestet
  • Benachrichtigung und Handel erfolgreich erstellt

📎 Related Topics