Как отловить событие изменения входных параметров в зацикленном советнике?

 

Код зацикленного советника:

#define PAUSE 100

extern bool Flag = TRUE;

void start()
{
  static bool PrevFlag = TRUE;

  while (!IsStopped())
  {
    if (Flag != PrevFlag)
    {
      PrevFlag = Flag;

      MessageBox(WindowExpertName() + ": Flag is changed.");
    }

    Sleep(PAUSE);
  }

  return;
}

Запускаю советник, меняю значение входного параметра (клавиша F7) - никакого эффекта в текущем билде (670). Раньше было по-другому.

 

Всвязи с этим задаю вопрос, вынесенный в заголовок темы: как отловить событие изменения входных параметров в зацикленном советнике?

 

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

 
ide92993:


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

Появилась. Смотрите OnTimer()
 
valeryk:
Появилась. Смотрите OnTimer()

Спасибо, но EventSetTimer ограничивает период генерирования события таймера натуральным значением секунд.

 

Для реал-тайм мультивалютного анализа это не годится. Нужны миллисекунды. 

 
Так есть же EventSetMillisecondTimer ...
 
valeryk:
Так есть же EventSetMillisecondTimer ...

Подходит, спасибо!

 

В описании OnTimer об этой функции ни слова...

Причина обращения: