Tool Comparison

Trading Bots: Open Source, Subscription, Exchange

2026-11-03·8 min read

If you want AI-generated Pine Script to run automatically on TradingView, the first step is finding a bot that can accept webhooks (a mechanism for servers to receive external notifications). There are three main types: self-hosted open source, monthly subscription services, and exchange-built solutions. Prices range from zero to dozens of dollars per month, but the key difference isn't about features—it's about which layer requires your hands-on effort. No matter which option you choose, they all share one core concept: API Key (an application credential that lets a bot place orders on your behalf at an exchange).

This article doesn't evaluate which approach is better—we haven't tested any of these, and this piece won't either. Instead, we give you three things: where each bot type intervenes in the flow (Alert→Webhook→Order), which layer of risk you bear for each approach, and which signal in the open source option you can actually test without fully trusting vendor claims.

What Does TradingView's alert() Actually Send?

Pine Script has two functions that trigger alert events: alert() and alertcondition(). Neither sends webhooks directly—they only create trigger events on TradingView's servers, and then you set a Webhook URL in the Create Alert dialog for TradingView to actually send the signal.

The full signature of alert() is alert(message, freq), with just two parameters. message is the text sent when triggered, supporting placeholders like {{ticker}} and {{close}}; freq is an optional frequency control, defaulting to alert.freq_once_per_bar (only one trigger per real-time bar). There is no url parameter and no title parameter.

//@version=6
        indicator("My Alert", overlay=true)
        cross = ta.crossover(close, ta.sma(close, 14))
        if cross
            alert("Price " + str.tostring(close) +
                  " crossed MA. Symbol: {{ticker}}",
                  alert.freq_once_per_bar)
        plot(ta.sma(close, 14))

An earlier version incorrectly wrote alert() as accepting "only a URL and a title parameter"—that URL doesn't exist in Pine Script at all; it lives in the Webhook URL field of the Create Alert dialog. The title parameter also doesn't exist; only alertcondition() has an optional title (used in the Condition dropdown of the dialog). This is a fundamental documentation gap that directly affects whether readers' alerts trigger correctly.

Don't confuse alert() and alertcondition(). The former accepts dynamic messages (series string), while the latter's message can only be a compile-time constant. Both can include {{ticker}}, {{close}} and other placeholders, but alertcondition()'s message can't be changed after the dialog is created—unless you go back to the code.

Open Source Bots: Who Should Self-Host and Who Shouldn't?

Open source bots typically exist as GitHub projects.

Their architecture is largely the same: receive a TradingView webhook → parse the payload → validate the API Key → place an order at the exchange. The advantage is high transparency, since you can see every line of code.

$0–30/month
Hardware cost
Know Docker + Python
Technical barrier
All on you
Maintenance responsibility
Your own server
API Key storage
But transparency doesn't equal security.

You have to handle: database connections, encrypted API Key storage, server operations, retry logic when webhooks get truncated, and API version compatibility after exchanges upgrade. Exchanges occasionally rename fields or adjust formats, and open source projects usually lag behind until the author updates—if your strategy isn't on the supported list of a popular project, you may need to modify the code yourself.

If you choose an open source option, verify at least these three things: 1) Are API Keys stored encrypted (not in plain text in .env)? 2) Does retry logic use backoff (not unlimited retries)? 3) Is the GitHub commit history active (at least quarterly updates)?

Subscription Bots: What Are You Actually Buying?

Pay monthly or annually, and get "someone else to set everything up." They typically provide a dashboard where you can see whether webhooks arrived and order success/failure records. The advantage is zero maintenance; the downside is you don't know what happens behind the platform's scenes.

PlanCostWebhook featureExchange support
TVSBot (single plan)
PineConnector (common in crypto)

Snapshot as of October 2026. TVSBot pricing from official pricing page: quarterly $99 (avg $33/month), annual $300 (avg $25/month). All features included in one plan with no tiers. PineConnector pricing fluctuates with crypto market conditions, for reference only.

The dashboard UI, webhook payload parsing logic, and supported account modes of subscription bots are not mentioned in TradingView's official documentation—they are third-party extensions. What you're buying is the peace of mind that "someone handles these details."

  • Where are your API Keys stored? The platform's own servers or your local encrypted key manager?
  • When an order fails, does the platform retry? How many times? What's the backoff interval?
  • If the platform shuts down, can your strategy still run? Can you export your data?

What Are the Limits of Exchange-Built Solutions?

Some exchanges (like Binance and OKX) offer basic permission settings on their API Key pages, but they don't provide webhook monitoring, order history queries, or detailed reasons for "why this order was rejected." It's the simplest option—precisely because it has almost nothing.

If you trade directly from an exchange API Key page, you lose more than just debugging info: you won't know whether the order actually reached the exchange, why it failed, or whether there's any retry mechanism. For automated trading scenarios, that means you're bearing all the risk yourself.

1
Can you code and handle operations?
Yes →Open source option
No →Ask about budget
2
What's your budget range?
Willing to pay for convenience →Subscription
Budget is tight →Exchange-built

When Disconnected: Do Open Orders Cancel While Positions Stay Put?

Binance, OKX, Bybit, and Bitget's automatic disconnection cancellation mechanisms are all strictly limited to cancelling "open orders"—none of them mention positions. This means if your exchange crashes or your WebSocket disconnects, those already-filled positions won't be automatically closed.

We checked Bybit's Disconnect Cancel All (DCP) documentation—it explicitly states it only targets open orders. Binance's Kill-Switch works the same way. Bitget's CountDown Cancel All covers the same scope. Not a single official document directly states automatic position closing.

This is one of the most overlooked risks in automated trading: you assume the bot will protect you when disconnected, but it only cancels unfilled orders—it doesn't touch filled positions. If your strategy relies on automatic stop-losses, floating losses during disconnection can far exceed expectations.

Does TradingView Have an SLA?

TradingView has never published any SLA for missed alerts during its own outages. The official terms (Section 6) contain no uptime guarantee; Section 2 states TradingView can suspend service at any time without prior notice. TradingView's own webhook specification explicitly notes: if the receiving end doesn't respond within 3 seconds, the request is cancelled with no retry; after 15 attempts in 3 minutes, the alert is automatically disabled—these are specifications, not SLAs.

No automated trading architecture can guarantee 100% delivery—not even ours.

Risk Checklist: Questions to Ask Before Publishing

This article doesn't evaluate which approach is better. But it gives you a framework to ask yourself these questions before choosing:

  • Do you have the technical skills to maintain daily operations of an open source bot?
  • How much are you willing to pay for convenience? Monthly fees range from zero to dozens of dollars across different plans—the difference isn't just feature count, it's the security model of API Key custody.
  • If this platform shuts down tomorrow, can your strategy still run?
  • When an order fails, how quickly will you notice? Rely on dashboard notifications, or wait until the money is gone?

Common Questions About Webhook Bots

These questions come from the most frequently asked queries in the community and by customers over the past six months. We only answer what we can back with evidence—if we can't verify it, we won't pretend to know.

If your situation isn't covered below, you can also contact TVSBot support through the dashboard or ask in the Telegram community.

Open orders: If the exchange goes down, will my positions be automatically closed?
Not a single official document directly states yes or no. But we checked Binance, OKX, Bybit, and Bitget's automatic disconnection cancellation mechanisms—all are strictly limited to cancelling open orders, with none mentioning positions.
What if my API Key is compromised?
Revoke and regenerate it immediately on the exchange page. Subscription bot platforms with managed key custody have a one-click revoke feature, but open source solutions require you to handle it yourself.
What if the webhook won't send?
Check: 1) Whether the exchange supports TradingView webhooks; 2) Whether your API Key has sufficient permissions (read-only usually can't place orders); 3) Whether there's an IP whitelist restriction; 4) Whether it's blocked by a firewall.
How do I ensure open source bot security?
Check the GitHub commit history, look for active maintainers, and confirm whether the project provides security audit reports. But don't fully trust—test it yourself too.
Which should I use: `alert()` or `alertcondition()`?
`alert()` supports dynamic messages (can produce different content based on current price), while `alertcondition()`'s message can only be a compile-time constant. If you want to pass {{ticker}}, {{close}} and other K-bar-changing values, you must use `alert()`.

Get started

Ready to ship what you just learned?

Bring your AI-generated Pine Script here—let TVSBot handle the webhook-to-exchange path using your own API key, dry-run first, and set your own risk controls.

Start for free