Seus símbolos e seus dados no Metatrader 5 - página 14

 
zaskok:

Acho que a maioria dos usuários ainda não ouviu falar em ACs. É por isso que os algoritmos milagrosos não são necessários muito mais do que ninguém.

Esse é o meu ponto.

zaskok:

Há uma sensação de deja vu que nunca sai deste fórum. Quando eles pedem provas de alguma afirmação. Mas, ao mesmo tempo, nenhum deles é aceito, pois não está claro o que deve ser fornecido para convencer.

Basta lembrar que a MetaQuotes é uma organização comercial. Só investirá recursos em qualquer desenvolvimento se o considerar lucrativo. Bem, é por aí que devemos começar.

Não acho que se deva procurar a " paranóia de Renat", é mais como "miopia econômica" - na verdade, uma vez que MetaTrader recebe assinaturas - as receitas da MetaQuotes vão aumentar em uma ordem de grandeza, e ele não se dá conta... Bem, eu acho que as ofertas têm que ser economicamente justificadas. Não conhecemos a "MetaQuotes kitchen", cujas decisões aumentaram e que não alteraram (ou diminuíram) o lucro... Só podemos especular...

 
Prival-2:

Eu vou apoiar ozaskok

Pessoalmente, nunca encontrei nenhum problema para o qual os algoritmos genéticos tenham provado ser a ferramenta mais apropriada. Além disso, nunca encontrei nenhum resultado de cálculo obtido através de algoritmos genéticos que me tenham impressionado positivamente.


A principal vantagem da GA não é que é "a melhor ferramenta para resolver um problema em particular", mas que é universal!

Para resolver uma equação quadrática, você pode aplicar a GA também, e ela encontrará perfeitamente uma solução com uma precisão aceitável. Embora, a conhecida fórmula seja muito mais adequada para este caso.

 

Para dizer de forma simples,

1. os usuários podem realmente não ter conhecimento de Ga, bem como de outros algoritmos. Isso não faz muita diferença.

2. Mesmo que haja um algoritmo que seja melhor que Ga (e para algumas tarefas certamente é), isso não significa necessariamente que será igualmente universal. Ou seja, uma análise comparativa deve ser feita sem perder o contexto da universalidade.

3. Nada impede a implementação de outros algoritmos por si mesmo.

Prival-2, muitas vezes você não precisa da ferramenta mais adequada, mas o suficiente (para otimizar estratégias de pele grossa é bastante aceitável).

Eu realmente gostaria de ver descrições de outros algoritmos.

 
Renat:

Você está tentando dialogar com ele para nada.

Este homem não usa MetaTrader 5 de forma alguma, e senta-se exclusivamente no 4. Você pode vê-lo em seus registros - ele não dirige o MT5 há anos, mas o critica.

Eu já o peguei há alguns anos atrás em "você teve um único lançamento do MT5 há muitos meses, como você consegue fazer avaliações e críticas? Ele também o negou, pois agora é seu próximo clone.

Comportamento familiar. Eu me lembro dele e estava discutindo meu produto MT5, ele acabou nem baixando uma demonstração dele. Mas ele sempre tem algo a dizer na série "Eu não estou familiarizado, mas eu julgo".
 
joo:

2. Minha AG é ainda melhor. :)

...

Então, quem quer não só balbuciar, mas também fornecer seus algoritmos para testes e análises comparativas, o que encerraria de uma vez por todas o assunto de "qual algoritmo é melhor"?


Em sua AG, a funçãoint NaturalSelection() não funciona de forma alguma, como você declarou no artigohttps://www.mql5.com/ru/articles/55.

Aqui está o teste:

// 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:

Como está indo a depuração no depurador em dados históricos? Esperemos que seja em breve ?

Já estamos trabalhando nisso. Os primeiros resultados estão chegando em breve
 
Prival-2:

Tente desmentir este cientista

Há muitos céticos a respeito da razoabilidade do uso de algoritmos genéticos. Por exemplo, Steven S. Schiena, professor do departamento de informática da Universidade Stony Brook, um famoso pesquisador de algoritmos, vencedor do prêmio IEEE, escreve[16]:

A genética é uma coisa tão universal, com a qual você pode otimizar qualquer coisa. Como a descida por gradiente, apenas muito mais versátil em termos de classe de problemas.

Isto significa que é sempre possível que qualquer problema surja com uma forma específica de otimização de tarefas que funcione melhor.

 
stringo:
Já estamos trabalhando nesta questão. Os primeiros resultados estarão disponíveis em breve.
Bravo! Estamos esperando.
 
Aqui está um link para uma descrição do Método de recozimento na 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 Há um exemplo em vídeo que explica como este algoritmo funciona. A partir dele você pode ver que se aproxima iterativamente do máximo e encontra quase o máximo em si. Mas também encontra outros máximos. O número de cálculos é muito menor do que para GA, é mais compacto e muito mais próximo dos dados reais do que para GA e, de qualquer forma, fará melhor do que a GA incômoda em termos de velocidade.
 
Também é bom ter a opção de salvar e baixar arquivos do conjunto em Cinco. Uma coisa muito útil.