Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2297

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Результат компиляции будет одинаковым, в обоих случаях в результате инициализированный массив будет лежать в файле .ex4
Согласен с этим. В файле .ex4 скомпилированного Советника . И поэтому , до некоторой степени я согласен что инициализировать массив объявленный во включаемом файле , до некоторой степени, не имеет смысла. Но тем не менее , я хочу научиться инициализировать при помощи mql4 массив который объявлен в во вкл. файле, а не в теле советника .
Но тем не менее , я хочу научиться инициализировать массив который объявлен в во вкл. файле, а не в теле советника.
Вы можете в файле с исходным текстом тела советника присвоить значение каждому элементу массива.
Или вы можете загрузить содержимое массива из файла, как вам сразу было указано https://www.mql5.com/ru/forum/160683/page2292#comment_50001406
Если вы хотите загружать данные не из бинарного (подозреваю, тут ещё одна ключевая точка взаимонепонимания) файла, позволяющего сохранить/загрузить массив целиком, используя встроенные функции, а из текстового файла, подобного по формату тому, что вы писали в файле .mqh, вам придётся написать свою процедуру, которая будет читать текст из файла, разбирать его на элементы и записывать значения в массив.
Вы можете в файле с исходным текстом тела советника присвоить значение каждому элементу массива.
Правильно я Вас понял, что этот вариант предполагает инициализацию массива не во включаемом файле, а в теле Советника.
А второй вариант инициализируют массив именно во включаемом файле, а не в теле Советника?
Спасибо. Но мне кажется , что это не заблуждение и тем более не ключевое. А просто моя не достаточно точная формулировка . Ведь если я не ошибаюсь, результат компиляции будет одинаковым как в случае если инициализированный массив будет лежать в теле Советника , так и в случае если он будет лежать во включаемом файле. И поэтому , до некоторой степени я согласен что инициализировать массив во включаемом файле , до некоторой степени, не имеет смысла. Но тем не менее , я хочу научиться инициализировать массив который объявлен в во вкл. файле, а не в теле советника.
Правильно я Вас понял, что этот вариант предполагает инициализацию массива не во включаемом файле, а в теле Советника.
А остальные варианты инициализируют массив именно во включаемом файле, а не в теле Советника?
Перестатьте разделять "включаемый файл" и "тело советника". После компиляции это одно и то же.
а инициализация будет происходить при запуске советника.
Спасибо. То есть , инициализация массива будет происходить после компиляции Советника?
Перестатьте разделять "включаемый файл" и "тело советника". После компиляции это одно и то же.
Я уже давно это не разделяю. Может быть я недопонимаю что такой инициализация советника объявленного во включаемом файле
Вот включаемый файл в котором только объявлен массив. Этот включаемый файл компилируется без ошибок.
Правильно я понимаю что после инициализации этого массива из Советника , во включаемом файле этот массив будет выглядеть как на скрине? Этот включаемый файл так же компилируется без ошибок.
Спасибо. То есть , инициализация массива будет происходить после компиляции Советника?
Упрощённо:
Если вы прописываете инициализацию массива при его объявлении, инициализация происходит во время компиляции https://www.mql5.com/ru/docs/basis/variables/initialization , и неважно в каком файле это объявление.
Если после объявления - во время запуска. И опять же, не важно, в каком файле, данные всё равно берутся те, которые были заложены при компиляции. Если хотите заполнить массив данными, отличеыми от тех, что были в исходных файлах на момент компиляции, вам придётся самостоятельно предпринять какие-то действия по получению этих данных из внешних источников, вроде тех, о которых я говорил выше.
После момента компиляции .ex4 файл и .mqh файл никак между собой не связаны, никакие действия советника, кроме явного открытия и перезаписи файла .mqh вашим собственным кодом (что не так-то просто, но, в принципе, возможно), не влияют на содержимое файла .mqh, точно также, как и любые изменения файла .mqh после компиляции никак не влияют на действия и данные советника.
Упрощённо:
Если вы прописываете инициализацию массива при его объявлении, инициализация происходит во время компиляции https://www.mql5.com/ru/docs/basis/variables/initialization , и неважно в каком файле это объявление.
Если после объявления - во время запуска. И опять же, не важно, в каком файле, данные всё равно берутся те, которые были заложены при компиляции. Если хотите заполнить массив данными, отличеыми от тех, что были в исходных файлах на момент компиляции, вам придётся самостоятельно предпринять какие-то действия по получению этих данных из внешних источников, вроде тех, о которых я говорил выше.
Я хочу объявить массив во включаемом файле как на скрине выше. А потом заполнить его значениями из Советника mql4. А раньше я заполнял его значениями путем их ручного копирования из ЕКСЕЛЯ.
В результате заполнения массива из Советника , я хочу что он стал таким как на скрине ниже. Это все что я хочу... но пока не могу.
Не обращайте внимания на то что объявлена 31 строка , а в скобках строк меньше. Это просто пример .... Сожалею что сразу не проиллюстрировал то что я хочу...