Эмуляция прерываний в MQL4? - страница 3

 

Коль уж зашла речь о запуске дополнительных скриптов, то тогда гораздо надёжнее и эффективнее использовать DLL. Там можно создать системный таймер с помощью функция SetTimer с заданным временным шагом, и задать функцию-обработчик события таймера, эмулирующую тики. И вуаля! Всё работает как часы, тикает через равные промежутки времени. Зацикливание советников уже не нужно. А особенно это будет полезно в индикаторах, т.к. там и зацикливать то нельзя.

 
Grein:
..хотя огромный соблазн сделать это в инит(). ..
вызываем из инит старт, а старт зацикливаем.. чем плохо ?
 
keekkenen:
вызываем из инит старт, а старт зацикливаем.. чем плохо ?
Это и есть зацикливание инита. А тут уже много раз говорилось, что так делать нежелательно. Но правда только теоретически :) На практике многие этим пользуются на протяжении многих лет, и ничего страшного. Хотя если запущено много советников, зацикленных в ините, то проблемы иногда наблюдаются при запуске терминала, он подвисает. По крайней мере у меня такое случается периодически. Хотя возможно дело и не в ините, а в зацикливании вообще... Я особых исследований на эту тему не проводил. Но по моим наблюдениям зависания при цикле инита случаются чаще, чем при обычных зацикливаниях в старте.
Причина обращения: