SignalForge Docs.
Everything you need to connect TradingView to MetaTrader 5 and start automating your trades. This guide covers the Starter Plan — the fastest way to get started for just $4.99/mo.
✓Requirements
Before you start, make sure you have the following:
| Item | Required | Notes |
|---|---|---|
| MetaTrader 5 | Yes | Free download from your broker |
| MT5 broker account | Yes | Demo or live · any broker works |
| TradingView account | Yes | Paid plan for webhook alerts ($12.95/mo+) |
| SignalForge subscription | Yes | Starter — $4.99/mo |
| VPS | Optional | Required only for 24/7 trading |
| Coding knowledge | No | Copy-paste only |
1Create your account1 min
Go to signalforge-ai.com and choose the Starter Plan ($4.99/mo). Click the subscribe button and complete the Stripe checkout.
You'll receive an email with:
- Your personal webhook token
- The download link for the Expert Advisor file
- The webhook URL to use in TradingView
Check your inbox (and spam folder). The email arrives within 30 seconds of checkout. If it doesn't, email [email protected] — I read every message myself.
Once subscribed, you can upgrade, downgrade or cancel anytime from dashboard.signalforge-ai.com — billing, payment method and plan changes are all handled there.
2Your webhook token30s
Your webhook token looks something like this:
1a2b3c4d5e6f7890abcdef1234567890
This token is what links your TradingView alerts to your MetaTrader 5 EA. Keep it private — anyone with this token can send signals to your account.
Your full webhook URL combines the SignalForge server with your token:
https://api.signalforge-ai.com/wh/YOUR_TOKEN
Never share your webhook URL or token publicly. If you suspect it's leaked, regenerate it from your dashboard. The old token will stop working immediately.
3Install the Expert Advisor90s
3.1 Download the EA
Download the SignalForgeEA_Starter.ex5 file from the link in your welcome email.
3.2 Open the Experts folder
In MetaTrader 5, go to File → Open Data Folder. Navigate to MQL5 → Experts. This is where MT5 stores Expert Advisors.
3.3 Copy the EA file
Copy SignalForgeEA_Starter.ex5 into the Experts folder.
3.4 Attach to a chart
Back in MetaTrader 5:
- Open any chart (any symbol — the EA can trade any pair)
- Open the Navigator panel (Ctrl+N) and find SignalForgeEA_Starter under Expert Advisors
- Drag it onto the chart — a properties window opens
- Configure the inputs (see Step 4.4 below) and click OK
4Configure MetaTrader 560s
4.1 Allow algo trading
Go to Tools → Options → Expert Advisors tab. Enable:
- Allow algorithmic trading
- Allow WebRequest for listed URL
4.2 Add the WebRequest URL
In the same dialog, click Add (or double-click the empty field) and paste:
https://api.signalforge-ai.com
4.3 Enable AutoTrading
In the MT5 toolbar, click the AutoTrading button so it turns green. If it's red, the EA shows "AUTOTRADING OFF" and won't execute trades.
4.4 Enter your token
When attaching the EA to the chart, a properties window appears. Go to the Inputs tab and paste your webhook token into the WebhookToken field. Click OK.
If the EA shows a sad face icon (☹) on the chart corner, AutoTrading isn't enabled. Click the toolbar button to fix it.
5Create a TradingView alert90s
5.1 Open the alert dialog
In TradingView, open any chart. Click the Alert button (clock icon) or press Alt+A.
5.2 Set the condition
Choose your indicator or strategy condition. For a quick test, you can use a simple crossing condition (e.g., EMA 9 crossing EMA 21).
5.3 Enable webhook
In the Notifications tab, check "Webhook URL" and paste your full webhook URL:
https://api.signalforge-ai.com/wh/YOUR_TOKEN
5.4 Write the alert message
In the Message field, paste the JSON payload. For a simple BUY:
{
"action": "buy",
"symbol": "EURUSD",
"lot": 0.01,
"sl": 50,
"tp": 100
}
5.5 Save the alert
Click Create. The alert is now active. When it triggers, TradingView sends the JSON to your webhook URL, the server queues it, and the EA picks it up within 1-2 seconds.
6Test your first signal30s
The fastest way to test is to create a manual alert that fires immediately:
- In TradingView, open any chart (e.g., EURUSD)
- Create an alert with condition "Once per bar" and any always-true condition (e.g., "Close greater than 0")
- Paste the BUY JSON above with a tiny lot size (
0.01) - Click Create — the alert fires immediately
- Switch to MetaTrader 5 — within 1–2 seconds you should see a 0.01 lot BUY position open on EURUSD
If you see the trade open in MT5, your bridge is working. The EA panel will also show the signal count incrementing.
✉Telegram alerts
SignalForge can send a Telegram message every time the EA acts — trade opened, closed, breakeven, Shield action, news pause and more. This is outbound only: it notifies you about your own trades. Your signals still come from TradingView — Telegram is not a signal source.
It is set up entirely from the dashboard; you don't change anything in the EA. Just keep the EA connected so it has trades to report.
Open dashboard → Protection → Telegram. A built-in Quick Start panel walks you through it. Telegram alerts are included on the plans that list them — see the plan comparison.
Set up in 4 steps
- Create a bot with @BotFather and copy its bot token.
- Get your Chat ID: send your new bot any message, then open @userinfobot — it replies with a number like
8157815762. Shortcut: send your bot/startand click Auto-link in the dashboard to detect it automatically. - Connect: paste the bot token and Chat ID into the Connection section and click Send test message — you should receive it in your chat.
- Pick events: under Per-event notifications, toggle the ones you want and customize each message template.
Broadcast to a public channel
Want to publish your trades to your own channel instead of a private chat? Turn on Channel mode: it hides your account number and adds pip distances, R:R ratio and your channel signature. Set the Chat ID to your channel — channel IDs start with -100 (e.g. -1001234567890).
Check that you messaged your bot first (a bot can't write to you until you do), that AutoTrading is on so the EA is connected, and that the Chat ID matches the destination. The dashboard shows an inline error if the last send failed.
{ }Webhook syntax reference
All webhook messages use JSON format. Here is the full list of supported fields:
| Field | Type | Required | Description |
|---|---|---|---|
action | string | Yes | buy · sell · close · closeall |
side | string | Optional | buy · sell · used with action: "close" to close only longs or shorts |
symbol | string | Yes* | e.g. EURUSD, BTCUSD, XAUUSD |
lot | number | Optional | Lot size · defaults to DefaultLots input |
sl | number | Optional | Stop loss in pips |
tp | number | Optional | Take profit in pips |
comment | string | Optional | Order comment (visible in MT5) |
magic | number | Optional | Magic number for the order |
account | number | Optional | Target specific MT5 account number |
* symbol is not required for closeall.
Close commands
To close positions, use these actions:
// close all positions on EURUSD
{"action": "close", "symbol": "EURUSD"}
// close only BUY (long) positions on EURUSD
{"action": "close", "symbol": "EURUSD", "side": "buy"}
// close only SELL (short) positions on EURUSD
{"action": "close", "symbol": "EURUSD", "side": "sell"}
// close ALL open positions on the account
{"action": "closeall"}
Full example with SL/TP
{
"action": "buy",
"symbol": "EURUSD",
"lot": 0.05,
"sl": 50,
"tp": 100,
"comment": "EMA cross H1",
"magic": 2026001
}
Migrating from another bridge? Your alerts just work
You do not need to rewrite your TradingView alerts to switch to SignalForge. The webhook reads the most common formats out of the box and maps them to the fields above — paste your existing alert and it runs:
| Coming from | Paste this exact alert |
|---|---|
| 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} |
Field aliases are mapped automatically: ticker → symbol, order_action / signal / side → action, stop_loss / sl_pips / sl_price → sl, take_profit / tp_pips / tp_price → tp, and exit / flat → close.
Minimalist alerts: just “buy” or “sell”
Set a Default symbol in your dashboard (Setup) and an alert containing only buy or sell — with no symbol at all — opens a trade on that symbol. Or use the {{ticker}} placeholder so TradingView fills the chart symbol for you:
buy {{ticker}}
Compatibility covers market entries and closes. Pending orders, reversals and directional partial closes are not supported yet. Risk-based sizing from other platforms (vol_dollar, vol_pct_*, and quantity / contracts outside MT5) is intentionally ignored to protect your account — set lot explicitly or let the EA size by risk.
▭EA panel guide
When the EA is running, a dark panel appears on the top-left corner of the chart. Here is what each section shows:
Header
Displays SIGNALFORGE and the plan name (STARTER). A minimize/maximize button ([-] / [+]) lets you collapse the panel.
Balance & equity
Shows your current account balance and equity in real time.
Open position
When a trade is active, shows: direction (BUY/SELL), lot size, entry price, SL, TP, and current P/L in real time.
Today's performance
Tracks daily stats that reset at midnight: total trades, wins, losses, win rate (%), and daily P/L. These stats survive EA restarts — they are saved to a local file.
Footer
Shows: connection status, your token (masked), uptime, and signal count.
⚙EA input settings
Press F7 on the chart (or right-click EA → Properties) to open the inputs panel. Key settings for Starter:
| Input | Default | What it does |
|---|---|---|
WebhookToken | — | Your personal token from the welcome email |
DefaultLots | 0.01 | Lot size when not specified in webhook |
DefaultSL | 0 | Default SL in pips (0 = none) |
DefaultTP | 0 | Default TP in pips (0 = none) |
MagicNumber | 2026 | Used to identify orders from this EA |
MaxSlippage | 10 | Max slippage allowed in pips |
SlippageReject | true | Reject orders if spread exceeds max |
ShowPanel | true | Show the on-chart EA panel |
{ }Pine Script setup
If you use Pine Script strategies (not just indicators), here is how to set up the webhook correctly.
Pine v4
//@version=4
strategy("My SF Strategy", overlay=true)
longCondition = crossover(sma(close,9), sma(close,21))
shortCondition = crossunder(sma(close,9), sma(close,21))
if (longCondition)
strategy.entry("Long", strategy.long,
alert_message='{"action":"buy","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}')
if (shortCondition)
strategy.entry("Short", strategy.short,
alert_message='{"action":"sell","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}')
Pine v6
//@version=6
strategy("My SF Strategy", overlay=true)
longCondition = ta.crossover(ta.sma(close,9), ta.sma(close,21))
shortCondition = ta.crossunder(ta.sma(close,9), ta.sma(close,21))
if longCondition
strategy.entry("Long", strategy.long,
alert_message='{"action":"buy","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}')
if shortCondition
strategy.entry("Short", strategy.short,
alert_message='{"action":"sell","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}')
When creating the alert, set the Message field to {{strategy.order.alert_message}} so TradingView passes through the JSON from your strategy.
Dynamic symbol
To make the symbol dynamic (works on any chart):
// using string concatenation
msg = '{"action":"buy","symbol":"' + syminfo.ticker + '","lot":0.01}'
strategy.entry("Long", strategy.long, alert_message=msg)
!Troubleshooting
EA shows "AUTOTRADING OFF"
Click the AutoTrading button in the MT5 toolbar to enable it (must be green). The EA won't execute trades while AutoTrading is disabled, but it stays attached to the chart.
No trades appear after alert fires
- Check the WebRequest URL — Tools → Options → Expert Advisors. Make sure
https://api.signalforge-ai.comis in the allowed URLs list. - Check the token — Open the EA inputs (F7) and verify the WebhookToken matches the one from your welcome email.
- Check the Experts tab in MT5 — error messages appear here. Look for keywords like "WebRequest" or "401".
- Check the JSON — copy your alert message and validate it at jsonlint.com.
Error 4752 or 4756 in Experts tab
These are WebRequest permission errors. The URL is not whitelisted. Go to Tools → Options → Expert Advisors and add the server URL.
Trade opens but with wrong lot size
Check if your webhook JSON includes the lot field. If not, the EA uses the DefaultLots input value. Also check your broker's minimum/maximum lot size.
Symbol "not found" error
The symbol name in your webhook must match your broker exactly. Common mismatches: XAUUSD vs GOLD, US30 vs US30.cash vs DJ30. Check your Market Watch for the exact name.
Connection drops after a while
Check your internet connection and make sure MT5 is not going to sleep. If running on a VPS, ensure the VPS stays active. The EA auto-reconnects if the server is temporarily unavailable.
?Frequently asked questions
account field, the signal is broadcast to all EAs connected with that token. To target a specific account, include "account": 12345 with the account number.$Plan comparison
Need more than the Starter? Here's what each plan adds:
| Feature | Starter $4.99 | Trader $14.99 | Pro $29.99 |
|---|---|---|---|
| TradingView → MT5 | Yes | Yes | Yes |
| Unlimited signals | Yes | Yes | Yes |
| Trailing stop & BE | Yes | Yes | Yes |
| Broker accounts | 1 | 3 | ∞ |
| Prop Firm Shield | No | Yes | Yes |
| News filter | No | Yes | Yes |
| Telegram notifications | No | Yes | Yes |
| AI signal filter | No | No | Q3 2026 |
| Cloud VPS | No | No | Q3 2026 |
Setup complete? Start trading.
If you got stuck anywhere in this guide, email me — I reply the same day on weekdays, usually within 4 hours.