Cálculo de una matriz durante la optimización

 

Hay una matriz que no cambia durante toda la optimización. ¿Es posible calcularlo una vez y sólo referirse a él en cada pasada durante toda la optimización sin calcularlo de nuevo?

 
Así que calcúlalo en OnInint()
 
Alexey Viktorov:
Así que calcúlalo en OnInint()

En MQL4 leía los datos del archivo en el inite, pero tardaba mucho tiempo. No sé si el initese utiliza con cada nuevo pase o no?

Lo he encontrado en el foro, cada vez que se utiliza el inite, es decir, el array se recalcula.

https://www.mql5.com/ru/forum/104222

 

Por supuesto que no.

Oops... No leí con atención y entendí mal la pregunta.

 
forexman77:

En MQL4 leía los datos del archivo en el inite, pero tardaba mucho tiempo. No sé si el initese utiliza con cada nuevo pase o no?

Lo he encontrado en el foro, cada vez que se utiliza el inite, es decir, el array se recalcula.

https://www.mql5.com/ru/forum/104222

Es elemental. Se comprueba el tamaño de la matriz en cada ejecución. Si el array está vacío o la bandera de cálculo es falsa, se vuelve a calcular:

if(ArraySize(optimize_array) == 0)
   CalculateArray();
 
Vasiliy Sokolov:

Es elemental. Se comprueba el tamaño del array cada vez que se ejecuta. Si el array está vacío o la bandera de cálculo es falsa, se vuelve a calcular:

Sin embargo, aún no lo he comprobado. Pero, ¿pregunto y que el array se guardará desde la primera pasada (donde se calculará) y estará disponible en las siguientes?

 
forexman77:

Sin embargo, aún no lo he probado. Pero, voy a preguntar y que la matriz se guardará desde la primera pasada (donde se calculará) y estará disponible para las siguientes pasadas?

No lo hará. Hay que recalcularla, o guardarla en un archivo y leerla.
 
Dmitry Fedoseev:
No lo hará. Hay que recalcularla, o guardarla en un archivo y leerla.

Así que tengo un dilema: cómo hacer posible leer de un archivo una vez, llenar un array con él y usar este array en todas las pasadas.

Lo necesito para reducir el tiempo de optimización, ya que el array siempre permanecerá inalterado y será costoso leerlo cada vez.

 
forexman77:

Así que tengo un dilema: cómo hacer posible leer de un archivo una vez, llenar el array con él y usar este array en todas las pasadas.

Necesito esto para reducir el tiempo de optimización, porque el array siempre estará sin cambios y es costoso leerlo cada vez.

En MT5 hay un evento para iniciar la optimización, calcular el array en él, guardarlo en un archivo y leerlo en el init del EA.
 

Adjuntar recursos. No preguntes cómo. No he escrito el código fuente.

Habrá que leerlo en el inite. Pero no se leerá del disco, sino de la memoria. Así que, de hecho, la matriz estará en la memoria.

 
Dmitry Fedoseev:
En MT5 hay un evento para iniciar la optimización, en él se calcula el array, se guarda en un archivo, y en el init del EA se lee.
¿Tendrá que leerlo en el init en cada pase?
Razón de la queja: