Как поймать новый тик?

 
Самый простой способ - по факту запуска start() советника.
Но как это сделать, если внутри start() имеется бесконечный цикл?

Первое, что приходит в голову, - отслеживать факт запуска start() индикатора.
Это тоже не годится, т.к. start() индикатора запускается не только новым тиком, но и при некоторых других условиях,
например, при изменении размеров окна и переключении между окнами.

Не годится и сравнение котировок, поскольку возможны одинаковые цены на разных тиках.

Какие у кого идеи?
 
Может я че путаю, но бесконечный цикл в советнике давно разрешили?
 
Не знаю давно ли.
У меня работает. И в советнике и в скрипте.
 
Можно за ценой следить. Правда, некоторые тики будут пропущены.
Или за объёмом. Он, вроде, все тики учитывает.
 
Запоминать CurTime, если изменилось - значит это новый тик.
 
KimIV, светлая голова!
Объём!:))
Идея. Проверю.
-------
Цена не годится, я написал.
СurTime тоже не годится. Если его поставить в цикл, то он всегда обновится (и без тика).

Разработчикам:
1. Прокомментируйте, пожалуйста, синхронность тика и объёма ( в скрипте и советнике).
2. Следует ли полагать, что объём поступает строго одновременно в скрипт и советник?
 
Функция возвращает текущее время сервера... а оно приходит не иначе как с новым тиком
 
Integer:
Функция возвращает текущее время сервера... а оно приходит не иначе как с новым тиком
С новым тиком любой валютной пары.
Поэтому утверждение "CurTime возвращает время последнего тика" верно только в том случае, если в "Обзоре рынка" присутствует только один инструмент ;)
 
Согласен, CurTime при некоторых обстоятельствах можно использовать.
Я, отвечая, что функция запустится на каждом тике, имел ввиду GetTickCount().

В общем, есть над чем подумать.
 
Если RefreshRates вернула true, то пришла новая цена. За объёмом без RefreshRates следить бесполезно.
Ещё можно спрашивать MarketInfo
 
stringo, ОК, спасибо.
Причина обращения: