
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Search on the skin function from the article using the lbfgs method.
I did not understand what thousand parameters we are talking about. If you have an example of such a function, please share it.
I don't know which Skin we are talking about, but the original Skin test function and several others were developed by @Andrey Dik in this thread in 2010 and since about 2020 you can find and view the formula here \MQL5\Experts\Examples\Math 3D\Functions.mqh and here \MT5\MQL5\Experts\Examples\Math 3D Morpher\Functions.mqh. This is an interesting function, but it is a simple one. Later he developed other benchmarks such as Hilly, Forest and Megacity.
As for testing on two-dimensional, and even more so onedimensional functions, it was said above that there is no practical sense, as most AOs solve them elementary, even the simplest algos with random (there are superfast PRNGs) will show surprisingly high results, creating an illusion of high efficiency and speed. Therefore, dimensions of 10 and higher are considered. Increasing the dimensionality can be achieved by duplicating one-dimensional benchmarks or two-dimensional benchmarks (the sum obtained is divided by the number of test functions), so that the min and max of the test function are always known regardless of the dimensionality. This is a common technique to increase the dimensionality and still reliably know the test function definition area.
About "equalise". OK, let's make it equal, but it won't make them feel any better. Most population AOs feel good with a population size of 50 (some smaller, e.g. 10, some larger, e.g. 100), if we limit the number of FF runs to 10 000 epochs, we consider epochs = 10 000 / population size, we get 10 000 / 50 = 200. Thus, we just need to run 50 times gradient methods with different initial position in space and take the best solution from them, thus simulating the population. And so repeat it several times and calculate the average of these best values. This way there will be complete "equality of conditions", only if before the methods had a chance to find a solution in 10,000 iterations, now there will be 200 iterations but 50 attempts.
Let's see what we get out of it. Let's fix the script from this article for L-BGFS to simulate the population.
And we get these results:
LBFGS|limited memory BFGS method for large scale optimization|0.9|
=============================
5 Hilly's; Func runs: 10000; result: 0.52942166492675
25 Hilly's; Func runs: 10000; result: 0.30437018399902754
500 Hilly's; Func runs: 10000; result: 0.253457675831117
=============================
5 Forest's; Func runs: 10000; result: 0.46775770774270276
25 Forest's; Func runs: 10000; result: 0.20030246823425313
500 Forest's; Func runs: 10000; result: 0.15436391164477226
=============================
5 Megacity's; Func runs: 10000; result: 0.3046153846153846
25 Megacity's; Func runs: 10000; result: 0.13384615384615386
500 Megacity's; Func runs: 10000; result: 0.09492307692307773
=============================
All score: 2.44306 (27.15%)
27.15% is about 42nd place in the current ranking out of 45 places.
Now everyone is on a level playing field.
Attached to the post is the script for this test. All necessary inclusions can be found in the archive to the article.
Search on the skin ph-i from the article using the lbfgs method.
I did not understand what thousand parameters we are talking about. If you have an example of such a function, please share it.
Same as in the article. Taken from the terminal. It says it's one of the most complicated. Then it says it's very simple.
Read more carefully, Hilly was developed later and it is more complex than Skin. Skin belongs to the group of simple ones (like Rastrigin and most other famous ones), because 50% of the surface is exactly 50% in height. Everything is said in the articles.
All the necessary sources are in the archive to the article, study it.
Where is it written that it is "very" simple?Read more carefully, Hilly was developed later and it is more complex than Skin. Skin belongs to the simple group (like Rastrigin and most of the other famous ones) as 50% of the surface lies exactly 50% in height. All told in the articles.
All necessary sources are in the archive to the article, study it.
I check in python, I just need the code of the function, which is complex.
I use MQL only at the level of opening-closing trades.I check in python, I just need the code of a function that is complex.
I use MQL only at the level of opening-closing trades.Take the Hilly code from the article, run it through chat, it will be a python code.
Or Megacity, it is a very complex function for any AO.
Take the Hilly code from the article, run it through chat, it will be python code.
Or Megacity, it's very complex for any AO function.
And C_dimentional or whatever its name is, where to get it? To have a lot of parameters
And C_dimentional or whatever it is, where do you get it? To have lots of parameters.
here's a fresh (the article has it in the archive) core test function class:
Just throw a multidimensional (I mean - in one dimension of the array there are many cells, multidimensional space) array of any dimensionality into args, the method will scatter arguments from the array to two-dimensional functions. It is clear that if you throw an array with odd dimensionality, one cell will be discarded and will not participate in the calculations. I.e., this is a multidimensional test function with even number of dimensions.
I will release it later on the basis of one-dimensional ones, it will be more practical and it will be possible to build graphs more clearly.
The commented code is the ability to rotate the function by some angle. This is a head-scratcher for many AOs. It is not used anywhere yet.
It would be good to add to the benchmark the time for which the algorithm solves the problem. I, for example, am interested in time in the first place.