Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Делай скриншоты в MetaTrader и управляй ими в галерее!
ide92993
76
ide92993 2014.08.11 15:48 

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

#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). Раньше было по-другому.

 

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

 

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

Valeriy Korobeynik
24236
Valeriy Korobeynik 2014.08.11 16:09  
ide92993:


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

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

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

 

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

Valeriy Korobeynik
24236
Valeriy Korobeynik 2014.08.11 16:22  
Так есть же EventSetMillisecondTimer ...
ide92993
76
ide92993 2014.08.11 16:47  
valeryk:
Так есть же EventSetMillisecondTimer ...

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

 

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

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий