Sus símbolos y sus fuentes de datos en Metatrader 5 - página 14

 
zaskok:

Creo que la mayoría de los usuarios ni siquiera han oído hablar de los AG. Por eso los algoritmos milagrosos no son más necesarios que nadie.

Ese es mi punto.

zaskok:

Hay una sensación de deja vu que nunca abandona este foro. Cuando piden pruebas de alguna afirmación. Pero al mismo tiempo no se acepta ninguna de ellas, porque no está nada claro qué hay que aportar para convencer.

Recuerde que MetaQuotes es una organización comercial. Sólo invertirá recursos en cualquier desarrollo si lo considera rentable. Pues bien, de ahí deberíamos partir.

No creo que haya que buscar la " paranoia de Renat", es más bien "miopía económica" - de hecho, una vez que MetaTrader consiga suscripciones - los ingresos de MetaQuotes aumentarán en un orden de magnitud, y él no se da cuenta... Creo que las ofertas tienen que estar justificadas económicamente. No conocemos la "cocina de MetaQuotes", qué decisiones han aumentado y cuáles no han cambiado (o disminuido) el beneficio... Sólo podemos especular...

 
Prival-2:

Apoyaré azaskok

Personalmente, nunca me he encontrado con ningún problema para el que los algoritmos genéticos hayan resultado ser la herramienta más adecuada. Además, nunca he encontrado ningún resultado de cálculo obtenido mediante algoritmos genéticos que me haya impresionado positivamente.


La principal ventaja de la AG no es que sea "la mejor herramienta para resolver un problema concreto", sino que es universal.

Para resolver una ecuación cuadrática, también se puede aplicar el AG, y encontrará perfectamente una solución con una precisión aceptable. Aunque, la fórmula conocida es mucho más adecuada para este caso...

 

En pocas palabras,

1. los usuarios pueden, efectivamente, desconocer Ga, así como otros algoritmos. No hay mucha diferencia.

2. Incluso si hay un algoritmo que es mejor que Ga (y para algunas tareas seguramente lo es), no significa necesariamente que sea igual de universal. Es decir, un análisis comparativo debe ser sin perder el contexto de universalidad.

3. nada impide implementar otros algoritmos por uno mismo.

Prival-2, a menudo no se necesita la herramienta más adecuada, pero suficiente (para optimizar las estrategias de piel gruesa es bastante aceptable).

Me gustaría ver descripciones de otros algoritmos.

 
Renat:

Estás intentando dialogar con él para nada.

Este hombre no utiliza MetaTrader 5 en absoluto, y se sienta exclusivamente en el 4. Se puede ver en sus registros - no ha corrido MT5 durante años, pero lo critica.

Ya le pillé hace un par de años en el tema de "tuviste un único lanzamiento de MT5 hace muchos meses, ¿cómo te las apañas para hacer valoraciones y críticas?". Él también lo negó, ya que ahora es su próximo clon.

Comportamiento familiar. Recuerdo que él y yo estuvimos discutiendo sobre mi producto MT5, y terminó por no descargarse ni siquiera una demo del mismo. Pero siempre tiene algo que decir en la serie "No soy familiar, pero juzgo".
 
joo:

2. Mi GA es aún mejor. :)

...

Así que, ¿quién quiere no sólo balbucear, sino aportar sus algoritmos para que sean sometidos a pruebas y análisis comparativos, lo que cerraría de una vez por todas el tema de "¿qué algoritmo es mejor?"?


En su AG, la funciónint NaturalSelection() no funciona en absoluto como se indica en el artículohttps://www.mql5.com/ru/articles/55.

Aquí está la prueba:

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

¿Cómo va la depuración en el depurador de datos históricos? Esperemos que sea pronto...

Ya estamos trabajando en ello. Los primeros resultados llegarán pronto
 
Prival-2:

Intenta refutar a este científico

Hay muchos escépticos respecto a la razonabilidad del uso de algoritmos genéticos. Por ejemplo, Steven S. Schiena, profesor del departamento de informática de la Universidad de Stony Brook, un famoso investigador de algoritmos, ganador del premio IEEE, escribe[16]:

La genética es una cosa tan universal, con la que se puede optimizar cualquier cosa. Como el descenso de gradiente, sólo que mucho más versátil en cuanto a la clase de problemas.

Esto significa que siempre es posible para cualquier problema encontrar una forma de optimización específica para cada tarea que funcione mejor.

 
stringo:
Ya estamos trabajando en este tema. Los primeros resultados estarán disponibles en breve.
¡Bravo! Estamos esperando.
 
Aquí hay un enlace a una descripción del método de recocido en 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 Hay un vídeo de ejemplo que explica cómo funciona este algoritmo. De ella se desprende que se aproxima iterativamente al máximo y encuentra casi el máximo en sí mismo. Pero también encuentra otros máximos. El número de cálculos es mucho menor que en el caso del AG, es más compacto y mucho más cercano a los datos reales que el AG y, en cualquier caso, lo hará mejor que el engorroso AG en términos de velocidad.
 
También es bueno tener la opción de guardar y descargar archivos de conjuntos en Five. Una cosa muy útil.
Razón de la queja: