Need help from MT4 developers and programmers

 

Hello.

New builds of MT4 terminal do not de-initialize and re-initialize EAs when user changes values of input parameters. This leads to a fundamental incompatibility of existing EAs with the new builds of MT4. The incompatibility occurs in the most optimized EAs where all single calculations are placed in block init().

It even comes to ridiculous point: in order to guarantee the replacement of the value of some input parameter, the user must take the Expert Advisor off the chart and put it on again. (I have not tried to load parameters from a SET-file with a button, but I suspect that it is equivalent to replacing values of parameters manually).

I very much ask MT4 developers to bring back the call of functions deinit(), init() to common sense.

Sincerely.

PS If someone is aware of the mechanism of programmatic determination of the moment and the fact of changing of values of input parameters by the user, please write about it here.

 
at least show the rifle as proof.
 

Version: 4.00 Build 670

(4 Jul 2014)

 
Wex:


New builds of MT4 terminal do not de-initialize and re-initialize EAs when user changes input parameters values. This leads to principal incompatibility of existing EAs with new builds of MT4. The most optimized Expert Advisors, where all single calculations are placed in block init(), are subject to incompatibility.

I have them. Build 670. Check with simple printers.
 
Wex:

Hello.

New builds of MT4 terminal do not de-initialize and re-initialize EAs when user changes values of input parameters. This leads to a fundamental incompatibility of existing EAs with the new builds of MT4. The incompatibility occurs in the most optimized EAs where all single calculations are placed in block init().

It even gets ridiculous: in order to guarantee the replacement of the value of some input parameter, the user must take the Expert Advisor off the chart and put it on again. (I have not tried to load parameters from a SET-file with a button, but I suspect that it is equivalent to replacing values of parameters manually).

I very much ask MT4 developers to bring back the call of functions deinit(), init() to common sense.

Sincerely.

PS If someone is aware of the mechanism of programmatic determination of the moment and the fact of changing of values of input parameters by the user, please write about it here.

This is a ploy by market makers :-7 to deflate established EAs
 
IvanIvanov:
This is a ploy by market makers :-7 to deflate established advisers
+
 
Is it not possible to rewrite the EA?
 

PS. (I don't seem to be much of a tongue twister on the forum.) EA attached. Try changing the value of parameter A1 or A2 on the fly. The time "goes" and the EA does not "see" the new values of parameters. Although, you can make it initialize by pressing twice the button "AutoTrading". Of course, this is faster than taking the EA off the chart and reinstalling it. However, it is somehow illogical. However, it is up to you to decide.

Of course, it is much easier for me to make changes in my Expert Advisor than to wait by the sea. Therefore, I will ask one simple question once again. Does anyone know how to get information about a user who changed the value of an input parameter on the fly? I mean the fact that the value has changed and the point in time.

Really the newer builds of MT4 terminal are much better than the older ones. The value of the parameter is changed in this case when the Sleep() function is executed. This is progress indeed. The old builds didn't allow to change values at all, or rather didn't even allow user to get the window with input parameters. I have told customers that they should first disable the EAs using the button on the terminal panel, change their parameters and then enable the EAs again. But now the user has no obstacles, he has the illusion that the input parameters have been changed. Moreover, the new example shows that not only copies obtained in the init() block, but also the original input parameters are not changed in the Expert Advisor, but they are changed in the properties window on the Inputs tab. The discrepancy is obvious.

Files:
PROBLEM.mq4  2 kb
 
Wex:

PS. (I don't seem to be much of a tongue twister on the forum. EA attached. Try changing the value of parameter A1 or A2 on the fly. The time "goes" and the EA does not "see" the new values of parameters. Although, you can make it initialize by pressing twice the button "AutoTrading". Of course, this is faster than taking the EA off the chart and reinstalling it. However, it is somehow illogical. However, it is up to you to decide.

Of course, it is much easier for me to make changes in my Expert Advisor than to wait by the sea. Therefore, I will ask one simple question once again. Does anyone know how to get information about a user who changed the value of an input parameter on the fly? I mean the fact of changing the value and the point in time.

Really, the newer builds of MT4 terminal are much better than the older ones. The parameter value is replaced in this case when the Sleep() function is executed. This is progress, of course. The old builds didn't allow to change values at all, or rather didn't even allow user to get the window with input parameters. I have told customers that they should first disable the EAs using the button on the terminal panel, change their parameters and then enable the EAs again. But now the user has no obstacles, he has the illusion that the input parameters have been changed. Moreover, the new example shows that not only copies obtained in the init() block, but also the original input parameters are not changed in the Expert Advisor, but they are changed in the properties window on the Inputs tab. The discrepancy is obvious.

And did you try to use deinitialisation reasons?

UninitializeReason()
REASON_PARAMETERS

Maybe I was reading diagonally... But I use ...

 
Wex:

PS. (I don't seem to be much of a tongue twister on the forum. EA attached. Try changing the value of parameter A1 or A2 on the fly. The time "goes" and the EA does not "see" the new values of parameters. Although, you can make it initialize by pressing twice the button "AutoTrading". Of course, this is faster than taking the EA off the chart and reinstalling it. However, it is somehow illogical. However, it is up to you to decide.

Of course, it is much easier for me to make changes in my Expert Advisor than to wait by the sea. Therefore, I will ask one simple question once again. Does anyone know how to get information about a user who changed the value of an input parameter on the fly? I mean the fact that the value has changed and the point in time.

Really the newer builds of MT4 terminal are much better than the older ones. The value of the parameter is changed in this case when the Sleep() function is executed. This is progress indeed. The old builds didn't allow to change values at all, or rather didn't even allow user to get the window with input parameters. I have told customers that they should first disable the EAs using the button on the terminal panel, change their parameters and then enable the EAs again. But now the user has no obstacles, he has the illusion that the input parameters have been changed. Moreover, the new example shows that not only copies obtained in the init() block, but also the original input parameters are not changed in the Expert Advisor, but they are changed in the properties window on the Inputs tab. The discrepancy is obvious.

The same code, but without the loop inside start() works well. That must be the problem.
Files:
PROBLEM.mq4  2 kb
 
Wex:

PS. (I don't seem to be much of a tongue-twister on the forum.


Very much so.

1. The MQL4 language is dedicated to a special forum. Not this one.

2. You haven't read the MQL4 documentation, either old or new

Reason: