1. Panoramica
MagicTradeBot può ricevere segnali di trading direttamente da indicatori TradingView, strategie e alert Pine Script. Una volta che un segnale arriva, passa attraverso lo stesso motore di esecuzione dei segnali interni del bot — piazzamento ordini, DCA, decisioni intelligenti e notifiche broadcast funzionano tutti in modo identico.
Tre componenti lavorano insieme:
- 🔗 tv-signal-bridge — servizio Axum autonomo che riceve i webhook di TradingView, valida il segreto, normalizza il simbolo e pubblica su NATS
- 📡 NATS JetStream — broker di messaggi leggero in esecuzione in Docker che trasporta i segnali dal bridge al bot con consegna at-least-once
- 🤖 Listener segnali MagicTradeBot — si sottoscrive a NATS, deduplica, esegue i controlli gatekeeper, quindi chiama
sync_bot_scan_result
INFO
I segnali TV esterni sono cittadini di prima classe. Una volta che la chiave del segnale è registrata in
I segnali TV esterni sono cittadini di prima classe. Una volta che la chiave del segnale è registrata in
signal_registry.yaml,
il bot la tratta in modo identico a TOP_GAINER_LONG_SIGNAL o qualsiasi altro segnale interno.
2. Formato della Chiave Segnale
Ogni segnale TradingView produce una chiave in questo formato:
TV_{STRATEGIA}_{LATO}_EXTERNAL_SIGNAL
| Impostazione | Chiave Segnale Risultante |
|---|---|
| strategia: EMA_CROSS lato: long | TV_EMA_CROSS_LONG_EXTERNAL_SIGNAL |
| strategia: RSI_DIV lato: short | TV_RSI_DIV_SHORT_EXTERNAL_SIGNAL |
| strategia: SUPERTREND lato: long | TV_SUPERTREND_LONG_EXTERNAL_SIGNAL |
3. Prerequisiti
- MagicTradeBot installato e in esecuzione
- Binario tv-signal-bridge compilato e disponibile
- Docker Desktop installato e in esecuzione (per NATS)
- Piano a pagamento TradingView — Essential o superiore
- Un URL pubblico o IP affinché TradingView possa raggiungere il bridge
4. Configurazione
4.1 Avviare NATS tramite Docker
docker run -d \ --name nats \ --restart unless-stopped \ -p 4222:4222 \ -p 8222:8222 \ nats:latest -js
4.2 Configurare tv-signal-bridge
Modificare config/config.toml:
[bridge] bot_name = "MagicTradeBot-1" hmac_secret = "il-tuo-lungo-segreto-qui" [stream] backend = "nats" nats_url = "nats://127.0.0.1:4222" subject = "trade.signals" [symbols.mappings] "BTCUSDT" = "BTC/USDT" "ETHUSDT" = "ETH/USDT"
4.3 Avviare tv-signal-bridge
# Windows ./tv-signal-bridge-win.exe # Linux / macOS ./tv-signal-bridge-linux
4.4 Registrare le chiavi segnale in signal_registry.yaml
register_trading_signals: - "TV_EMA_CROSS_LONG_EXTERNAL_SIGNAL" register_broadcast_signals: - "TV_EMA_CROSS_LONG_EXTERNAL_SIGNAL"
4.5 Abilitare i segnali TV in MagicTradeBot
Modificare settings/tradingview.yaml:
enabled: true bot_name: "MagicTradeBot-1" stream_backend: "nats" nats_url: "nats://127.0.0.1:4222" subject: "trade.signals"
5. Configurazione Alert TradingView
URL Webhook:
https://il-tuo-server.com:8090/webhook/tradingview
Messaggio (JSON):
{
"secret": "il-tuo-lungo-segreto-qui",
"symbol": "{{ticker}}",
"side": "long",
"strategy": "EMA_CROSS",
"confidence": 80.0,
"timestamp": {{timenow}}
}
6. Test senza TradingView
Test PowerShell (Windows)
$timestamp = [int]([DateTimeOffset]::UtcNow.ToUnixTimeSeconds())
$body = @{
secret = "il-tuo-lungo-segreto-qui"
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. Verifica della Catena Completa
Controllare i log del bridge → log del bot → notifica Discord/Telegram → record dell'operazione nel database.
8. Riferimento Configurazione
9. Risoluzione dei Problemi
| Sintomo | Soluzione |
|---|---|
| Il bridge restituisce 401 INVALID_SECRET | Il segreto non corrisponde — copiare esattamente |
| Il segnale arriva al bridge ma non al bot | Controllare enabled: true e riavviare il bot |
| 'bot_name mismatch' | bot_name deve essere identico in entrambi i file di configurazione |
10. Checklist di Riferimento Rapido
- Docker Desktop in esecuzione
- Container NATS avviato con -js
- Bridge in esecuzione sulla porta 8090
- Chiavi segnale registrate in signal_registry.yaml
- tradingview.yaml abilitato con bot_name corrispondente
- Testato con curl / PowerShell
- Notifica e operazione create con successo