The MT4 error 138 indicates a price requote issue of the MetaTrader4 platform. This error code may appear when you attempt to execute an order during a highly volatile market.
An error code 138 means the MT4 platform has missed your quoted price for executing an order. In such a situation, your trading platform cancels the current order and requotes another price as an option for re-executing the order. When you visit the platform’s journal at its terminal, you will see the software showing the message “OrderSend error 138”.
Why does MT4 error 138 happen?
Your MT4 platform may show an error code 138 for several reasons:
A slippage refers to the difference between the current price and the execution price of a particular trade. A slippage occurs mostly in a highly volatile market when the price rapidly changes every second. For example, you place a buy order (instant execution) of EURUSD on 1.2019. By the time you click on “buy” the price already reaches 1.2021. When the MT4 platform finds such a difference between the execution and actual price, it withdraws the order and shows the error code 138.
For any reason, your internet connection dropouts during the execution of an order will also show an error code 138. It happens when your platform gets disconnected from the internet right after you place an order. As a result, your MT4 platform fails to find the price you have quoted due to the connection dropout and shows the OrderSend error signal.
How to fix MT4 requotes?
Time needed: 5 minutes.
How to fix MT4 error 138
Use the RefreshRates function in your EA
- If you wish to remove the OrderSend error138 from your EA, you need to place a RefreshRates function before the OrderSend and Ask/Bid function. Here is an example:
- Handle slippage when closing orders with your EA
Slippage can occur during an attempt to close an order. When MT4 fails to close an order within your quoted price it sends “OrderClose error 138”. To fix such order close issue you need to edit your MT4 EA as follows:
- Add slippage limit to your EA
Please note that even if you place RefreshRates in your EA, there might still be slippage in between the execution of OrderSend and RefreshRates. So, setting a slippage limit in the EA can help you in executing the orders without requotes. When you set a slippage limit in your EA, the platform finds the best price within the slippage limit, executes the trade, and prevents showing MT4 error 138 requote.
- Enable the Deviation feature in MT4
You will find the deviation feature at the bottom of the order execution window of the MT4 platform. Enable the feature and set a value at the maximum deviation box. If you set the maximum deviation as 30, it means the platform will execute an order within 3 pips closer to the originally quoted price. For example, if you place a EURUSD buy order at 1.2023 but the price slips to 1.2026 during the execution process. In such a case the platform will accept the new price and will execute the order at 1.2026 without requoting.
- Select a broker that offers ECN or DMA (Direct Market Access) accounts
If you are trading with a market maker broker, there is a higher chance of facing the error code 138. Because a market maker broker manipulates the price and often fails to match the exact order price provided by the user. On the other hand, a broker that offers ECN or DMA accounts will provide an instant order execution facility. So, trading on an ECN account significantly reduces the risk of slippage.