When to pick this recipe
You have an existing TradingView strategy
You prefer Pine Script over the SignalEditor canvas
You want to leverage external charting
You're integrating signals from a third party
When NOT to pick this recipe
Prerequisites
TradingView Pro+ subscription
SignalsBot deployed and reachable
signals.yourdomain.com).Webhook secret set
TRADINGVIEW_WEBHOOK_SECRET environment variable on the SignalsBot. Generate with openssl rand -hex 32.Setup steps
Author your TradingView strategy
Configure the alert condition
30.Set the webhook URL
Set the alert message body
<your-shared-secret> with the value you generated. TradingView allows variable substitution ({{ticker}}, {{close}}, etc.) — you can use these to make the message dynamic.Build the mirror exit alert
canBuy: false. This brackets the buying windows.Test with a manual trigger
- SignalsBot’s audit log shows the accepted webhook.
- Dashboard’s mode panel shows
canBuyflipped accordingly.
Forward-test on small capital
$1,500–$3,000 to the mode. Run for 2–4 weeks observing the alerts firing and the bot’s response. Compare against TradingView’s signal log to confirm no missed alerts.TradingView webhook reliability
Latency
Latency
1–10 seconds of the alert firing. Acceptable for most timeframe-driven strategies.Don’t use this for high-frequency scalping where seconds matter. The latency floor is too high.Delivery guarantees
Delivery guarantees
Source IP authentication
Source IP authentication
Pine Script alert variables
Pine Script alert variables
{{ticker}}, {{close}}, {{strategy.position_size}}, etc. Use these to include dynamic data in your webhook payload.Example: "price": {{close}} includes the closing price at alert time.Common mistakes
❌ Forgetting 'Once Per Bar Close' in alert settings
❌ Forgetting 'Once Per Bar Close' in alert settings
❌ Not building the exit alert
❌ Not building the exit alert
❌ Trusting third-party TradingView signals without audit
❌ Trusting third-party TradingView signals without audit
❌ Skipping the SignalsBot's TLS proxy
❌ Skipping the SignalsBot's TLS proxy