Trade Transaction Class
This professional-grade solution for MetaTrader 5 helps traders achieve greater efficiency in their daily workflow. This library provides a collection of modular, reusable code. It is utilized by developers to organize common functions, allowing for the integration of complex logic across multiple Expert Advisors, indicators, or scripts without the need for code duplication.
How to Setup and Use Trade Transaction Class
1. Storage: Place library files in the MQL/Libraries directory to ensure they are accessible to your projects.
2. Implementation: Include the library in your code using the #import directive, ensuring you match the exact function names and parameters.
3. Compilation: Ensure the library is present in the directory before you compile your main EA or script, as the compiler links them during this phase.
4. Management: Keep libraries organized in sub-folders if you manage many custom functions to maintain a clean project structure.
Frequently Asked Questions
Q: What is a library file used for? A: Libraries store reusable code modules, allowing you to centralize common logic used by multiple EAs or indicators.
Q: Is a library executable? A: No, libraries are non-executable files containing functions; they must be imported into an EA, indicator, or script to function.
Q: Can I update a library while the platform is running? A: You should compile your EA or script after updating a library to ensure the latest code changes are integrated.
Description & Settings
When performing some definite actions on a trade account, its state changes. Such actions include:
Sending a trade request from any MQL5 application in the client terminal using OrderSend and OrderSendAsync functions and its further execution;
Sending a trade request via the terminal graphical interface and its further execution;
activation of pending and stop orders on the server;
performing operations on the trade server side.
Special OnTradeTransaction() handler is provided in MQL5 to get trade transactions applied to an account.
OnTradeTransaction() function can be used for:
Getting real-time notifications about trade transactions as they occur.
Copying trades from one terminal to another.
Monitor trade transactions made by other ready-made expert advisors on different charts.
Having data on a trading operation type, you can decide on further analysis of the current state of orders, positions and deals on a trading account. (for example, update your calculations when the the list of open positions is changed).
Tracking the result of executing the trade request on a server sent by OrderSendAsync() function for conducting asynchronous trade operations without waiting for the trade server's response to a sent request.
The OrderSendAsync() function is designed for high-frequency trading, when under the terms of the trading algorithm it is unacceptable to waste time waiting for a response from the server.
However, analysis of trade transations using the default OnTradeTransaction() handler provided in MQL5 seems complicated.
TradeTransaction
class will map the underlying low-level trade transactions to a custom handler corresponding to the trade operation type.
The class has the following methods:
Finally this article makes an in-depth discussion about trade transactions in mql5
MQL5 Cookbook: Processing of the TradeTransaction Event
Updates
:
2019.03.06 - v.1.00 : Initial release.
2025.03.05 - v.1.10 : Fixed issue with STOP LIMIT orders not being captured. Added 'SetLogging' public method to control printing verbose information to 'Experts' logs.