OpenCl y las herramientas para ello. Reseñas e impresiones. - página 2

 
Mathemat:

Articul, no tienes que ser tan categórico. El mundo no se detiene. Las modernas tarjetas gráficas monstruosas, según tu lógica, también deberían ser reconocidas como consecuencia de la falta de ideas en el procesamiento de imágenes?

A veces yo mismo me alegro de acelerar - sólo para evitar la espera en la depuración de código para terminar los cálculos pesados, que están todos en mi código en init() (unos 10 segundos). Y todos los demás cálculos, que tienen lugar "sobre la marcha", son realmente rápidos, por lo que no necesito el multithreading aquí.

Creo que este tipo de poder es necesario para probar ciertas ideas. Por ejemplo, sería muy interesante observar los resultados de las pruebas a plazo de los últimos 10 años para 32 pares de divisas. Y para cargar realmente la máquina construyamos el sistema en una pequeña TF. Supongamos que es M15. El periodo de optimización es de 8 semanas y el de fuera de la muestra es de 2 semanas. Aunque, será más obvio en el gráfico:

Si la optimización lleva 1 minuto, gastaremos aproximadamente 138 horas. El número de pasos (optimizaciones) es de 8320. Esta es una estrategia de negociación. ¿Y si se trata de una cartera? ¿Y si no hay ningún sistema y estamos buscando uno? ))) A partir de este momento queda claro que nunca hay suficiente energía.

 
Mathemat:

Yo mismo me alegro de acelerar a veces - sólo para evitar la espera durante la depuración del código para terminar los cálculos pesados, que tengo todos en init() (unos 10 segundos). Y todos los demás cálculos, que tienen lugar "sobre la marcha", se ejecutan realmente muy rápido, por lo que el multithreading no es necesario aquí.

¿Probablemente sea posible calcularlos una vez y guardarlos en la caché?
 
tol64:

Creo que se necesita un poder de esta escala para probar estas o aquellas ideas {...} El número de pasos (optimizaciones) es de 8320.

¿Y si quieres, por ejemplo, varios cientos de miles de carreras? :-)
 
jartmailru:
¿Probablemente sea posible calcularlos una vez y guardarlos en la caché de alguna manera?

¿Qué es el "caché" aplicado a un simple MQL4?

Sólo estoy depurando el código del indicador. Cuando pulso F5 vuelve a recompilar, pero sólo muestra la información después de los cálculos, la gran mayoría de los cuales se hacen en el programa init().

Por supuesto, puedes guardar el código en un archivo y leerlo desde allí mientras lo depuras. Pero esto es un poco engorroso y en el lugar equivocado.

 

En realidad la idea no es tan absurda, Alexey, la única cuestión es el método de aplicación.

Después de todo, incluso la CPU tiene su propia caché por una razón, e incluso más de una)

 

¿Y cómo propones hacer esto - sin referirte a la codificación externa a MQL4?

Ya lo sugerí - a través de archivos. Pero es largo y molesto.

 

Un caché suele implicar una memoria RAM para la rápida recuperación y modificación de datos posteriores.

En esencia, es una base de datos trivial. Evidentemente, esto requerirá una capacidad adicional, pero la ganancia de rendimiento puede ser sustancial.

 
La única "RAM" que sobrevivirá a la recompilación, utilizando sólo las herramientas MQL4, es la escritura en las variables globales. ¿Es eso lo que quieres decir?
 

No necesariamente, por ejemplo, podrías utilizar el mapeo ya implementado por Junko. Ni siquiera estoy hablando de su tarea específica, sino que el principio en sí me parece bastante racional.

 
No sé qué es el mapeo.