Ошибки, баги, вопросы - страница 1157

 
marketeer:
Уточняю вопрос - прогресс должен работать в индикаторе. Ваш код при перенесении в индюк перестает отображать коммент в процессе выполнения.
Если зациклить индикатор, то можно и весь терминал "подвесить".  А вот советник позволяет издеваться над потоками как угодно.
 
marketeer:
Уточняю вопрос - прогресс должен работать в индикаторе. Ваш код при перенесении в индюк перестает отображать коммент в процессе выполнения.

Из справки MQL4:

Выполнение программ

Краткая сводка по программам на MQL4 приведена в таблице:

Программа

Выполнение

Примечание

Скрипт

В собственном потоке, сколько скриптов - столько потоков выполнения для них

Зацикленный скрипт не может нарушить работу других программ

Эксперт

В собственном потоке, сколько экспертов - столько потоков выполнения для них

Зацикленный эксперт не может нарушить работу других программ

Индикатор

Один поток выполнения для всех индикаторов на одном символе. Сколько символов с индикаторами - столько потоков выполнения для них

Бесконечный цикл в одном индикаторе остановит работу всех остальных индикаторов на этом символе

 
barabashkakvn:
Если зациклить индикатор, то можно и весь терминал "подвесить".  А вот советник позволяет издеваться над потоками как угодно.

Ну, то, что индюк может подвесить терминал - недоработка самого терминала. А аналитические расчеты, не связанные с торговлей, должны быть именно в индюке - тем более что он требует визуализации буферов, т.е. это и не для скрипта задача.

В индюке ничего не зациклено - в том смысле, что там нет бесконечного цикла. Есть контролируемый расчет, но он требует времени.

 
marketeer:

...

В индюке ничего не зациклено - в том смысле, что там нет бесконечного цикла. Есть контролируемый расчет, но он требует времени.

В Каком вызове функции индикатора Вы выполняете расчет? 
Если очень нужно выполнять такие расчеты имеет смысл "порционное вычисление".

 
Вот тема была: https://www.mql5.com/ru/forum/23162
Порционное вычисление в индикаторе
Порционное вычисление в индикаторе
  • www.mql5.com
Индикатор производит вычисление одного значения для бара достаточно длительное время (запрос к БД, вычисление на стороне БД, возврат значения функции). - - Категория: технические индикаторы и анализ рынка форекс
 
barabashkakvn:
В Каком вызове функции индикатора Вы выполняете расчет? 
Если очень нужно выполнять такие расчеты имеет смысл "порционное вычисление".

Тяжелый код - в расчетной части, не в ините, если вопрос об этом. "Порционный расчет" - отдельный гемор для сохранения и восстановления промежуточных состояний, и замедление самого процесса. Это не вариант.
 
joo:
Так как, всё таки пользоваться консольным компилятором, если он удаляется терминалом?

А зачем он в терминале? У терминала есть все свое.

Просто держите компилятор в другом месте.

 
Renat:

А зачем он в терминале? У терминала есть все свое.

Просто держите компилятор в другом месте.

Да, это понятно, что выход из положения держать компилятор в другой, отличной от терминальной, папке. Но ведь и свеженькие *.ex5 файлы будут созданы не в папке терминала, а значит их нужно постоянно переносить в нужное место... Хотя, может быть предусмотрен ключ команды, указывающий путь скомпилированных файлов?
 
joo:
Да, это понятно, что выход из положения держать компилятор в другой, отличной от терминальной, папке. Но ведь и свеженькие *.ex5 файлы будут созданы не в папке терминала, а значит их нужно постоянно переносить в нужное место... Хотя, может быть предусмотрен ключ команды, указывающий путь скомпилированных файлов?

Да, в ключе /i можно указать дефолтный каталог:

E:\>mql64.exe
MQL4/MQL5 Compiler x64 build 937 (15 May 2014)
Copyright 2001-2014, MetaQuotes Software Corp.

Usage: mql64.exe [<flags>] filename.mq5
                /mql5     - compile mql5 source
                /mql4     - compile mql4 source
                /s        - syntax check only
                /i:<path> - set working directory
 
EX5 будут созданы по месту нахождения исходного файла mq5.
Причина обращения: