Discusión sobre el artículo "Simulador de estrategias personalizado basado en cálculos matemáticos rápidos"

 

Artículo publicado Simulador de estrategias personalizado basado en cálculos matemáticos rápidos:

El artículo describe el proceso de construcción de un simulador de estrategias personalizado y un analizador de pasadas de optimización de creación propia. Después de leerlo, usted entenderá cómo funciona el modo de cálculos matemáticos y el mecanismo de los llamados frames; también aprenderá a preparar y cargar sus propios datos para los cálculos y a utilizar algoritmos eficientes para la compresión de los mismos. Además, este artículo será de interés para cualquier persona interesada en las distintas formas de almacenamiento de la información del usuario en un experto.

En los parámetros de optimización, indicaremos el rango de cambio de x: valor inicial — 0.01, salto — 0.01, stop — 10. Después de que todo esté listo, iniciaremos el simulador de estrategias. Este realizará su trabajo casi al instante. Después de ello, abriremos el gráfico de optimización y elegiremos el tipo "Gráfico lineal" en el menú contextual. Ante nosotros, tendremos la función del seno en su interpretación gráfica:

Fig. 3. Representación gráfica de la función de seno

Autor: Vasiliy Sokolov

 

Terminé de leer el código fuente de ResourceCreator.mqh. Me surgieron algunas preguntas

  1. ¿Por qué decidieron no utilizar FileLoad y FileSave estándar?
  2. Los desarrolladores dijeron que la directiva tester_file pasa el archivo correspondiente a los Agentes sólo después de la compresión forzada. Entonces, ¿es razonable la variante de meter las comillas dentro (creo que lo decidieron así - aún no he seguido leyendo) de EX5 o es una alternativa a tester_folder? ¿Has investigado la velocidad en este caso?
  3. ¿Entiendo correctamente que en cada pasada descomprimes el recurso interno?
 
El momento de creación de la posición es el más interesante en esta implementación. Sus campos están protegidos de modificaciones externas, pero el método estático CreateOnBarOpen devuelve un objeto de la clase con los parámetros correctamente configurados. Es imposible crear un objeto de esta clase de otra forma, excepto llamando a este método. Así es como se implementa la protección de datos contra cambios involuntarios.

Deben haber olvidado quitar el constructor de public. No entiendo sólo ¿por qué no usaron un constructor normal?

 
Cada ejecución puede almacenarse como un archivo independiente dentro de un único archivo zip.

Esta solución tiene un punto débil en forma de salida anormal del terminal. Supondrá la pérdida de datos de la optimización interrumpida. Y, como ya se ha notado, los archivos mqd no se pueden volver a leer.

Además, esta solución no le permite utilizar el Analizador en movimiento.

 

Un buen artículo para empezar Notas

  • En realidad se sugiere utilizar una API de comercio propio. Lo que casi anula el desarrollo. Tiene sentido tener tu propio tester dentro de MT5, cuando la API de trading para tu tester coincide con la estándar. De lo contrario resulta que usted puede utilizar algún probador ya hecho de los competidores o el mismo R con el mismo beneficio.
  • Con el mecanismo de símbolos personalizados no está muy claro para qué podría ser necesario un comprobador de este tipo.
  • Manipulaciones de bytes sería bueno ver en una forma universal.
  • Falta la comparación de la velocidad de tu comprobador y el estándar.
  • Es razonable utilizar su probador para tal fin, así

Foro sobre el comercio, los sistemas automatizados de comercio y probar estrategias de negociación.

Singularidad tecnológica de MetaTrader 5

fxsaber, 2017.12.14 14:11 pm.

Para los símbolos personalizados, hay una opción para lanzar ticks a través de CustomTicksAdd. ¡Esto es algo muy práctico! Por analogía, me gustaría ver TesterTicksAdd así como TesterCreate, TesterDestroy. Así que usted puede lanzar sus propias garrapatas en el probador y leer el entorno comercial del estado actual del probador.

Sería un gran avance en algo-trading mejor que los feeds personalizados, porque el esquema de escribir un TS cambiaría completamente. Todas las implementaciones de TS anteriores se convertirían de una vez en el viejo estándar de la lógica de trading algorítmico.

¡Gracias al autor!


¿Por qué se utiliza FrameNext sin while?

[Eliminado]  

Cool, pero demasiado complicado como me parece a mí ... realmente, usted puede encontrar algún probador ready-made / optimizador en python y llamarlo si es necesario, incluso en gpu. Debe haber un montón de probadores de python.

por cierto, no hay ni un solo articulo sobre el uso de scripts python en mt5, y esto puede ser muy productivo.

 
fxsaber:
  • Byte manipulación le gustaría ver en una forma universal.

No lo entiendo. ¿Qué es una vista universal?

fxsaber:

ZY ¿Por qué se utiliza FrameNext sin while?

La última ejecución se pasa a OnTesterPass, que carga FrameNext. While no es necesario en este caso.
 
fxsaber:

Esta solución tiene un punto débil en forma de salida anormal del terminal. Causará la pérdida de datos de la optimización interrumpida. Y, como ya habrás notado, los archivos mqd no se pueden volver a leer.

Además, esta solución no permite utilizar el Analizador en movimiento.

Según tengo entendido, los datos no se perderán porque las estadísticas son recogidas por otra instancia del programa. En general, considero que almacenar todas las ejecuciones en un solo archivo es la solución más acertada de todo el proyecto.

 
Maxim Dmitrievsky:

Cool, pero demasiado complicado como me parece a mí ... realmente, usted puede encontrar algún probador ready-made / optimizador en python y llamarlo si es necesario, incluso en gpu. Debe haber un montón de probadores de python.

por cierto, no hay un solo articulo sobre el uso de scripts python en mt5, y esto puede ser muy productivo.

Bueno, ¿cómo va a utilizar MetaTrader nube en Python? Incluso, ¿cómo desea ejecutar script de python en MT?

 
fxsaber:

Probablemente olvidaron quitar el constructor de public. No entiendo por qué no usaron un constructor normal.

Experimentos.

 
fxsaber:

Terminé de leer el código fuente de ResourceCreator.mqh. Me han surgido algunas dudas

  1. ¿Por qué decidieron no utilizar FileLoad y FileSave estándar?
  2. Los desarrolladores dijeron que la directiva tester_file pasa el archivo correspondiente a los Agentes sólo después de la compresión forzada. Entonces, ¿es razonable la variante de meter las comillas dentro (creo que es lo que decidieron - aún no he seguido leyendo) de EX5 o es una alternativa a tester_folder? ¿Has investigado la velocidad en este caso?
  3. ¿Entiendo correctamente que en cada pasada desempaquetas el recurso interno?
Todas estas son opciones a explorar. Quizás en la próxima versión cambie muchas cosas. Ahora lo he hecho para que se pueda manejar al menos de alguna manera.