Not for MT developers! What to replace INIT_PARAMETERS_INCORRECT with ? - page 7

 
Сергей Таболин:

You seem to be the one who has completely missed the point. So your overconfident "advice" goes to hell!

It won't go down the drain))

Your amateurish question is answered, so is my overconfident advice.

You're not a moderator or administrator, so it's not up to you to decide who gets screwed.

 
TheXpert:

A person does not even have to understand the bases of genetic algorithms in order to press the optimisation button. just press the button.

No, that's as far as drying cats in the microwave goes.

No need to encourage this consumerist attitude of "I pressed the button, why isn't it working?!?".

ps: my post has nothing to do with the use of genetics.

 
Сергей Таболин:

You are fundamentally wrong.

Once again, as a user I see: Optimisation Slow/Quick.

That's it, I'm not interested. Neither as in-depth knowledge, nor in the light of fundamental things.

Is this your way of life? I'm afraid that such an amateurish approach to things will get you into a lot of trouble. Especially in financial matters. If you don't want to understand, you will be fodder for those who do.

If it says "fast" and "slow", the first thought that should occur to a reasonable person is: Why is there a "slow", if the same results can be obtained quickly?

But to each his own.

 
Сергей Таболин:

That's right.

Only I'm inclined to think that the limitations should be addressed, as far as possible, by the developers. The same goes for weaknesses.

I try not to use genetic optimization at all. But when I have to, I don't want to get into the middle of these algorithms. Well, it's not for a user.

For example, I sit at my computer, I just click the keys and I don't care at all what happens from the moment I press the key until the character appears on the screen. I am not interested at all in how the processor, graphic card, screws, coolers, how they interact. It's not for the average user either.

Well, that's exactly why - you have to understand that pressing a symbol button is meant to get a single symbol. And there are limits to, say, click speed. And you're trying to press the button 50 times per second, and you resent that it didn't display 50 characters.

Question - the ability to perceive 50 characters per second - should this restriction be eliminated? Wouldn't most users find it worse, with a rattle of the contacts being perceived as characters?

 
TheXpert:

One does not even have to understand the bases of genetic algorithms in order to press the optimisation button. just press the button.

Why should he?

If he should not understand - he should not ask "why I got this rubbish". If it worked, then it "just worked". It was designed that way.

Any tool requires a certain level of understanding. This does not preclude the use of black boxes, but even when using black boxes, one must clearly understand the basic patterns by which the black box functions.

 

Gentlemen comrades!

We are slipping into a discussion about who understands what and if they should or should not understand it. And the substantive question has been relegated to the back burner.

I don't know the mechanisms of genetics, so make some effort to understand what I mean.

There are 117649 variants (passages). Of those, only 1953 are permissible. Basically, the really unacceptable ones are 1 (000000)!!! And 115695 are repeats. Different variations of those 1953 "permissible" ones. To save time and resources, I exclude them by INIT_PARAMETERS_INCORRECT.

Next. Genetics collects the first population of 512 individuals. Right?

And this population immediately includes 502 "unacceptable" individuals. 10 working individuals is not enough. I agree.

But 512 is only 1/4 of 1953 (approximately).

Without going into further digging into genetics, it's not clear to me why the first population can't be assembled from only the "permissible" parameters?

And, in fact, what prevents subsequent populations from being collected only from valid parameters???
 
Andrey Khatimlianskii:

Nah, that's as far as drying cats in the microwave goes.

There's no need to encourage this consumerist attitude of "I pressed the button, why isn't it working?!

I'm just talking about this button. I explained my position above. I'll tell you more, I know genetic algorithms, it doesn't help me optimize in any way
 

Among other things, I personally only use INIT_PARAMETERS_INCORRECT in optimisation mode to sift out parameters that are not, literally, invalid, but simply unnecessary passes.

As an example:

input   bool   использовать_параметр   = true;
input   int    парам_1                 = 5;
input   int    парам_2                 = 12;
input   int    парам_3                 = 100;
input   int    парам_4                 = 1;

........

So, if during the test and during the work of the Expert Advisor whenusing_parameter = false its parameters have absolutely no importance, then during optimization the search of these parameters is just unnecessary, soINIT_PARAMETERS_INCORRECT is outputexcept for a single pass with the initial values. This saves a lot of time. After all, there are a whole bunch of useless passes for one valid pass. And genetics treats sifting out useless passes as a crude error.

Developers, instead of somehow solving this problem, send you to study this very genetics with bans applied. So that they had time to study it, I suppose.

I repeat once again: the user doesn't need to know how genetics works! It's up to the developers to find a solution to this problem.

 
Сергей Таболин:

Among other things, I personally only use INIT_PARAMETERS_INCORRECT in optimisation mode to sift out parameters that are not, literally, invalid, but simply unnecessary passes.

As an example:

So, if during the test and during the work of the Expert Advisor whenusing_parameter = false its parameters have absolutely no importance, then during optimization the search of these parameters is just unnecessary, soINIT_PARAMETERS_INCORRECT is outputexcept for a single pass with the initial values. This saves a lot of time. After all, there are a whole bunch of useless passes for one valid pass. And genetics treats sifting out useless passes as a crude error.

Developers, instead of somehow solving this problem, send you to study this very genetics with bans applied. So that they had time to study it, I suppose.

I repeat once again: the user doesn't need to know how genetics works! But finding a solution to this problem is a task for the developers.

You have 4 parameters, so you need to organise how these 4 parameters work only with the correct values, then genetics may be of use.

 
Сергей Таболин:


There are 117649 options (passes). Of these, only 1953 are valid. In principle, the really unacceptable ones are 1 (000000)!!! And 115695 are repeats. Different variations of those 1953 "permissible" ones. To save time and resources I exclude them by INIT_PARAMETERS_INCORRECT.

Personally, I mostly use INIT_PARAMETERS_INCORRECT only inoptimization mode precisely to sift out parameters which are not inadmissible, literally, but simplyunnecessary passes.

This is exactly your error: there are no "unnecessary" passes in genetics. It lays out all on the shelves, sifting out unnecessary, at the expense of which time and resource saving is finally achieved. And you only distract it.

In fact, you contradict yourself. First you say that you want everything to work by itself by pushing a magic button, without any additional effort on your part. But at the same time you create shamans in the code, supposedly helping the optimization algorithm.

In short, everything is clear now:

Sergei Tabolin:

How about this:

121

then the result will be like 21. And a chain of 21 would repeat that result. Duplication, extra time for, in principle, useless runs...

You don't have to eliminate anything by INIT_PARAMETERS_INCORRECT. Calculate 121 in accordance with your program logic, and genetics will do its job, and the result will be obtained in less than 1953 passes (I hope).

If you optimize using the slow complete search, then of course extra passes are not needed. You can introduce an additional parameter in your Expert Advisor that sets the type of optimization. If it is a full search, the extra passes are rejected, while if it is genetic, they are not. It is a pity that MQL does not provide a possibility to know the optimization type. The developers should ask to add such a function.

Reason: