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_resultauf
INFO
Externe TV-Signale sind vollwertige Signale. Sobald der Signalschlüssel in
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