Algorithm Optimisation Championship. - page 45

 
Andrey Dik:

Your algorithm uses direct FF call from the algorithm, i.e. calling from *.ex5 to *.ex5. Can we call a special stop command from the executing script that correctly stops the optimization without using ExpertRemove()?

Are there any pitfalls, problems in this?

Just a reminder, today I have to provide an example of calling the algorithm in a test script in two variants, in which the following happens: 1. calling the FF from the test script; 2. calling the FF from the algorithm.

You can't. With a hint of that in mind, I recently tried to discuss various calling variants. That's why I suggested not measuring the time, but only removing it from the chart and discarding it when it reaches a prohibitive running time.
 
Yuri Evseenkov:

I wonder why such MQL promoters as Dmitry Fedoseyev and Andrey Dik do not want to explain everything popularly by a simple example.

But they can. The articlehttps://www.mql5.com/ru/articles/351 is an example of that.

Perhaps the reason is not the mass nature. Maybe they want to find such advanced users as themselves and arrange a get-together. Hence the limitation to MQL5, highly specialized jargon and lengthy spatio-temporal analogies.

About genetic algorithms very lucidly here https://habrahabr.ru/post/128704/

I've tried it here, no one seems to see it and does not want to.

But not in that thread, but in the previous one, which Belkonsky made and deleted. You could have asked here too. Although, in general society behaves correctly, why post here, if Belkonsky immediately comes to shit here.

 
Dmitry Fedoseev:
You can't. With a hint of this in mind, I recently tried to discuss the various callouts here. That's why I suggested not to measure the time, but only to remove it from the graph and discard it when it reaches a prohibitive running time.
And if inside *.ex5 function will check some variable all the time, internal or global for flag==false?
 
Andrey Dik:
And if inside *.ex5 function will check some variable permanently, internal or global for flag==false?

If a global variable of the terminal. But then there must be a requirement for participants to do this.

Here it may happen that command will be submitted in the middle of processing of one epoch and it will have to be interrupted, part of work done during an epoch will be done in vain.

 
Dmitry Fedoseev:

If a global variable of the terminal. But then there must be a requirement for participants to do this.

Here it may happen that a command will be submitted in the middle of processing one epoch and it will have to be interrupted, some of the work done in an epoch will be wasted.

Sure.

Then the script needs to be able to write a break flag to a global variable whenever it wants.

And the algorithm should check before the epoch starts to see if the flag is allowed.

In the check script example, this point (global check) will be reflected.

 
Andrey Dik:

Sure.

Then the script needs to be able to write a stop flag to a global variable when it wants to.

And the algorithm must check before starting the epoch to see if the flag is allowed.

In the check script example, this point (global check) will be reflected.

So the rules should require that before an epoch is executed, the existence of a variable with such a name should be checked (specify the name).
 
So, with this level of training and with many years of experience in the field, you invite people who hardly know what they are talking about to take part in the championship? Do you show them cartoons and say "participate, you can do it!"? Is it morally satisfying for you and a couple of other competitors to beat them? Why are you inviting them? Maybe the satisfaction lies not in the moral, but in the material dimension?
 
Реter Konow:
So, with such a level of training and many years of experience in the field, you invite people to the championship who have almost no idea what they are talking about? Do you show them cartoons and say "participate, you can do it"? Is it morally satisfying for you and a couple of other competitors to beat them? Why are you inviting them? Maybe the satisfaction lies not in the moral, but in the material dimension?

Well, firstly, there are not two experienced optimisers, but many more (the fact that few dare is another matter). Secondly, for those who are not very well prepared, what can they do now? - They can also take part in the event, there are no preliminary qualifiers.

Look at the championships from MQ, are green beginners banned there? - No, they didn't, and they were right.

There is no ban for "youngsters" either. Everyone is allowed to take part.

And thirdly, do I have to say, "Don't take part, you have no chance!"? - On the contrary, I said, "Everyone has a chance!" And they do, irrespective of the level of training.

 
Dmitry Fedoseev:
So in the rules write such a requirement - before performing an epoch check the existence of the change with so-and-so name (specify specifically).
OK.
 
Dmitry Fedoseev:

If a global variable of the terminal. But then there must be a requirement for participants to do this.

This can cause a command to be given in the middle of processing an epoch and have to be interrupted, some of the work done in an epoch will be done for nothing.

I think there is a solution, although I don't really like it. It was suggested by someone, maybe you.

You can stipulate in advance (through a special request in the code) that the number of runs should not be greater than such a number. Then the FF, which will count the number of calls when the allowed number is exceeded, will call ExpertRemove().

The algorithm will be warned and then, as they say, it's his own fault.)

Is it ok?