Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Señores. Si no es muy difícil, por favor denme algunos ejemplos del uso de la biblioteca UGA.
¿Qué tipo de ejemplos (sobre qué tema) te interesan?
alguno que use UGA, porque de los ejemplos del artículo no queda muy claro cómo funciona. en el artículo hay un ejemplo con zig-zag, ¿podemos tener ejemplos con otros indicadores (RSI, CCI....)?
Escribe un script en el que
1) carga en el array de datos del instrumento necesario para calcular el indicador
2) cálculo del indicador/es con algún conjunto de parámetros (estos parámetros del indicador deben ser optimizados).
3) determinación de los puntos de entrada/salida en función de las señales del indicador
4) cálculo de un indicador estadístico de interés (el número de pips ganados teniendo en cuenta el spread, drawdown, etc.).
Los puntos 2), 3), 4) son pasos en una iteración de GA - cálculo de FF para un individuo. Escriba una secuencia de comandos, y yo, a su vez, tratar de ayudarle a "tornillo" UGA a la misma.
PS. Dudo que alguien publique un ejemplo de negociación utilizando UGA - si alguien está seriamente comprometido en la investigación utilizando esta biblioteca (o cualquier otra biblioteca similar), entonces lo más probable es que estos desarrollos sean privados (el tiempo se dedica a estudiar algo que no está directamente relacionado con el comercio).
Muy buen artículo. Muchas gracias.
1) Por lo que veo, querías utilizar UGA para optimizar el entrenamiento de las NN. ¿Tuvo éxito?
2) ¿Cuáles eran los genes del cromosoma en este caso?
3) ¿Has desarrollado también tu propia librería de NNs o has encontrado alguna implementación de NNs existente que soporte la integración con MT5 y GA?
2) Los pesos y sesgos de las neuronas de una red los represento como genes del cromosoma.
3) He escrito mi propia realización de una red neuronal.
Andrey, buenos días. Gracias por UGA. Estoy tratando de aprender a utilizar su biblioteca por el "método científico" (en el ejemplo de UGA_script.mq5 y skin.mqh propuesto por usted). Si no te importa, dame una introducción adicional de cómo establecer correctamente los prámetros de entrada para resolver el problema de la formación de la red de Kohonen, cuando tenemos un conjunto de puntos en el plano, que tenemos que asignar (clasificar) a determinados núcleos. Es decir, tenemos N puntos con coordenadas (x,y), M kernels (que serán "desplazados" después del entrenamiento), función FF - "medida de proximidad". Según tengo entendido en UGA_script.mq5 parámetros deben establecerse de la siguiente manera: ChromosomeCount_P= ???? (no entiendo cómo establecer), GeneCount_P=2*M (2 coordenadas para cada núcleo), Epoch_P= ???? (no entiendo como ponerlo). Gracias de antemano.
Andrey, buenos días. Gracias por UGA. Estoy tratando de aprender a utilizar su biblioteca por el "método científico" (en el ejemplo de UGA_script.mq5 y skin.mqh propuesto por usted). Si no te importa, dame una introducción adicional de cómo establecer correctamente los parámetros de entrada para resolver el problema de entrenamiento de una red de Kohonen, cuando tenemos un conjunto de puntos en el plano, que necesitamos asignar (clasificar) a determinados núcleos. Es decir, tenemos N puntos con coordenadas (x,y), M kernels (que serán "desplazados" después del entrenamiento), función FF - "medida de proximidad". Según tengo entendido en UGA_script.mq5 parámetros deben establecerse de la siguiente manera:
1) ChromosomeCount_P= ???? (No entiendo cómo configurarlo),
2) GeneCount_P=2*M (2 coordenadas para cada núcleo),
3) Epoch_P= ???? (no entiendo cómo establecer).
Gracias de antemano.
1) Establecer 50 para empezar, si no es suficiente, aumentar el valor (no exagere, hasta 200-300, de lo contrario corre el riesgo de no esperar el resultado).
2) Sí.
3) Empieza con 50-100, si no es suficiente, aumenta el valor (no te pases, hasta 200-1000, de lo contrario corres el riesgo de no obtener resultados).
Los números son empíricos, puedes cambiarlos como quieras, centrándote en la velocidad de convergencia o en la precisión del resultado (en general, son requisitos mutuamente excluyentes, el término medio está en algún punto intermedio, perdón por el juego de palabras).
Estoy hurgando en la biblioteca.
Andrew, no entiendo por qué hay que calcular la función de aptitud ANTES de eliminar los duplicados de la población. Es costoso.
Yo controlaría la presencia de clones en la fase de generación de descendientes. (Cosa que haré, de hecho).
1) Andrew, no entiendo por qué hay que calcular la función de aptitud ANTES de eliminar los duplicados de la población. Es costoso.
2) Yo controlaría la presencia de clones en la fase de generación de descendientes. (Cosa que haré, de hecho).
1) No se realizan cálculos repetidos de FF, porque la comprobación se realiza en la base de datos histórica de cromosomas - si al menos una vez se ha realizado FF antes para tal individuo, el valor se toma de la base de datos.
2) Hay un matiz con el asentamiento de una nueva colonia en la población. Pero guardaré silencio al respecto. :) Hazlo de la forma que creas más correcta y cuéntame los resultados - después te contaré el matiz.
PS En general, y no en relación con este comentario, puede seguir muchas estrategias diferentes de búsqueda aleatoria GA, cada variante es digno de atención en cierta medida. Los resultados (tasa de convergencia, precisión de la búsqueda, atascamiento en extremos locales) dependerán casi directamente de las estrategias de búsqueda utilizadas.
1) No hay cálculos repetidos de FF, porque se comprueba la base de datos histórica de cromosomas: si se ha realizado un FF al menos una vez antes para ese individuo, el valor se toma de la base de datos.
2) Hay un matiz con el asentamiento de una nueva colonia en la población. Pero guardaré silencio al respecto. :) Haz lo que creas más correcto y cuéntame los resultados - después te contaré el matiz.
1) Bueno, bueno, bueno. Cuentacuentos. :) Ahí tienes al menos un error.
Así es como se comparan los números reales sólo por... mmmm... matemáticos, sí.
En tal comparación, una diferencia de quince dígitos después de un punto flotante reconoce los genes como diferentes. Y siempre habrá una diferencia, porque es el destino. ;)
Al menos tiene que ser así:
No dudo que hayas probado la eliminación de duplicados por separado del algoritmo de genes, así que debes tener la ilusión de que este fragmento funcione.
2) Qué misterioso es todo... Donde lo flaco es flaco, lo desgarrado es desgarrado. :)
Ahí todo es solucionable, con o sin matices. Vale, te enseño cómo lo he hecho.
1) Bueno, bueno, bueno. Cuentacuentos. :)
2) Ahí tienes al menos un error. Así es como se comparan los números reales sólo por... mmmm... matemáticos, sí. En tal comparación, una diferencia de quince dígitos después de un punto flotante reconoce los genes como diferentes. Y siempre habrá una diferencia, porque es el destino. ;)
Al menos tiene que ser así:
3) Y te pasa exactamente lo mismo al eliminar duplicados, no dudo que hayas probado la eliminación de duplicados por separado del algoritmo de genes, así que debes tener la ilusión de que este fragmento funcione.
4) Qué misterioso es todo... Donde lo flaco es flaco, lo desgarrado es desgarrado. :) Ahí todo es solucionable, con o sin matices. Vale, te enseño cómo lo he hecho.
1) ¿Cuentacuentos? Hmm, lamentablemente no entendí el humor. La comprobación de la base de datos ocurre en la función CheckHistoryChromosomes(chromos,historyHromosomes ) que se llama desde GetFitness(historyHromosomes). Por eso he dicho correctamente: no hay ejecuciones repetidas de FF.
2) La reconciliación con la base de datos se produce con la comprobación por genes. Y cada gen es normalizado por SelectInDiscreteSpace(temp,RangeMinimum,RangeMaximum,Precision,3) cuando aparece un nuevo cromosoma. Así que aquí tampoco hay "cuentos de hadas".
3) Véase 2)
4) No hay misterio. El código es abierto y transparente. Sí que hay un matiz (no está relacionado con problemas de implementación, sino con la calidad de la convergencia).