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

 
zaskok:

Hay métodos heurísticos que son los más adecuados para optimizar los sistemas de negociación. Para eso están personalizados, a diferencia de los GA universales. ¿Crees que sería posible sustituir el único método heurístico del probador por uno propio escrito en MQL5? Si vamos a mejorar drásticamente el probador en términos de personalización de los datos de entrada, entonces sería razonable personalizar los métodos de optimización (los criterios de optimización personalizados están disponibles desde hace tiempo) para darle el mejor rendimiento.

Si quieres algo diferente a GA, entonces especifica estos métodos exactamente por su nombre y da argumentos con pruebas directas de las ventajas, por favor.

Pero la pregunta más importante es: ¿qué es exactamente lo que no te gusta de GA? ¿No encuentra el área de solución para usted? ¿Ni siquiera con el método de tanteo sucesivo de 10 veces se consigue una idea de los grupos con las características deseadas?

Por supuesto que sí. Muy rápido y eficiente. Decenas o cientos de miles de veces más rápido que la fuerza bruta habitual.

¿Obtiene resultados más rápidos o mejores con otros métodos (monte carlo o annealing, por ejemplo)? No es un hecho.

Pero aquí está el hecho de que los criterios de evaluación de la ejecución de nuestro algoritmo genético dan a cada programador la libertad de implementar sus propias variaciones de selección. Este mecanismo es esencialmente la clave para crear nuestra propia heurística.

Además, disponemos de funciones de control/anulación MQL5 para los parámetros de entrada, lo que nos permite implementar la enumeración de parámetros no numéricos/no lineales virtualizándolos en contadores numéricos lineales especiales. Por ejemplo, toma 30 parámetros no numéricos, incluidos los datos de los archivos, los convierte en un contador de 64 bits[i] y los retuerce como parámetro de trabajo. Es el programador el que decide qué hay dentro. Y la función de su propio criterio de evaluación también ayuda a crear su propio método heurístico.

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

Hay métodos heurísticos que son los más adecuados para optimizar los sistemas de negociación. Precisamente para eso están desarrollados, a diferencia de los AG universales. ¿Crees que sería posible sustituir el único método heurístico del probador por uno propio escrito en MQL5? Si vamos a mejorar drásticamente el comprobador en cuanto a la personalización de los datos de entrada, sería razonable personalizar los métodos de optimización (hace tiempo que existen criterios de optimización personalizados) para darle el mejor rendimiento.

Aplico este método para buscar los extremos. Por ejemplo, este es el aspecto de la búsqueda de los máximos de la función:

y esta es la búsqueda en sí misma:

 

Esto es en el probador de MT5, incluyendo la visualización en 3D.

 
Renat:
Decidimos abrir interfaces para escribir nuestras propias fuentes de datos para MT5.

Podrá escribir sus propias fuentes de datos, incluidas las fuentes de datos rltime. Esto permitirá conectar cualquier dato, incluido el historial detallado y los bombos de nivel 2.

Por defecto, proporcionaremos una serie de fuentes de datos internas, incluidas las que no están en línea. Los personajes virtuales también estarán disponibles en el probador.

Todo esto es gratuito, por supuesto.

¡Aleluya! Cuántos años pidiendo y aquí estamos por fin... Hasta las lágrimas de alegría y emoción fluyen:)

Personalmente, siempre me ha perjudicado la falta de historial para MT5. Tuve que realizar investigaciones en programas de terceros como Wealth-Lab y utilizar MT5 para escribir robots de trading. Ahora no habrá necesidad de programas de terceros.

 
forexman77:

Cuando hay demasiadas variables que optimizar, hay una alta probabilidad de ajustarse a la historia.

A medida que crecen las variables, el tiempo de optimización crece exponencialmente y no hay forma de evitarlo.

Hay una forma de salir de esto, un ordenador súper potente del tamaño de una casa)

Estoy familiarizado con este problema, y he elaborado un algoritmo para resolverlo. Lo que no entiendo es que vuelvan a decidir por la fuerza que la genética es mejor que la fuerza bruta... No lo creo y hay razones y ejemplos positivos, por ejemplo Profinity se creó justamente probando variantes, ahora su relevancia está en el pasado. pero sin embargo.

Una vez más, no está claro por qué hay que cortar un mercado tan grande de agentes remotos, ¿están tan ocupados como quieren? .... no es así, el 80% (en mi opinión) de los existentes están ociosos, y luego cortan su frente de trabajo potencial...

 
Renat:

Esto es en el probador de MT5, incluyendo la visualización en 3D.

Eso es genial no sabía de esto, solo que no me funcionó, las posiciones de los interruptores en 3D están inactivas, ¿debe haber algo especial en el código?
 
IvanIvanov:
Genial, no conocía esto, pero no me ha funcionado, el cambio de posiciones en 3D está inactivo, ¿hay algo especial en el código?
Visualización 3D del probador de estrategias de MetaTrader 5
 

¡О ! ¡Bravo, administradores!

¿Entiendo que la depuración de los datos históricos aparecerá finalmente?

 
Renat:

Si quieres algo diferente a la AG, entonces di estos métodos exactamente por su nombre y da argumentos con pruebas directas de los beneficios, por favor.

Pero la pregunta más importante es, ¿cuál es exactamente su problema con GA? ¿No encuentra el área de solución para usted? ¿Ni siquiera con el método de tanteo sucesivo de 10 veces se consigue una idea de los grupos con las características deseadas?

Por supuesto que sí. Muy rápido y eficiente. Decenas o cientos de miles de veces más rápido que la fuerza bruta habitual.

¿Obtiene resultados más rápidos o mejores con otros métodos (monte carlo o annealing, por ejemplo)? La verdad es que no.

Es bastante problemático traer una prueba sólo para ti, ya que no respondes correctamente a la argumentación pública de tu miopía en algunos asuntos. Y este hilo, que tú mismo iniciaste, sirve como prueba culminante, por desgracia, de esa afirmación. Por supuesto, no han sido otros los que han reclamado y pedido esto durante años, y tú supuestamente te has repelido.... Pero lo que fue, es lo que fue. Sin embargo, demostrar que está equivocado parece ser algo inútil, ya que es el factor humano, y no la lógica, el que hace la evaluación.

Por eso voy a dar argumentos lógicos a favor de los métodos de optimización heurística que son algo diferentes de los AG, no para ti sino para los usuarios del foro. A continuación se incluyen algunos extractos del artículo que he citado anteriormente + mis tensiones a las que debería prestar especial atención:

Todos los métodos de optimización estocástica tienen un inconveniente en común: pueden detenerse en algún extremo local y perder de vista el óptimo. Para evitarlo, es necesario maximizar las áreas de muestreo y el número de iteraciones. Pero esto perjudica la velocidad de cálculo. Así que debemos buscar siempre la media de oro.


Sin embargo, si lo pensamos bien, no necesitamos el extremo global en sí mismo si no hay convergencia hacia él. Es decir, si no hay una disminución condicionalmente uniforme alrededor del extremo, es muy probable que este extremo global sea aleatorio y nos sirva de poco, ya que es inadecuado y estropeará nuestros cálculos. Por eso es tan importante estudiar los parámetros en torno al extremo. Si hay convergencia, significa que hay un sistema y que se puede seguir estudiando esta estrategia.

Como ya he mencionado anteriormente, es importante estudiar el área alrededor del extremo y por lo tanto decidí converger hasta el final y probar todas las estrategias vecinas en la última iteración. No he jugado con los gradientes y he hecho que la convergencia sea estática como porcentaje de la muestra inicial. Significa que decidimos desde el principio cuánto cortar la matriz multidimensional en un 1% o un 20% después de cada iteración. Además, decidimos de inmediato, dadas nuestras limitaciones de tiempo, cuántas estrategias tomaremos de la matriz en cada iteración para probarlas. Así, el tamaño de la matriz no nos importa en absoluto, ¡sabemos exactamente cuántas iteraciones y en qué volumen vamos a iterar! Esta es la belleza de los métodos estocásticos.

Después de la primera iteración, cuando se ha explorado el primer espacio, debemos reducir de alguna manera el área de exploración para la siguiente muestra. Pero aún no sabemos casi nada de este espacio y me parece bastantetemerario cortar zonas desconocidas. En general, el algoritmo está diseñado para encontrar el máximo global, y nos interesan todos los máximos locales y globales.

Necesitamos conocer todos los parámetros en los que la estrategia puede obtener beneficios. Tal vez una estrategia en algunos parámetros produce buenos beneficios, pero más arriesgados, mientras que en otros parámetros produce un beneficio ligeramente menor, pero resulta ser más estable y menos arriesgada, y si seguimos nuestro algoritmo, podemos perderla de vista.

Eliminamos significativamente las peores estrategias del espacio de estudio. Así, en las siguientes iteraciones, exploramos las áreas con estrategias más rentables y no perdemos el precioso tiempo de prueba explorando áreas que no necesitamos. Finalmente, nuestra área de estudio converge a todos los máximos del espacio.

Supongamos que hemos explorado el espacio y tenemos una idea aproximada de cuántas alturas hay. ¿Qué nos aporta esto? Hasta ahora casi nada...
Tenemos que investigar esos máximos y averiguar si son de naturaleza aleatoria o sistémica. Para ello, el probador de optimizadores nos permite seleccionar las mejores estrategias y, además, explorar con más detalle las áreas que las rodean. Investigar aquellas estrategias que hemos pasado por alto durante la optimización. Ahora lo sabemos casi todo sobre los extremos del espacio. Los datos obtenidos pueden ser investigados más a fondo para detectar agrupaciones, sobreoptimización, etc. Pero esa es otra historia.

No se trata de este artículo, sino de los principios generales de búsqueda y optimización de la CT que no se discuten en casi ninguna parte. Por lo tanto, el AG no es lo que queremos tener en el arsenal de la optimización del ST.

Pero aquí está el hecho de que los criterios de evaluación de ejecución propios de nuestro algoritmo genético dan a cada programador la libertad de implementar sus propias variaciones de selección. Este mecanismo es esencialmente la clave para crear nuestra propia heurística.

Además, disponemos de funciones de control/anulación MQL5 para los parámetros de entrada, lo que nos permite implementar la enumeración de parámetros no numéricos/no lineales virtualizándolos en contadores numéricos lineales especiales. Por ejemplo, toma 30 parámetros no numéricos, incluidos los datos de los archivos, los convierte en un contador de 64 bits[i] y los retuerce como parámetro de trabajo. Es el programador el que decide qué hay dentro. Y la función de su propio criterio de evaluación también ayuda a crear su propio método heurístico.

Nunca he oído hablar de las "funciones MQL5 para la gestión/redefinición de los parámetros de entrada" - dame un enlace.
 
event:

Aplico este método para encontrar los extremos. Por ejemplo, así es como se ve la búsqueda de los máximos de una función:

Gracias. ¿Podría proporcionar la fórmula de su función aproximada para tratar de encontrar sus extremos locales en OnTester con el GA regular - para la comparación.

Sería interesante escuchar de ti algunas palabras constructivas sobre el método (descripción, fuentes, pros/contras).