SignalForge AI 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:
- MetaTrader 5 installed on Windows 10/11 or Windows Server 2016+. macOS is supported if running MT5 via a VPS or virtual machine.
- TradingView account with a paid plan (Essential or higher) — webhook alerts require a paid TradingView subscription.
- A broker account connected to MT5 (demo or live). Any MT5-compatible broker works: ICMarkets, Pepperstone, FTMO, FundedNext, etc.
- Internet connection — MT5 must be running and connected while you want signals to execute.
1 Create Your Account
Go to signalforge-ai.com and choose the Starter Plan ($4.99/mo). Click the subscribe button — you will be redirected to Stripe to complete your payment.
After payment, you will receive an email with:
- Your webhook token (a unique string that identifies your account)
- A download link for the Expert Advisor (.ex5 file)
- The webhook URL to paste into TradingView
2 Your Webhook Token
Your webhook token looks something like this:
a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
This token is used in two places:
- In the EA — paste it into the
WebhookTokeninput field so the EA knows which account to poll. - In TradingView — it is part of your webhook URL.
Your full webhook URL is:
https://exquisite-truth-production.up.railway.app/wh/YOUR_TOKEN
Replace YOUR_TOKEN with your actual token. This is the URL you paste into TradingView's alert webhook field.
3 Install the Expert Advisor
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 the Navigator panel (Ctrl+N).
- Right-click on Expert Advisors → Refresh.
- Find SignalForgeEA_Starter, right-click → Attach to Chart.
- Choose any chart (e.g., EURUSD). The EA handles all symbols from a single chart.
4 Configure MetaTrader 5
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://exquisite-truth-production.up.railway.app
4.3 Enable AutoTrading
In the MT5 toolbar, click the AutoTrading button so it turns green. If it is red, the EA will show “AUTOTRADING OFF” on the panel.
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.
The EA panel should appear on the chart showing CONNECTED.
5 Create a TradingView Alert
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://exquisite-truth-production.up.railway.app/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
}
For a SELL:
{
"action": "sell",
"symbol": "XAUUSD",
"lot": 0.05,
"sl": 300,
"tp": 600
}
strategy.entry() call, put the JSON in the alert_message parameter and set the alert message field to {{strategy.order.alert_message}}. See the Pine Script section below.
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.
6 Test Your First Signal
The fastest way to test is to create a manual alert that fires immediately:
- Open TradingView, any chart.
- Create an alert with condition: “Once” (fires immediately).
- Webhook URL: your full webhook URL.
- Message:
{
"action": "buy",
"symbol": "EURUSD",
"lot": 0.01
}
- Click Create. Within 1-2 seconds, a 0.01 lot BUY on EURUSD should appear in your MT5.
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, closebuy, closesell, closeall |
symbol |
string | Yes* | MT5 symbol name, e.g. EURUSD, XAUUSD, US30.cash. Must match your broker exactly. |
lot |
number | No | Lot size. Default: uses EA's DefaultLots input. |
sl |
number | No | Stop Loss in points. 50 = 5 pips on a 5-digit pair. |
tp |
number | No | Take Profit in points. |
sl_price |
number | No | Stop Loss as absolute price level (e.g. 1.08200). |
tp_price |
number | No | Take Profit as absolute price level. |
comment |
string | No | Trade comment visible in MT5 trade history. |
account |
string | No | Target specific MT5 account login. If omitted, signal goes to all connected EAs. |
* symbol is not required for closeall.
Close Commands
To close positions, use these actions:
// Close all BUY positions on EURUSD
{"action": "closebuy", "symbol": "EURUSD"}
// Close all SELL positions on XAUUSD
{"action": "closesell", "symbol": "XAUUSD"}
// Close ALL positions on all symbols
{"action": "closeall"}
Full Example with SL/TP
{
"action": "buy",
"symbol": "XAUUSD",
"lot": 0.10,
"sl": 300,
"tp": 600,
"comment": "Gold breakout"
}
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 AI 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 | Description |
|---|---|---|
WebhookToken |
(empty) | Your unique webhook token. Required. |
DefaultLots |
0.01 | Lot size used when the webhook does not include a lot field. |
InpSlippage |
30 | Maximum allowed slippage in points. |
InpMagic |
123456 | Magic number to identify EA trades. Change if running multiple EAs. |
PollInterval |
1500 | How often the EA checks for new signals (in milliseconds). Lower = faster execution but more requests. |
MaxSpread |
0 | Maximum spread in points. 0 = no filter. Set to e.g. 30 to skip signals when spread is too wide. |
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 Strategy", overlay=true)
// Your conditions
longCond = crossover(sma(close, 9), sma(close, 21))
shortCond = crossunder(sma(close, 9), sma(close, 21))
if longCond
strategy.entry("Long", strategy.long,
alert_message='{"action":"buy","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}')
if shortCond
strategy.entry("Short", strategy.short,
alert_message='{"action":"sell","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}')
Pine v6
//@version=6
strategy("My Strategy", overlay=true)
longCond = ta.crossover(ta.sma(close, 9), ta.sma(close, 21))
shortCond = ta.crossunder(ta.sma(close, 9), ta.sma(close, 21))
if longCond
strategy.entry("Long", strategy.long,
alert_message='{"action":"buy","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}')
if shortCond
strategy.entry("Short", strategy.short,
alert_message='{"action":"sell","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}')
{{strategy.order.alert_message}}This tells TradingView to use the JSON from your
alert_message parameter.
Dynamic Symbol
To make the symbol dynamic (works on any chart):
alert_message='{"action":"buy","symbol":"' + syminfo.ticker + '","lot":0.01,"sl":50,"tp":100}'
syminfo.ticker returns the TradingView symbol name (e.g. EURUSD). If your broker uses a different name (e.g. EURUSDm or EURUSD.i), you need to hardcode the broker symbol or use a mapping.
Troubleshooting
EA shows “AUTOTRADING OFF”
Click the AutoTrading button in the MT5 toolbar to enable it (must be green). The EA will not execute trades while AutoTrading is disabled, but it stays attached to the chart and will resume automatically when re-enabled.
No trades appear after alert fires
- Check the WebRequest URL — Go to Tools → Options → Expert Advisors. Make sure
https://exquisite-truth-production.up.railway.appis listed. This is the #1 cause of failed signals. - Check the Experts tab in MT5 (Ctrl+E or View → Toolbox → Experts). Look for error messages.
- Verify the symbol name matches your broker exactly. Open the Symbols window (Ctrl+U) in MT5 to see the exact names.
- Check AutoTrading is enabled (green button in toolbar).
- Verify the token in the EA input matches the one in your webhook URL.
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. Open MT5's Symbol window (Ctrl+U) to find the correct 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
Do I need a VPS?
Not necessarily. If you want signals to execute 24/7, you need MT5 running at all times, which means either keeping your PC on or using a VPS. For daytime-only trading, your PC is fine. A VPS costs about $5-10/month (Contabo, Hetzner).
Can I use one EA for multiple symbols?
Yes. Attach the EA to any single chart. It will execute trades on whatever symbol the webhook specifies. You do not need multiple EAs.
Can I use this with prop firm challenges?
Yes. Many prop firms (FTMO, FundedNext, The Funded Trader) allow automated trading via Expert Advisors. The Starter plan works perfectly for this. For additional protection, the Trader plan ($14.99/mo) includes Prop Firm Shield and News Filter specifically designed for prop firm challenges.
What happens if my internet drops?
Signals are queued on the server for up to 60 seconds. If the EA reconnects within that window, it will pick up the pending signal. If not, the signal expires.
Can I send signals to multiple MT5 accounts?
Yes. If you omit the account field in your webhook, the signal is broadcast to all EAs connected with that token. To target a specific account, include "account": "12345678" with your MT5 login number.
Is there a free trial?
We offer a 14-day money-back guarantee on all plans. If you are not satisfied, contact us for a full refund.
What is the latency?
Typical end-to-end latency (TradingView alert fires → trade opens in MT5) is 375-875ms. This includes TradingView sending the webhook, server processing, and EA polling. For most trading strategies, this is imperceptible.
Plan Comparison
| Feature | Starter | Trader | Pro |
|---|---|---|---|
| TradingView → MT5 bridge | ✅ | ✅ | ✅ |
| All symbols supported | ✅ | ✅ | ✅ |
| Multi-account broadcast | ✅ | ✅ | ✅ |
| Daily stats panel | ✅ | ✅ | ✅ |
| Spread filter | ✅ | ✅ | ✅ |
| Prop Firm Shield | ❌ | ✅ | ✅ |
| News Filter | ❌ | ✅ | ✅ |
| Telegram Notifications | ❌ | ✅ | ✅ |
| Exclusive TradingView Scripts | ❌ | ✅ | ✅ |
| Trend Filter | ❌ | ✅ | ✅ |
| AI Signal Filter | ❌ | ❌ | ✅ |
| Price | $4.99/mo | $14.99/mo | $29.99/mo Coming Soon |