TradingView Webhook Formats for MT5: Switch Without Changing Your Alerts
The number one reason traders never leave an overpriced bridge is a single fear: “Do I have to rewrite all my TradingView alerts?” With SignalForge, the answer is no. The webhook understands the most common formats on the market and maps them to its own fields automatically, so in most cases you point your alert at a new URL and paste the exact same message you were already using.
This guide shows the formats SignalForge reads out of the box, how the fields map, and how to send a minimalist BUY / SELL alert.
Paste your existing alert — it just works
SignalForge accepts its own native JSON, but it also reads the webhook syntax used by the most popular bridges and indicators. Here is the exact message you can paste, depending on where you are coming from:
| Coming from | Paste this exact alert |
|---|---|
| SignalForge (native) | {"action":"buy","symbol":"EURUSD","lot":0.1,"sl":50,"tp":100} |
| PineConnector (CSV) | 60123456789,buy,EURUSD,vol_lots=0.1,sl_pips=50,tp_pips=100 |
| TradersPost (JSON) | {"ticker":"EURUSD","action":"buy","stopLoss":{"amount":"10"},"takeProfit":{"amount":"20"}} |
| AlgoWay (JSON) | {"platform_name":"metatrader5","ticker":"EURUSD","order_action":"buy","order_contracts":0.10} |
| SignalStack / generic | {"symbol":"EURUSD","action":"buy","quantity":1} |
| Plain compact text | buy EURUSD lot=0.1 sl=1.0800 tp=1.1000 |
The only thing you change is the destination URL of your alert — your https://api.signalforge-ai.com/wh/YOUR_TOKEN webhook. The message body stays the same.
How the fields map
Different platforms use different names for the same idea. SignalForge normalizes them automatically:
ticker→symbolorder_action/signal/side→actionstop_loss/sl_pips/sl_price→sltake_profit/tp_pips/tp_price→tpexit/flat/closeall/closelong/closeshort→closelong/short→buy/sell
Safety first: volume is only mapped when it is unambiguous. vol_lots and AlgoWay’s order_contracts on MetaTrader 5 are read as lots, but risk-based sizing (vol_dollar, vol_pct) and contract counts from non-MT5 platforms (quantity) are deliberately ignored — otherwise a “1” meant as one contract could open a position 100× too large. When no clear lot size is sent, the EA uses your configured default or risk sizing.
Minimalist alerts: just “buy” or “sell”
Some traders want the simplest possible alert: a single word. SignalForge supports that in two ways.
1. The {{ticker}} placeholder. TradingView replaces it with the chart symbol before sending, so one template works on every chart:
buy {{ticker}}
2. A default symbol. Set a default symbol in your dashboard (Setup) and an alert that contains only buy or sell — with no symbol at all — opens a trade on that symbol. If no default is configured, a symbol-less alert is safely rejected so a typo never trades the wrong instrument.
What is covered (and what is not)
Being honest about scope saves you a support ticket later. Market entries and closes are fully supported across all the formats above. Not yet supported: pending orders (buy/sell limit and stop), position reversals, and directional partial closes. Those commands are rejected with a clear message rather than executed incorrectly.
Migrating in three steps
1. Create your SignalForge account and copy your webhook URL. 2. In each TradingView alert, replace only the webhook URL — leave the message untouched. 3. Send one test alert and confirm it appears in your dashboard and fills within 1–2 seconds.
Keep your alerts. Change your bill.
If migration friction is the only thing keeping you on a $39/month bridge, that excuse is gone. Paste your existing PineConnector, TradersPost or AlgoWay alert into SignalForge and start trading on MetaTrader 5 from $4.99/month. Free for 14 days, no credit card on Starter.
Start free trial →Disclosure: SignalForge AI is our product. Format names belong to their respective owners and are referenced for compatibility only. Supported syntax and scope are accurate as of May 2026; verify current behavior in our docs.