Фоновые расчёты - страница 2

 
Yuriy Asaulenko:

Пожалуй.

Я тут для подобных задач цикл придумал. Эксперт пустой. Ну, там еще немного.

Я же говорю - не нужен этот цикл. Нужен обработчик OnChartEvent и генерация событий от DLL на графике индикатора/эксперта.
 
Ihor Herasko:
Я же говорю - не нужен этот цикл. Нужен обработчик OnChartEvent и генерация событий от DLL на графике индикатора/эксперта.

в теории - DLL может отправлять клавиатурные события по дескриптору окна, индикатор/эксперт может на них подписываться.

на практике  лучше через опрос общих ресурсов, блокировки и собственные очереди

кстати есть ещё такой концепт protothreads (https://en.wikipedia.org/wiki/Protothreads) , странно что его ещё никто не реализовал в MQL

 
Dmitry Fedoseev:
Только индикаторы тормозят пользовательский интерфейс. Эксперты не тормозят. У эксперта при вычислениях только сложности с открытием окна свойств.

а что происходит при новом тике, если обработка ещё не закончилась? Он не обработается? Мне бы это реализовать.

может скрипт для этого вызывать из эксперта (там вести расчёты)? Или он тоже тормозит интерфейс?

 
Alexey Volchanskiy:
С потоками MQL4/5 не работает, так что только выносить расчеты во внешнюю DLL и там открывать поток с вычислениями.

С потоками можно работать в mql, эта тема уже поднималась.

 
Alexey Volchanskiy:
Да, но придется извращаться с синхронизацией, ибо атомарные операции в МТ4/5 не поддерживаются
Да, придется. Но, кажется возможно. Как раз сейчас ищу возможности, м.б. через события графиков. Но пока ничего определенного не придумал.
 
Roma:

а что происходит при новом тике, если обработка ещё не закончилась? Он не обработается? Мне бы это реализовать.

может скрипт для этого вызывать из эксперта (там вести расчёты)? Или он тоже тормозит интерфейс?

неужели никто не знает?
 
Roma:
неужели никто не знает?

Ну почему. Становится в очередь. Потом может и пропуститься.

Не поможет. (:

Я бы написал блог, типа - "Последний советник". Но удалят, как сегодняшний, уже удалили.

 
Roma:

а что происходит при новом тике, если обработка ещё не закончилась? Он не обработается? Мне бы это реализовать.

может скрипт для этого вызывать из эксперта (там вести расчёты)? Или он тоже тормозит интерфейс?

1) Для эксперта тик будет пропущен, для индикатора встанет в очередь.
2) Из эксперта нельзя вызвать скрипт, из эксперта можно запустить индикатор или другой эксперт.

Для вашей задачи скорее всего подойдет связка эксперта, который реализует "тяжелый" расчет, и индикатора, который собирает тики и отображает расчетные данные эксперта. Сбор тиков можно заменить функцией CopyTicks() в эксперте.

 
Yury Kulikov:
1) Для эксперта тик будет пропущен, для индикатора встанет в очередь.
2) Из эксперта нельзя вызвать скрипт, из эксперта можно запустить индикатор или другой эксперт.

Для вашей задачи скорее всего подойдет связка эксперта, который реализует "тяжелый" расчет, и индикатора, который собирает тики и отображает расчетные данные эксперта. Сбор тиков можно заменить функцией CopyTicks() в эксперте.

Именно так. С вариациями, разумеется.
 
Yury Kulikov:
 из эксперта можно запустить индикатор 

разве индикатор не тормозит польз. интерфейс своими расчётами?

 Dmitry Fedoseev:

Только индикаторы тормозят пользовательский интерфейс. Эксперты не тормозят.

 тогда вопрос что происходит с тиком, если он приходит тогда когда старый ещё не обработался.

не обрабатывается?