The first thing that should be understood is that any operation takes time to execute. When a client submits an order to open a transaction (i.e., presses a button on the platform), depending on their location and the nearest server, it takes a certain amount of time for the server to reach this request (e.g., 50-100 ms), then the order is queued for execution, which also takes time. Although we're constantly working on optimising this process and reducing the time between the time an order's requested and the time it's executed, it still can't be brought down to zero.
Secondly, the price that the client sees in the platform must also be delivered from the server to the platform. As such, by the time it reaches the platform, the price is already outdated, at least at the time it's delivered to the platform. That's why it's perfectively normal, both technically and physically, that the price of the request may differ from the actual price on the server and the execution price.
In addition, it should be taken into account that price slippage, either up or down, can occur, with about a 50/50 distribution of either case.
Furthermore, it should be noted that the lower price volatility is, the less frequently prices are updated, the fewer jumps there are, and the less slippage occurs. However, when volatility is at its highest, slippages can't be avoided.
Slippage is the execution of a client's order at a price that's different from the level specified by the client.
Slippage is inextricably linked to the term gap, which is a price change that results in the price differing from the previous one by several pips. In addition, slippage often occurs at the following times:
That's why it's very important to consider market events, which can be found in the Market Calendar. Any news or events can greatly widen the spread, which can cause your trade to open or close at a price that's very different from the chart price.
In other words, at times of high volatility or low liquidity, a situation may arise in which the platform receives quotes that greatly differ from one another. This leads to trades executing at prices that are different from the ones set in the order.
When the price reaches the set level, the order is marked as executable and is executed at the first available price after the order is activated.
Let's take setting a Stop Loss as an example.
Suppose you open a buy trade at 1.04000 for EUR/USD and set a Stop Loss at 1.03900. Every first Friday of the month, the Non-Farm Payrolls (NFP) report is released. This report deals with several US macroeconomic indicators and shows how many new jobs were created in all sectors of the economy except agriculture. Let's say that the price changed sharply from 1.0399 to 1.03800 when the report was released. Since there was a gap, i.e., the next price after 1.0399 was 1.03800, your trade would have closed when it reached the Stop Loss at the first available price after the gap, which was 1.03800.
The possibility of slippage occurring in a gap can't be ruled out because this slippage isn't some technical failure. It's actually entirely consistent with market realities.
In addition, it should be noted that market orders are executed using Market Execution technology. This is a system for buying or selling that, depending on the volume of the order, automatically adds the volume received from liquidity providers and calculates the execution price of this volume, which is returned to the client's trading platform. Because the volume available at the time the order is executed is limited, this price may differ from the price you saw when you opened the position from the platform. As such, there is a direct correlation between the transaction volume and the price and speed of execution.
Reducing the volume of a trade can increase the chances of accurate execution, although it can't guarantee it, especially during periods of high volatility and low liquidity, which are typical of times when reports are released. Note that requests from other traders are handled simultaneously with your requests, which directly affects the execution price of each individual trade.