Однократный расчет массива при оптимизации

 

Есть массив, который не изменяется в течение всей оптимизации. Есть ли возможность рассчитать его один раз и в течение  всей оптимизации на каждом проходе только обращаться к нему, не рассчитывая его снова?

 
Ну так и рассчитай его в OnInint()
 
Alexey Viktorov:
Ну так и рассчитай его в OnInint()

В MQL4 считывал данные с файла в ините, но так получилось очень долго. Не понятно с каждым новым проходом задействуется инит или нет?

Нашел на форуме при каждом проходе используется инит, то есть массив будет по новой считаться.

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

 

Конечно нет.

Ой... Не внимательно прочёл и не так понял вопрос.

 
forexman77:

В MQL4 считывал данные с файла в ините, но так получилось очень долго. Не понятно с каждым новым проходом задействуется инит или нет?

Нашел на форуме при каждом проходе используется инит, то есть массив будет по новой считаться.

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

Это же элементарно. Делаешь проверку размера массива при каждом запуске. Если массив пустой или там флаг расчета равен false, делаешь перерасчет:

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

Это же элементарно. Делаешь проверку размера массива при каждом запуске. Если массив пустой или там флаг расчета равен false, делаешь перерасчет:

Правда не проверял еще. Но, спрошу и что массив сохранится с первого прохода(где он будет рассчитан) и будет доступен при последующих проходах?

 
forexman77:

Правда не проверял еще. Но, спрошу и что массив сохранится с первого прохода(где он будет рассчитан) и будет доступен при последующих проходах?

Не будет. Надо заново рассчитывать, или сохранять в файл и считывать.
 
Dmitry Fedoseev:
Не будет. Надо заново рассчитывать, или сохранять в файл и считывать.

Вот и у меня дилемма возникла, как сделать так, чтобы один раз считать с файла, заполнить им массив и пользоваться этим массивом на всех проходах.

Это мне нужно, чтобы сократить время оптимизации, так как массив всегда будет неизменен и каждый раз его считать затратно. 

 
forexman77:

Вот и у меня дилемма возникла, как сделать так, чтобы один раз считать с файла, заполнить им массив и пользоваться этим массивом на всех проходах.

Это мне нужно, чтобы сократить время оптимизации, так как массив всегда будет неизменен и каждый раз его считать затратно. 

В МТ5 есть событие начала оптимизации, в нем вычислить массив, сохранить в файл, а в ините советника читать его. 
 

Ресурсом прикрепить. Не спрашивайте как. Исходник не писал.

Надо будет в ините его считывать. Но считывание будет не с диска, а с памяти. Так что, фактически, массив будет в памяти. 

 
Dmitry Fedoseev:
В МТ5 есть событие начала оптимизации, в нем вычислить массив, сохранить в файл, а в ините советника читать его. 
А в ините на каждом проходе нужно будет считывать?
Причина обращения: