Glossary
Slippage in MetaTrader 5: What an EA’s Deviation Setting Controls
At a glance
Slippage is the difference between the price a trade request named and the price at which it was executed. In MetaTrader 5 an Expert Advisor can state the deviation it accepts, in points. That setting is part of instant and request execution. In market and exchange execution the request has no price to deviate from, so the fill price is whatever the broker or the market gives.
On this page
Slippage is the difference between the price a trade request named and the price at which the trade was executed. It can go against you or in your favour. An EA cannot switch it off; in some execution modes it can say how much it accepts.
The MetaQuotes documentation was checked on 1 October 2026. AI assisted with research and drafting. RoboXpert develops its own trading software, so we have a commercial interest in this subject; see our editorial standards and commercial disclosure.
Slippage and deviation: the terms MetaTrader uses
MetaTrader’s own word is deviation. The help defines it as “the difference between the order execution price and the specified price to which a trader agrees.” If the price has moved by no more than that amount, the order “is executed at the new price without any notification.” If it has moved further, the broker returns new prices. That answer is called a requote.
An EA input named “Slippage” or “Deviation” normally sets this value. In a trade request it is the field deviation, which the MQL5 reference describes as “the maximal price deviation, specified in points”. Ten points are one pip on a five-decimal EURUSD quote; see point vs pip.
The execution mode decides whether the deviation setting applies
A symbol has one of four execution modes. The broker chooses it. The table quotes what the MetaTrader help says about the price in each mode and shows whether a trade request carries a deviation. Only instant and request execution use one.
Scroll horizontally if needed
| Execution mode | What MetaQuotes says about the price | Deviation in the request |
|---|---|---|
| Instant | The order goes out with the current price. If the broker does not accept it, “a ‘Requote’ is sent”. | Used |
| Request | A market order “is executed at the price previously received from a broker.” | Used |
| Market | The broker “makes a decision about the order execution price without any additional discussion with a trader.” | Not among the required fields |
| Exchange | Operations “are executed at the prices of current market offers.” | Not among the required fields |
The last column follows the trade request reference, which lists price and deviation for instant and request execution and neither of them for market and exchange execution.
Where to find the execution mode and the setting
Right-click the symbol in Market Watch and open Specification. The line Execution names the mode. In code, one call sets the accepted deviation for a trade object and one property reads the mode:
trade.SetDeviationInPoints(InpDeviationPoints);
Print("Execution mode: ", EnumToString((ENUM_SYMBOL_TRADE_EXECUTION)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_EXEMODE)));
Both lines come from our read-only script, which compiled with zero errors and zero warnings on 1 October 2026. We did not run it on an account, so we show no output.
Reader resource · ZIP
Read these values on your own account
A read-only MQL5 script that prints the properties named in this glossary, with its compiler record. It sends no order.
Download the read-out scriptTwo typical mistakes with slippage settings
- Treating the setting as a guarantee. On a symbol with market execution, a deviation of 10 points does not cap the fill price. Compare requested and executed prices in the account history instead of relying on the input.
- Reading a backtest as proof of fills. In the Strategy Tester’s No Delay mode, the testing help states that “all orders are executed at requested prices without requotes.” A report made that way contains no slippage by construction. Our guide to backtest vs live trading explains what else a tester assumes.
A larger deviation is a trade-off, not a fix. MetaQuotes notes that “the larger the value, the less likely it is that you receive a new execution price (requote)”. In return, you accept fills further away from the price you asked for.
Sources & further reading
- MetaTrader 5 Help: executing trades and the Deviation field
- MetaTrader 5 Help: basic principles and execution modes
- MetaTrader 5 Help: Market Watch and the symbol specification
- MQL5 Reference: the trade request structure (MqlTradeRequest)
- MQL5 Reference: CTrade, SetDeviationInPoints
- MetaTrader 5 Help: strategy testing and execution delays


