How to Fix MQL4 Error Closing Order 138 in Forex Trading

5 min read

Understanding MQL4 Error 138 for Forex Trading Partner”>Close Orders in Forex Trading

MQL4 is a convenient yet complex coding language used to build automated scripts and trading strategies in the MetaTrader 4 (MT4) trading platform. It is a difficult skill to master, and for some investors, it can be difficult to troubleshoot errors. One of the most common errors is the MQL4 OrderSend Error 138, which occurs when trying to close orders in Forex trading. Understanding what this error means and how to prevent it is key to a successful trading strategy.

What is MQL4 Error 138?

MQL4 Error 138 occurs when an order does not successfully close due to a discrepancy between the requested parameters and the market conditions. When attempting to close a predetermined order, the price being offered by the market broker may be different from the one that was requested. This error appears to alert traders that the price being offered is not a match for the parameters of their order.

How to Avoid MQL4 Error 138?

Despite the prevalence of MQL4 Error 138, there are several ways to avoid this issue. First and foremost, investors should pay attention to the types of orders they are placing. If the order is a buy order, investors should take note that the TP/SL (take profit/stop loss) parameters will be triggered when the Bid reaches it, and not the Ask. Similarly, when placing a sell order, the TP/SL parameters will be triggered when the Ask reaches it and not the Bid.

In addition, setting sensible SL/TP levels is a key component to avoiding requotes. Requotes occur when dealing with conditions other than the current market conditions, such as in a fast-moving market or when the market volatility changes. Requotes can be prevented by setting sensible levels that are deemed achievable and correspond with realistic market prices. To mitigate forceful swings, investors may also consider adding a “buffer” to the order levels to provide some stability.


MQL4 Error 138 can be the source of much frustration for Forex traders, but it can be prevented by understanding the causes and taking the necessary steps to avoid it. By paying attention to the type of order being placed, setting sensible SL/TP levels, and adding buffers to their orders, traders can mitigate requotes and maintain their trading strategies.

MQL4 Error Closing Order 138 – an Overview

MQL4 error closing order 138 is an error code found in the MQL4 programming language, which is used for the MetaTrader 4 online trading platform. This error code occurs when a program is unable to execute a closing operation on an order. In this article, we’ll take a closer look at this particular error code and explore how it may affect your online trading.

What is MQL4 Error Code 138?

MQL4 error code 138 is triggered when attempts are made to modify or close a position using the MQL4 language. This exact code appears on the chart window after a program has attempted to execute an order closing interface and the closing operation was unsuccessful.

It is important to note that MQL4 error code 138 does not necessarily signify that the order itself was invalid or required modification. Instead, it indicates that there was an issue with the syntax of the order, which prevented MQL4 from recognizing the order as a valid command. This is why it is important for all online traders to make sure that their programs use the proper syntax when attempting to execute an order closing interface or operation.

Common Reasons for MQL4 Error code 138

The most common causes of MQL4 error code 138 are syntax errors that prevent the program from understanding the order. This can occur due to typos in the code, errors in the logic of the order, missing variables, or other issues. Another possibility is that the trading platform itself encountered an issue that prevented it from executing the order.

In more complex situations, the code that triggers the error may be working correctly, but MQL4 may be unable to properly recognize the particular conditions of the market. For example, if a market trend has changed in a way that the code failed to anticipate, MQL4 may not recognize the conditions of the order and will throw an error code instead of attempting to execute the command.


MQL4 error code 138 is triggered when errors in the code prevent an order from closing properly. The underlying cause of the error code can be due to syntax errors, changes in market condition, or problems with the platform. It is important to note that the code itself may still be accurate, but the market has changed in a way that was not anticipated by the program. As such, it is essential for online traders to make sure that their code is written with proper syntax and is able to recognize and respond to changes in market conditions.

You May Also Like

More From Author