Discusión sobre el artículo "Algoritmos Genéticos: ¡Es fácil!" - página 14

 
Buenas tardes!!!
leí el artículo sobre el uso de algoritmos genéticos. Muy impresionado!!!

Tengo varias preguntas sobre el uso del indicador ZigZag, pero la más importante es ¿cómo dar señales del indicador para el entrenamiento?

el indicador tiene un paso variable.
Gracias de antemano.
 
Debugger:
1) He leído el artículo sobre el uso de algoritmos genéticos. Muy impresionado!!!

2) ¿Cómo se alimentan las señales del indicador para la formación?

3) El indicador tiene un paso variable.

Pido disculpas por mi ligera corrección de su mensaje. Espero su comprensión. Gracias de antemano. :)

Entonces

1) Gracias.

2) No lo estoy lanzando de ninguna manera. El artículo busca los extremos de la Alternativa ZZ, y compara el beneficio total en pips con el beneficio del indicador ZZ (que está preestablecido por un script especial para el beneficio máximo teniendo en cuenta el spread).

3) Y no importa para la demostración de las capacidades de UGA. :)


ZЫ. Si no he cubierto sus preguntas lo suficiente, pregunte más - voy a tratar de ayudarle en la medida de mis posibilidades (o aquellos que ya han entendido el trabajo del algoritmo UGA responderá).

 

Gran artículo, justo buscaba algo similar.

Una aclaración:

3.10 GenoMerging. Заимствование генов

Este operador GA no tiene equivalente natural

Eso no es del todo cierto.

Este proceso en la naturaleza se llama transferencia horizontal de genes.

En general - respeto y respeto al autor, sólo es necesario envolver esta biblioteca en una clase, para garantizar la movilidad de uso.

De las observaciones sobre la conversión de bool a double - ¿aumenta la cantidad de cálculos?

Según entendí, para todos los genes se establece el mismo rango de variación y la misma precisión. El rango - no juega un papel especial, cualquier rango deseado puede ser "exprimido" en el requerido. Pero la precisión es más difícil, hay que llevarla al máximo. Y si necesita buscar 1000 valores diferentes para alguna variable, el mismo rango de búsqueda se asignará automáticamente a todas las demás variables, incluso a las variables bool. ¿No ocurrirá que el algoritmo gastará una gran parte de recursos computacionales para calcular los valores de dicha variable? Digamos, si tenemos una variable bool, un rango de -10 a 10, y una precisión de 0,1 - resulta que para el algoritmo en esta variable habrá cien DIFERENTES valores "verdaderos" y 100 DIFERENTES valores "falsos", dando los mismos dos valores de la función de aptitud. Además, la propia población puede contener muchos individuos diferentes que difieren sobre esta variable según el propio algoritmo, pero que son iguales porque el valor real de double es un bool.

¿No deberíamos introducir un array más, al menos estableciendo la precisión para cada gen?

 
Laryx:

1- Gran artículo, justo buscaba algo así.

2. Según tengo entendido, para todos los genes se establece el mismo rango de variación y la misma precisión. El rango - no juega un papel especial, cualquier rango deseado puede ser "exprimido" en el requerido. Pero la precisión es más difícil, hay que llevarla al máximo. Y si necesita buscar 1000 valores diferentes para alguna variable, el mismo rango de búsqueda se asignará automáticamente a todas las demás variables, incluso a las variables bool. ¿No ocurrirá que el algoritmo gastará una gran parte de recursos computacionales para calcular los valores de dicha variable? Digamos, si tenemos una variable bool, un rango de -10 a 10, y una precisión de 0,1 - resulta que para el algoritmo en esta variable habrá cien DIFERENTES valores "verdaderos" y 100 DIFERENTES valores "falsos", dando los mismos dos valores de la función de aptitud. Además, la propia población puede contener muchos individuos diferentes que difieren en esta variable según el propio algoritmo, pero que son iguales porque el valor real de double es un bool.

3. ¿No deberíamos introducir otro array especificando al menos la precisión para cada gen?

1. Gracias.

2. El artículo mantiene el algoritmo lo más simple posible ( proyecto de código abierto) para facilitar la comprensión del lector. Es un punto de partida para mejoras y embellecimientos según se desee.

3. Por supuesto, yo mismo utilizo un paso personalizable (precisión) para cada gen (proyecto cerrado).

 

Esta evolución de GA merece sin duda una atención honorable).

Y más aún teniendo en cuenta que, a diferencia de MT4, en MT5 la optimización sólo es posible hasta el penúltimo día. Teniendo en cuenta este matiz, este tema será cada vez más relevante para los usuarios y desarrolladores de neuroasesores. Y, por supuesto, no cabe duda de que los algoritmos genéticos son tan inseparables de los modelos matemáticos de las redes neuronales como el zapato izquierdo del derecho).

Así que me gustaría hacer una pregunta. Andrei, dime, basándote en esas pruebas y experimentos (y no dudo de que has hecho bastantes), ¿cuál es en tu opinión, y en relación con tu AG (y quizás no sólo con el tuyo) el que da mejores resultados en la optimización? ¿Tu GA o el GA interno del terminal?

Gracias de antemano por tu respuesta.

 
wiantin:

...¿cuál en tu opinión, y en relación a tu EA (y quizás no sólo al tuyo) da mejores resultados en la optimización? ¿Tu GA o el GA interno del terminal?

Mi AG da mejores resultados. Es más personalizable.

Y las últimas versiones implementan la búsqueda multicriterio con elementos de selección de élite.

Pero el optimizador interno también es muy bueno, si tuviera más ajustes y búsqueda multicriterio, no valdría para nada.

 
joo:

Y las últimas versiones implementan la búsqueda multicriterio con elementos de selección de élite.

¿Hay alguna posibilidad de familiarizarse con ellos?
 

array fuera de rango en 'UGAlib.mqh' (264,24)

al llegar a 1000 genes. no entiendo como aumentar el numero permitido de genes, pista quien sabe mejor en bibliotecas.

upd el error empezó a aparecer no solo al aumentar el número de genes...

upd 2 lo descubrí, el asunto no está en la librería, mql5 no acepta arrays de los tamaños que puse.

 
wiantin:
¿Hay alguna forma de familiarizarse con ellos?
No. Sólo si se me ocurre escribir un artículo de seguimiento.
 
ozer-man:

array fuera de rango en 'UGAlib.mqh' (264,24)

al llegar a 1000 genes. no entiendo como aumentar el numero permitido de genes, pista quien sabe mejor en bibliotecas.

upd el error empezó a aparecer no solo al aumentar el número de genes...

upd 2 lo descubrí, el asunto no está en la librería, mql5 no acepta arrays de los tamaños que puse.

El error se debe a que el tamaño de la segunda dimensión es fijo array[][const].

Para librarse de esta limitación hay que usar estructuras (o clases), algo así:

struct Сhromosome //cromosoma
  {
    float Gene[]; //genes.
  };
Сhromosome Population[]; // Población


ps. y como es que me he perdido dos posts enteros. :)