Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай последние события MQL5.community!
forexman77
2069
forexman77 2016.09.15 12:25 

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

Alexey Viktorov
6083
Alexey Viktorov 2016.09.15 12:29  
Ну так и рассчитай его в OnInint()
forexman77
2069
forexman77 2016.09.15 12:38  
Alexey Viktorov:
Ну так и рассчитай его в OnInint()

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

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

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

Alexey Viktorov
6083
Alexey Viktorov 2016.09.15 12:50  

Конечно нет.

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

Vasiliy Sokolov
21150
Vasiliy Sokolov 2016.09.15 12:55  
forexman77:

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

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

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

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

if(ArraySize(optimize_array) == 0)
   CalculateArray();
forexman77
2069
forexman77 2016.09.15 13:00  
Vasiliy Sokolov:

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

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

Dmitry Fedoseev
42648
Dmitry Fedoseev 2016.09.15 14:30  
forexman77:

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

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

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

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

Dmitry Fedoseev
42648
Dmitry Fedoseev 2016.09.15 16:10  
forexman77:

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

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

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

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

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

forexman77
2069
forexman77 2016.09.15 16:12  
Dmitry Fedoseev:
В МТ5 есть событие начала оптимизации, в нем вычислить массив, сохранить в файл, а в ините советника читать его. 
А в ините на каждом проходе нужно будет считывать?
/ /12345678
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий