barabashkakvn: Если зациклить индикатор, то можно и весь терминал "подвесить". А вот советник позволяет издеваться над потоками как угодно.
Ну, то, что индюк может подвесить терминал - недоработка самого терминала. А аналитические расчеты, не связанные с торговлей, должны быть именно в индюке - тем более что он требует визуализации буферов, т.е. это и не для скрипта задача.
В индюке ничего не зациклено - в том смысле, что там нет бесконечного цикла. Есть контролируемый расчет, но он требует времени.
Индикатор производит вычисление одного значения для бара достаточно длительное время (запрос к БД, вычисление на стороне БД, возврат значения функции). - - Категория: технические индикаторы и анализ рынка форекс
barabashkakvn: В Каком вызове функции индикатора Вы выполняете расчет?
Если очень нужно выполнять такие расчеты имеет смысл "порционное вычисление".
Тяжелый код - в расчетной части, не в ините, если вопрос об этом. "Порционный расчет" - отдельный гемор для сохранения и восстановления промежуточных состояний, и замедление самого процесса. Это не вариант.
А зачем он в терминале? У терминала есть все свое.
Просто держите компилятор в другом месте.
Да, это понятно, что выход из положения держать компилятор в другой, отличной от терминальной, папке. Но ведь и свеженькие *.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
MT5 Проблема, и большая! - пропадают alerts. Устанавливаю alert на 1000 повторений, на графике рисуются соответствующие маркеры... а через какое-то время (5-30 минут) алерт просто исчезает из вкладки алертов и с графика, некоторые - даже не сработав. То есть, не на паузу устанавливаются, как после срабатывания, а просто исчезают. Есть какой-нибудь лог, где это событие было бы отмечено? В журнале только сработавшие алерты отражены.
Никакими скриптами или советниками не пользуюсь.
Не знаю, имеет ли это значение, торгую в БД Открытие, фьючерсы РТС. Хотя это ни при чем наверное.
Если зациклить индикатор, то можно и весь терминал "подвесить". А вот советник позволяет издеваться над потоками как угодно.
Ну, то, что индюк может подвесить терминал - недоработка самого терминала. А аналитические расчеты, не связанные с торговлей, должны быть именно в индюке - тем более что он требует визуализации буферов, т.е. это и не для скрипта задача.
В индюке ничего не зациклено - в том смысле, что там нет бесконечного цикла. Есть контролируемый расчет, но он требует времени.
...
В индюке ничего не зациклено - в том смысле, что там нет бесконечного цикла. Есть контролируемый расчет, но он требует времени.
В Каком вызове функции индикатора Вы выполняете расчет?
Так как, всё таки пользоваться консольным компилятором, если он удаляется терминалом?
А зачем он в терминале? У терминала есть все свое.
Просто держите компилятор в другом месте.
А зачем он в терминале? У терминала есть все свое.
Просто держите компилятор в другом месте.
Да, это понятно, что выход из положения держать компилятор в другой, отличной от терминальной, папке. Но ведь и свеженькие *.ex5 файлы будут созданы не в папке терминала, а значит их нужно постоянно переносить в нужное место... Хотя, может быть предусмотрен ключ команды, указывающий путь скомпилированных файлов?
Да, в ключе /i можно указать дефолтный каталог:
MT5 Проблема, и большая! - пропадают alerts. Устанавливаю alert на 1000 повторений, на графике рисуются соответствующие маркеры... а через какое-то время (5-30 минут) алерт просто исчезает из вкладки алертов и с графика, некоторые - даже не сработав. То есть, не на паузу устанавливаются, как после срабатывания, а просто исчезают. Есть какой-нибудь лог, где это событие было бы отмечено? В журнале только сработавшие алерты отражены.
Никакими скриптами или советниками не пользуюсь.
Не знаю, имеет ли это значение, торгую в БД Открытие, фьючерсы РТС. Хотя это ни при чем наверное.
PS вот, пока писал, опять такая же ерунда.
Из справки MQL4:
Выполнение программ
Краткая сводка по программам на MQL4 приведена в таблице:
Программа
Выполнение
Примечание
Скрипт
В собственном потоке, сколько скриптов - столько потоков выполнения для них
Зацикленный скрипт не может нарушить работу других программ
Эксперт
В собственном потоке, сколько экспертов - столько потоков выполнения для них
Зацикленный эксперт не может нарушить работу других программ
Индикатор
Один поток выполнения для всех индикаторов на одном символе. Сколько символов с индикаторами - столько потоков выполнения для них
Бесконечный цикл в одном индикаторе остановит работу всех остальных индикаторов на этом символе