Easy Canvas (i Canvas)
This is a powerful addition to your MetaTrader 4 toolkit designed to optimize market analysis and performance. 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 Easy Canvas (i Canvas)
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
The library and iCanvas class simplify writing programs using Canvas.
Here is an example of a simple indicator using this library.
In this example, the indicator body features no function for processing OnChartEvent events. But it may also be present.
struct Window:
iCanvas class:
If you do not need an instance of the Canvas class for the full window, you can delete it and (or) change it to a partial window.
For example:
You can also create new instances of the class and initialize them at the time of creation.
For example:
Important note: Since by default, the color format with transparency COLOR_FORMAT_ARGB_NORMALIZE is used, then when specifying the color, you must take into account the high byte of transparency.
If you use color names, for example, clrRed, then the color will be absolutely transparent because the transparency byte will be 0.
Therefore, you must use the ColorToARGB function (for example, ColorToARGB (clrRed))
or specify the color explicitly with non-zero transparency:
-for example, 0xFFAABBCC (Hexadecimal color representation),
where:
FF -byte of transparency,
AA - is red bytes,
BB - is green bytes,
CC - is blue bytes.
P.S.: This library was developed for MQL5 and ported from MQL5 code. Therefore, for MQL4 it is not optimal.