in MQL5 I hope you can add about AccountGroup() to check about group user that is listed in the metamanager, it really helpfull for us that selling EA
because using AccountNumber() is not enough to protect our EA
also adding a function that can read file from the URL, so no need again to use external program like getright when want to displaying a news calendar.
I think this function is really usefull too, and can be used for other purpose like displaying a text information from the web, and etc...
I'm glad you've been thinking in this direction as well.
If you mean implementation of encryption-decryption, some samples can be found thru googling.
True that many of the algorithms are unfortunately patented or export licenced or whatever that makes its used is limited.
However you can get away with, either looking for the one that is not patented, or create a hook-up where a plugin to an external encryption utility can be called.
This option to store the external program name can be part of the tools option.
So the important part will be calling this plugin to encrypt bytecode during compilation, decrypt it during EA loading, and a good key management so it doesn't have to ask the user each time the EA is being loaded.
Btw, If the detail structure of the implementation is what your're trying to find, send an email. We can discuss it offline.
I hope the new MT5 and MQL5 will be released soon, can't wait to test it.
On 12May you replied to my itemized post. One item was summarized as:
if previous launch ends (deinit() called), with reasons: REASON_CHARTCHANGE, REASON_PARAMETER
You stated that would discuss.
What, if any, new platform design decisions have you come to regarding this issue in current platform?
Additionally, have you made decision on ternary operator?
ukt, there are "global_initialization" and "global_deinitialization" functions in addition to custom init and deinit functions.
global_initialization called once after loading program. global and static variables are initialized, constructors of global and static objects are called.
global_deinitialization called once before unloading progfam. destructors of global and static objects are called, global and static dynamic arrays are destroyed.
Custom deinit function can not call global destructors, but can explicitly resize to zero global dynamic arrays.
Custom init function can not call global constructors, but can explicitly reinitialize global variables.
Static variables is matter of theyr functions. Only static variable's owner function can explicitly change this static variable.
ukt, prodolzhaem razgovor. We continue discussion.
It will be special function "DeinitializeAll". This function calls global deinitialization routine and sets critical error "forced deinitialization". You can call this function from custom deinit after deinit reason analyze. You can call this function from any your function. But in this case EA's functions (start, OnSomeEvent, deinit and so on) cannot be called. First custom init function must be called.
stringo, your replies much appreciated and full of information - I must relearn some OOP speak/concepts and then consider your reply contents in the light of refound knowledge.
important issues - I must understand completely otherwise to answer hastily not honor your reply or team's work.
The differences as compared to C++ are:
The syntax description will be embedded in MetaEditor help files.
I think you guys do a terrific job, but please allow me one critical remark.
As inheritance is one of the pivotal characteristics of any object-oriented language
I would rather not call MQL5 object-oriented (as the movie suggests)!
However, you could use the term object-based instead.