MQ L Plus Enhanced Debugging Support
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 MQ L Plus Enhanced Debugging Support
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
Features three domains of functionality. - Debugging, Tracing and Performance measurments
- Simple to use "Print any variable" to expert-journal with one command.
- Track and debug "If", "for", and "while" statement evaluation.
- Trace calls to MQL-Built-In functions
- Measure runtime of operations and functions.
- Highly customizable, if required.
- Temporary or permanent integration into your projects.
- MQL-API-Tracer: loosing trace data in recursive calls
- Added API-Event-Tracer for MQL5
- Added Dynamic Object creation tracer
- Added program lifetime tracer
- Fixed signatures of MQL-API functions
- Added missing functions
- Fixed preprocessor macros failing to compile
- Added MQL5 standard library support
- Bugfixes from v 5.11 to v5.12
- Fixed Multidimension Array Support in MQLAPI-Tracer
- Fixed DBG_MSG_EVAL_* Macros calling a function twice, if given as parameter to the macros.
- Bugfixes from v 5.1 to v5.11
- MQLAPI-Tracer: Fixed Enums throwing compile error on Alert/Comment/Print/printf
- Fixed Multidimensional Array Support (might need more fixing for MQLAPI-Tracer)
- Updated printf-output system for the library.
- MQL API tracer included for MQL5 pure code, currently does not support MQL standard library.
- Most macros were rewritten and are now faster.
- Error-Code tracing is supported directly by the MQL-API tracer.
- Minor compatibility issues were solved.
- Type resolving has been enhanced, especially enumeration-resolving for built-in enumerations is now working correctly again.
This library is MQL4 and MQL5 compatible.
Credits
I would like to give credits to major contributions to help go through this extensive project. Without the contribution of continuously testing and validating the code functions as well as the usability aspects, the quality would not be as high as it is right now.
Thank you @
In the end, a library that contributes a set of tools for developing code should and must meet very high standards, so you as a user can rely on the output and feedback the library gives you. - I myself have found various bugs within mql5 and was able to track down these errors with the help of this library. Focus was on quality as much as possible, even after extensive testing, I am confident, there are still some bugs.
If you come across an issue, please let me know.
All add-ons are freely configurable. All code inclusions have been done in preprocessor macros.
A full list and detailed description is included in the main header file.
Comprehensive examples can be found in in the directory Experts/LibDebug_Example/