Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ресурсом прикрепить. Не спрашивайте как. Исходник не писал.
Вот и у меня дилемма возникла, как сделать так, чтобы один раз считать с файла, заполнить им массив и пользоваться этим массивом на всех проходах.
Это мне нужно, чтобы сократить время оптимизации, так как массив всегда будет неизменен и каждый раз его считать затратно.
По-моему, Вам уже предлагали такое решение. Оно Вам не подходит?
Сторонним софтом создать массив?
Ну напишите, например, скрипт, который подготовит и соберёт все данные в массив, а потом запишет готовый массив в файл. А потом при инициализации в советнике считывайте этот массив из файла. Файлом можно пользоваться столько раз, сколько Вам нужно, при каждом прогоне советника.
По-моему, Вам уже предлагали такое решение. Оно Вам не подходит?
Да, в том то и дело, что не подходит. В оптимизации проходов штук 15 000. А мне необходимо всего раз рассчитать и при последующих проходах только обращаться к массиву.
То есть, в файле у меня уже данные рассчитанные наперед: это время и уровень и они мне заранее известны. И даже считывание файла каждый раз в ините, на каждом проходе это очень затратно(строк несколько тысяч). Не знаю, как MQL5, но в MQL4 на форуме писали, что инит программа проходит на каждом проходе.
А в ините на каждом проходе нужно будет считывать?
Вы преувеличиваете, ИМХО.
Да, в том то и дело, что не подходит. В оптимизации проходов штук 15 000. А мне необходимо всего раз рассчитать и при последующих проходах только обращаться к массиву.
То есть, в файле у меня уже данные рассчитанные наперед: это время и уровень и они мне заранее известны. И даже считывание файла каждый раз в ините, на каждом проходе это очень затратно(строк несколько тысяч). Не знаю, как MQL5, но в MQL4 на форуме писали, что инит программа проходит на каждом проходе.
классический приём из мира C/C++ : можно сделать/сконвертировать из этого вашего файла статический массив (просто текст: double arr[100500]={1,2,3....} ) и просто включить его через #include.
Знаете, по-моему Вы преувеличиваете на счёт затрат на считывание массива из файла. Каждый раз, когда Виндоуз просыпается из режима сна, она восстанавливает с жесткого диска образ своего состояния, который был на момент засыпания, включая состояние всех приложений. Думаете, там мало объектов и информации? И сколько занимает времени такой выход из сна?
Вы преувеличиваете, ИМХО.
Затраты больше однозначно. Есть два варианта с неизменными настройками индикатора и с теми же значениями, но уже записанными в файл, что сбрасываются в массив.
Вариант с файлом в разы дольше считается, чем просто с расчетом индикатора в советнике.
Просто подумал, что может есть способ сохранить массив один раз и использовать его для всех проходов в оптимизации и этим разгрузить алгоритм.
классический приём из мира C/C++ : можно сделать/сконвертировать из этого вашего файла статический массив (просто текст: double arr[100500]={1,2,3....} ) и просто включить его через #include.
Затраты больше однозначно. Есть два варианта с неизменными настройками индикатора и с теми же значениями, но уже записанными в файл, что сбрасываются в массив.
Вариант с файлом в разы дольше считается, чем просто с расчетом индикатора в советнике.
Просто подумал, что может есть способ сохранить массив один раз и использовать его для всех проходов в оптимизации и этим разгрузить алгоритм.