MT5 error 4756: trade request failed.
Error 4756 is MT5's generic way of saying your broker rejected the order. It is not a bug in your EA and rarely a bug at your broker either — it is the trade server enforcing its own rules on stops, volume, margin or market state. Here is how to read it in 60 seconds and fix the cause, ordered by how often each one is the culprit.
The 60-second diagnosis
OPEN TOOLBOX → JOURNAL (OR EXPERTS), FIND THE 4756 LINE, AND MATCH IT BELOW
“invalid stops” (error 10016)“invalid volume” / “invalid lots”“no money” / “not enough margin”“requote” / “price changed”Two 10-second sanity checks before anything else: the AutoTrading button in the toolbar must be green (toggle with Ctrl+E), and Tools → Options → Expert Advisors → “Allow algorithmic trading” must be checked. If either is off, orders never reach the broker and you will see different errors — but they take seconds to rule out.
The five fixes, ordered by frequency
Stops too close to the price (invalid stops, error 10016)
By far the most common cause behind 4756. Every symbol has a stops level — a minimum distance, in points, that your SL and TP must keep from the current price. If your stop lands inside it, the broker rejects the order. Gold is the classic offender: the stops level on XAUUSD is often wide, and when the spread spikes, a stop that was valid a minute ago falls inside the forbidden zone.
sl/tp values in the TradingView alert JSON (see the payload reference in the docs).Real support case: a client trading XAUUSD was getting 4756/10016 on every signal. His alerts carried no TP/SL at all, but MT5 had kept old EA inputs on the chart that placed stops inside the broker's stops level for gold during a high-spread window. Setting the SL/TP override inputs to 0 in F7 fixed it on the spot.
Lot size outside the symbol's min / max / step
Every symbol defines a minimum volume, a maximum volume and a volume step. A lot below the minimum, above the maximum, or off the step (0.005 on a 0.01-step symbol) is rejected. This bites alert users who hardcode a lot that works on one symbol but not on another — indices and crypto CFDs have very different rules from forex pairs.
Market closed or quotes paused
If the alert fires while the market is closed (weekend, holiday) or while your broker pauses quoting — common around the 00:00 server-time rollover and during major news — the order is rejected. Check the time of the last tick in Market Watch: if it is frozen, nothing will execute until quotes resume.
For automated setups this is a retry problem, not a configuration problem: a bridge or EA with bounded retries will re-send the order once the market reopens instead of dropping the signal.
Insufficient margin
The broker calculates the margin needed for the position at your leverage and rejects the order if your free margin cannot cover it. Open Toolbox → Trade and compare Free margin against the position you are trying to open. The fix is a smaller lot, higher leverage (if your broker and ruleset allow it), or closing other positions first. On prop-firm accounts, remember the drawdown rules sit on top of plain margin math.
Requote: the price moved
Between your terminal sending the order and the broker executing it, the price moved beyond the allowed deviation, so the broker declines and offers a new price. It happens in fast markets and around news. The practical fixes: allow a larger deviation/slippage in the order settings, use market execution where the broker supports it, and retry — a single requote is normal in a volatile spike.
When it is NOT your broker
4756 HAPPENS AT THE BROKER — BUT THE ROOT CAUSE CAN BE UPSTREAM IN YOUR ALERT
The alert, not the broker, sent something impossible
An EA executes what it is told. If your TradingView alert JSON carries a symbol name your broker does not use (XAUUSD vs XAUUSD.pro vs GOLD), a lot below the symbol minimum, or sl/tp values in the wrong units (price vs points), the EA faithfully sends the order and the broker rejects it with 4756. The fix is in the payload, not the platform: check the exact field reference in our docs and compare it against your alert message line by line.
The fastest way to rule the payload in or out: paste your alert message into the free webhook tester. It validates the schema and shows you exactly what the bridge would send to MT5 — before anything reaches your broker.
Then the cause is broker-side: stops level, volume rules, market state or margin — go back to the five fixes above. And if you want your alerts validated, routed and retried automatically instead of debugging payloads by hand, start the 14-day free trial — no card required.
FAQ
WHAT 4756 MEANS, 10016, GOLD, AND WEBHOOK ALERTS.
What is MT5 error 4756?
Error 4756 (“trade request failed”) means MetaTrader 5 sent your order to the broker's trade server and the broker rejected it. It is a generic wrapper: the Journal or Experts log shows the specific reason next to it as a retcode — most often 10016 invalid stops, 10014 invalid volume, 10019 no money or 10004 requote.
Is MT5 error 4756 the same as error 10016?
No. 4756 is the generic “order sending failed” message; 10016 (invalid stops) is the most common specific cause behind it. 10016 means your SL or TP sits closer to the current price than the broker's stops level allows. Widen the stops and the 4756 usually disappears.
Why do I get error 4756 only on gold (XAUUSD)?
Many brokers set a wide stops level on gold and the spread spikes around news and rollover, so an SL/TP distance that works on EURUSD gets rejected on XAUUSD. Open Symbols with Ctrl+U, check the stops level in points, and place your stops at least stops level + current spread away from the price.
Can a TradingView webhook alert cause error 4756?
Indirectly, yes. A lot below the symbol minimum, SL/TP too tight, or a symbol name your broker does not use in the alert JSON all end as a broker rejection. Validate the payload in the webhook tester — a schema error normally fails earlier at the bridge, not at the broker.
More troubleshooting: PineConnector not working? 12 fixes (and when to switch). Payload reference: SignalForge docs.
Benjamin SF is the founder of SignalForge and an expert in trading algorithm automation. He builds and operates the SignalForge bridge for prop-firm traders and answers support cases like the one in this guide.
Automate your TradingView signals on MT5
SignalForge routes your alerts to MetaTrader 5 in milliseconds, with payload validation and automatic retries. 14-day free trial, no card required.
SignalForge AI is an order-execution tool. We do not provide investment advice. Trading involves risk of loss.