Your symbols and your datafeeds in Metatrader 5 - page 14

 
zaskok:

I think most users have not even heard of GAs. That's why miracle algorithms aren't needed much more than anyone.

That's my point.

zaskok:

There's a sense of deja vu that never leaves this forum. When they ask for proof of some statement. But at the same time none of them is accepted, because it is not at all clear what must be provided in order to convince.

Just remember that MetaQuotes is a commercial organisation. It will invest resources in any development only if it considers it profitable. Well, that's where we should start from.

I don't think that one should look for " Renat's paranoia", it's more like "economic shortsightedness" - in fact, once MetaTrader gets subscriptions - MetaQuotes revenues will increase by an order of magnitude, and he doesn't realize it... Well, I think the offers have to be economically justified. We do not know the "MetaQuotes kitchen", which decisions have increased and which have not changed (or decreased) the profit... We can only speculate...

 
Prival-2:

I will supportzaskok

I have personally never encountered any problem for which genetic algorithms have proven to be the most appropriate tool. Moreover I have never encountered any calculation results obtained through genetic algorithms which impressed me positively.


The main advantage of GA is not that it's "the best tool for solving a particular problem" but that it's universal!

To solve a quadratic equation, you can apply GA too, and it will perfectly find a solution with an acceptable accuracy. Although, the well-known formula is much more suitable for this case...

 

To put it simply,

1. users may indeed be unaware of Ga as well as other algorithms. It doesn't make much difference.

2. Even if there is an algorithm that is better than Ga (and for some tasks it most certainly is), it doesn't necessarily mean that it will be equally universal. That is, a comparative analysis must be without losing the context of universality.

3. nothing prevents to implement other algorithms by oneself.

Prival-2, you often need not the most suitable tool, but enough (for optimizing thick-skinned strategies is quite acceptable).

I would really like to see descriptions of other algorithms.

 
Renat:

You are trying to have a dialogue with him for nothing.

This man doesn't use MetaTrader 5 at all, and sits exclusively on 4. You can see it in his logs - he hasn't run MT5 for years, but he criticises it.

I already caught him a couple of years ago on "you had a single launch of MT5 many months ago, how do you manage to make assessments and criticisms?". He too denied it, as he is now his next clone.

Familiar behaviour. I remember him and I were discussing my MT5 product, he ended up not even downloading a demo of it. But he always has something to say in the "I'm not familiar, but I judge" series.
 
joo:

2. My GA is even better. :)

...

So, who wants to not only babble, but also provide their algorithms for testing and comparative analysis, which would once and for all close the subject of "which algorithm is better?"?


In your GA, theint NaturalSelection() function does not work at all as you stated in the articlehttps://www.mql5.com/ru/articles/55.

Here is the test:

// 256+255+253+249+241+225+193+129+50+ -1 = 1850  сумма всех  выпадений

int PopulChromosCount = 10;
double Population[][10];
int count[10];

void OnStart(){
        ArrayResize(Population,2);
        Population[0][0] = 256.0;
        Population[0][1] = 128.0;
        Population[0][2] = 64.0;
        Population[0][3] = 32.0;
        Population[0][4] = 16.0;
        Population[0][5] = 8.0;
        Population[0][6] = 4.0;
        Population[0][7] = 2.0;
        Population[0][8] = 0.0;
        Population[0][9] = -1.0;
                
        ArrayInitialize(count,0);
        for(int k=0; k<1850; ++k){
                int idx = NaturalSelection();
                ++count[idx];
        }
        printCount(count);
}
  
//Естественный отбор.
int NaturalSelection(){
   int    i=0,u=0;
   double p=0.0,start=0.0;
   double          fit[][2];
   ArrayResize(fit,PopulChromosCount);
   ArrayInitialize(fit,0.0);
   double delta=(Population[0][0]-Population[0][PopulChromosCount-1])*0.01-Population[0][PopulChromosCount-1];

   for(i=0;i<PopulChromosCount;i++)
     {
      fit[i][0]=start;
      fit[i][1]=start+MathAbs(Population[0][i]+delta);
      start=fit[i][1];
     }
   p=RNDfromCI(fit[0][0],fit[PopulChromosCount-1][1]);

   for(u=0;u<PopulChromosCount;u++)
      if((fit[u][0]<=p && p<fit[u][1]) || p==fit[u][1])
         break;

   return(u);
}

//Генератор случайных чисел из заданного интервала.
double RNDfromCI(double RangeMinimum,double RangeMaximum)
  { return(RangeMinimum+((RangeMaximum-RangeMinimum)*MathRand()/32767.5));}

void printCount(int &ncount[]){
        int summ = 0;
        for(int k=0;k<ArraySize(ncount);++k){
                summ+=ncount[k];
        }
        Print("Сумма выпадений= "+IntegerToString(summ));
        Print("VFF 256: count= " + IntegerToString(ncount[0]) + " заявлено 256");
        Print("VFF 128: count= " + IntegerToString(ncount[1]) + " заявлено 255");
        Print("VFF  64: count= " + IntegerToString(ncount[2]) + " заявлено 253");
        Print("VFF  32: count= " + IntegerToString(ncount[3]) + " заявлено 249");
        Print("VFF  16: count= " + IntegerToString(ncount[4]) + " заявлено 241");
        Print("VFF   8: count= " + IntegerToString(ncount[5]) + " заявлено 225");
        Print("VFF   4: count= " + IntegerToString(ncount[6]) + " заявлено 193");
        Print("VFF   2: count= " + IntegerToString(ncount[7]) + " заявлено 129");
        Print("VFF   0: count= " + IntegerToString(ncount[8]) + " заявлено  50");
        Print("VFF  -1: count= " + IntegerToString(ncount[9]) + " заявлено  -1");
}
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF  -1: count= 6 заявлено  -1
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF   0: count= 13 заявлено  50
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF   2: count= 21 заявлено 129
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF   4: count= 19 заявлено 193
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF   8: count= 40 заявлено 225
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF  16: count= 74 заявлено 241
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF  32: count= 121 заявлено 249
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF  64: count= 218 заявлено 253
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF 128: count= 423 заявлено 255
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF 256: count= 915 заявлено 256
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	Сумма выпадений= 1850

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
Laryx:

How is debugging in debugger on historical data going ? Hopefully it will be soon ?

We are already working on it. First results are coming soon
 
Prival-2:

Try to disprove this scientist

There are a lot of skeptics concerning the reasonability of using genetic algorithms. For example, Steven S. Schiena, professor of the department of computer science at Stony Brook University, a famous algorithm researcher, winner of IEEE prize, writes[16]:

Genetics is such a universal thing, with which you can optimise anything. Like gradient descent, only much more versatile in terms of the class of problems.

This means that it is always possible for any problem to come up with a task-specific way of optimizing that will work better.

 
stringo:
We are already working on this issue. The first results will be available soon.
Bravo! We are waiting.
 
Here is a link to a description of the Annealing Method on Wikipedia. https://ru.wikipedia.org/wiki/%C0%EB%E3%EE%F0%E8%F2%EC_%E8%EC%E8%F2%E0%F6%E8%E8_%EE%F2%E6%E8%E3%E0 There is a video example explaining how this algorithm works. From it you can see that it iteratively approaches the maximum and finds almost the maximum itself. But it finds other maxima as well. The number of calculations is much less than for GA, it is more compact and much closer to the real data than GA and in any case will do better than cumbersome GA in terms of speed.
 
It's also good to get the option of saving and downloading set files in Five. A very handy thing.