Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Trading platforms like MetaTrader 4 and MetaTrader 5 are powerful tools, but they can also throw confusing errors when conditions aren’t met. One of the most common—and frustrating—issues traders face is order send error 130, also known as “Invalid Stops.” This error occurs when the platform rejects your order because the stop loss or take profit levels are not placed correctly. In this guide, you’ll learn everything you need to know about this error, why it happens, and the best order send error 130 invalid stops solutions that actually work.
Order Send Error 130 signals that the trading platform cannot execute your order because your stop loss (SL) or take profit (TP) does not follow the broker’s rules. This error is especially common when markets move rapidly or when traders use automated systems like Expert Advisors (EAs).
Platforms generate this error as a safeguard, ensuring that traders do not place stops too close to the current price or violate minimum distance restrictions.
Stop levels determine how far away your SL and TP must be from the market price. Brokers set these values to protect liquidity providers and ensure fair trade execution.
Protects your account from bigger losses by closing a trade automatically.
Locks in your desired profit target.
Every broker has minimum stop levels, sometimes fixed and sometimes dynamic, that vary by account type, spread, and asset class.
You may encounter error 130 if:
To understand this error better, it’s helpful to look at how orders are executed internally:
If any of these parameters violate platform logic, the system triggers error 130.
Here’s a simple checklist:
NormalizeDouble()Below are the most reliable fixes used by traders and programmers.
Always place your SL/TP far enough from the current market price. As a rule of thumb:
| Market Type | Recommended Minimum Distance |
|---|---|
| Forex Major Pairs | 10–20 points |
| Gold (XAUUSD) | 100–300 points |
| Indices | Varies widely; check broker |
Using buffers helps avoid SL/TP rejections.
Not all brokers use the same stop level rules. Always check your broker’s specifications in the Market Watch.
Fixed stop levels = easier
Dynamic stop levels = change during high volatility
Error 130 often happens in algorithmic trading when:
Make sure your EA checks symbol properties using SymbolInfoInteger() and SymbolInfoDouble().
Avoid sending orders during extreme volatility such as non-farm payroll (NFP) or interest rate news. Spreads widen dramatically, causing stops to become invalid.
Programmers often overlook:
NormalizeDouble()Fixing these logic errors eliminates error 130 in most cases.
If all typical fixes fail:
This deep diagnosis often reveals the underlying cause.
More sensitive to invalid price formatting. Requires manual normalization.
Better handling of digits and contract specifications, but still strict on SL/TP placement.
Uses different logic for stop orders but still enforces minimum stop distances.
Example: A trader sets SL 3 points away on EURUSD. Broker minimum is 10 points → error 130 generated.
Another case: An EA calculates SL based on incorrect pip multiplier → invalid stop placement → trade rejected.
Incorrect SL/TP placement relative to market price or broker rules.
Always exceed the broker’s minimum stop level by a buffer of 3–10 points.
Yes, but the values differ. Some use dynamic stop levels.
Yes, especially if coded without proper digit normalization.
Absolutely—wider spreads mean your SL/TP may suddenly become too close.
In MetaTrader: right-click the symbol → Specifications.
(External link for reference: https://www.mql5.com/en/articles)
Fixing order send error 130 invalid stops solutions requires understanding how stop levels work, knowing your broker’s rules, and ensuring your SL/TP placement follows correct logic. Whether you’re a manual trader or EA developer, applying the solutions above will dramatically reduce this error and improve execution reliability.