De alertas Pine a órdenes reales en Binance — domina los 3 enfoques principales, configuración completa y control de riesgos para operar 24/7.
TradingView es la mayor comunidad mundial de gráficos y estrategias. Cuando escribes un Pine script y quieres que opere automáticamente en Binance, Webhook es el puente — TradingView hace POST de un JSON a una URL al disparar la alerta, y un servidor lo recibe y llama a la API de Binance para comprar o vender.
Flujo: alerta TradingView → URL Webhook (servidor propio o terceros) → API Binance → orden real.
Pros: lógica de estrategia visual, ecosistema Pine rico. Contras: hay que manejar firma, riesgo y reconexión, o pagar plataforma lista.
| Enfoque | Dificultad | Costo | Latencia | Ideal para |
|---|---|---|---|---|
| Puente VPS propio | Medio-Alto | $5-10/mo | 500ms-1.5s | Quien sabe código y quiere control |
| Plataforma terceros (3Commas etc.) | Bajo | $15-50/mo | 800ms-2s | Quien quiere cero mantenimiento |
| API Binance + script local | Bajo | Electricidad | Depende de red local | PC siempre encendido |
Servicio pequeño en VPS (Node/Python/Go), URL pública, firma y llama API Binance al recibir. Máxima flexibilidad y lógica personalizada.
3Commas, Cryptohopper, Wundertrading, Aleeert.com. Te dan URL Webhook lista, conectas tu API y listo. Fácil pero suscripción mensual y riesgo de plataforma.
El cliente desktop ejecuta scripts externos, Python local llama a Binance. Sin mensualidad pero PC siempre encendido.
Estrategia mínima EMA crossover en Pine v5, usando alert_message para enviar JSON:
//@version=5
strategy("EMA Cross Webhook", overlay=true)
fast = ta.ema(close, 12)
slow = ta.ema(close, 26)
longCond = ta.crossover(fast, slow)
shortCond = ta.crossunder(fast, slow)
if longCond
strategy.entry("L", strategy.long, alert_message='{"passphrase":"YOUR_SECRET","action":"buy","symbol":"BTCUSDT","qty":0.01,"type":"MARKET"}')
if shortCond
strategy.close("L", alert_message='{"passphrase":"YOUR_SECRET","action":"close","symbol":"BTCUSDT"}')
Puntos clave:
alert_message debe ser JSON válidopassphrase es secreto compartido contra adivinos de URL{{strategy.order.alert_message}} en Messagehttps://your-vps.com/tv-webhookDigitalOcean/Vultr/Hetzner $5/mes 1 vCPU 1G basta. Tokio o Singapur tienen menor latencia a Binance.
TradingView solo POST a HTTPS. Usa Cloudflare SSL gratis o Caddy/Nginx + Let's Encrypt.
Express (Node) o FastAPI (Python) con endpoint POST, valida passphrase y llama a Binance.
Usa pm2 o systemd para auto-reinicio tras caída, escribe logs a archivo.
Gestión API → crear key → activa solo spot/margen o futuros, NO retiros, IP de VPS en lista blanca.
Click derecho gráfico → Añadir alerta → URL Webhook = https://your-vps.com/tv-webhook, Message = {{strategy.order.alert_message}}.
50-100 USDT en BTC spot 3-5 días. Verifica cada señal antes de escalar.
import express from 'express';
import crypto from 'crypto';
import axios from 'axios';
const app = express();
app.use(express.json());
const KEY = process.env.BN_KEY;
const SECRET = process.env.BN_SECRET;
const PASSPHRASE = process.env.PASSPHRASE;
const BASE = 'https://fapi.binance.com';
function sign(query){
return crypto.createHmac('sha256', SECRET).update(query).digest('hex');
}
app.post('/tv-webhook', async (req, res) => {
const { passphrase, symbol, action, qty, type='MARKET' } = req.body;
if (passphrase !== PASSPHRASE) return res.status(401).send('bad passphrase');
const side = action === 'buy' ? 'BUY' : 'SELL';
const ts = Date.now();
const query = `symbol=${symbol}&side=${side}&type=${type}&quantity=${qty}×tamp=${ts}`;
const url = `${BASE}/fapi/v1/order?${query}&signature=${sign(query)}`;
try{
const r = await axios.post(url, null, { headers:{'X-MBX-APIKEY':KEY}});
res.json(r.data);
}catch(e){
console.error(e.response?.data || e.message);
res.status(500).send('order failed');
}
});
app.listen(3000, () => console.log('listening 3000'));
/fapi/v2/account, pausa si drawdown excede umbralbookTicker antes de market, aborta si spread amplioapt install ntpRegístrate en Binance con código BNAPP para reembolso vitalicio — el alta frecuencia ahorra más.
Regístrate con el código BNAPP y recibe descuento de por vida