Cálculo de matriz única durante a otimização

Alexey Viktorov  

É claro que não.

Oops... Não li com cuidado e entendi mal a pergunta.

Vasiliy Sokolov  
forexman77:

Na MQL4 eu estava lendo dados do arquivo no inite, mas demorou muito tempo. Eu não sei se o initeé usado a cada novo passe ou não?

Encontrei-o no fórum, cada vez que o inite é utilizado, ou seja, a matriz será recalculada.

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

É elementar. Você verifica o tamanho da matriz em cada execução. Se a matriz estiver vazia ou se a bandeira de cálculo for falsa, você a recalcula:

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

É elementar. Você verifica o tamanho da matriz cada vez que a executa. Se a matriz estiver vazia ou se a bandeira de cálculo for falsa, você a recalcula:

Mas eu ainda não o testei. Mas, pergunto e que a matriz será salva do primeiro passe (onde será calculada) e estará disponível nos passes subseqüentes?

Dmitry Fedoseev  
forexman77:

Mas eu ainda não o testei. Mas, vou perguntar e que a matriz será salva do primeiro passe (onde será calculada) e estará disponível para os passes subseqüentes?

Não será assim. Você tem que recalculá-lo ou salvá-lo em um arquivo e lê-lo.
forexman77  
Dmitry Fedoseev:
Não vai. Você tem que recalculá-lo ou salvá-lo em um arquivo e lê-lo.

Portanto, tenho um dilema: como tornar possível a leitura de um arquivo uma vez, preencher um array com ele e usar este array em todos os passes.

Eu preciso dele para reduzir o tempo de otimização, porque a matriz permanecerá sempre inalterada e será sempre caro lê-lo.

Dmitry Fedoseev  
forexman77:

Portanto, tenho um dilema: como tornar possível a leitura de um arquivo uma vez, preencher um array com ele e usar este array em todos os passes.

Preciso disto para reduzir o tempo de otimização, porque a matriz será sempre inalterada e é caro lê-la sempre.

No MT5 há um evento para iniciar a otimização, calcular array nele, salvá-lo para arquivar e lê-lo no interior da EA.
fxsaber  

Acoplamento de recursos. Não pergunte como. Eu não escrevi o código fonte.

Terá que ser lido no inite. Mas não será lido a partir do disco, mas da memória. Assim, na verdade, a matriz ficará na memória.

forexman77  
Dmitry Fedoseev:
No MT5 há um evento para iniciar a otimização, nele se calcula a matriz, salva-a em um arquivo e, no init do EA, lê-se.
Você precisará lê-lo no init em cada passe?
Razão: