Время до конца текущего бара, в виде таймера

 
Добрый день, товарищи программисты. :)

В сети много раз встречал функции по определению времени до конца текущего бара. Но все они работали с TimeCurrent, через серверное время. Это вызывает задержку таймера, т.к. тик приходит не каждую секунду и время таймера останавливается. Или получается отрицательное время, по той же причине, что новый бар уже есть, а время еще не обновилось... Советник работает через OnTimer (обновляется каждую секунду, а не с новым тиком).

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

Большое спасибо!
 
Просто синхронизируйте секунды таймера со временем пришедшего тика. Только на 1м тике после инициализации или на каждом тике или на каждом 1м тике бара или как лучше укладывается в оптимальное соотношение точность/производительность. TimeLocal при наличии OnTimer ваще не нужен для решения этой задачи
 
f2011:
Просто синхронизируйте секунды таймера со временем пришедшего тика. Только на 1м тике после инициализации или на каждом тике или на каждом 1м тике бара или как лучше укладывается в оптимальное соотношение точность/производительность. TimeLocal при наличии OnTimer ваще не нужен для решения этой задачи
А почему OnTimer не нужен? Если долгое время не будет тика таймер не будет идти. Если можно, подскажите как синхронизировать? Как вообще таймер такой сформировать, не могу представить? :)
 
lelectrohardl:
А почему OnTimer не нужен?
f2011:
TimeLocal при наличии OnTimer ваще не нужен для решения этой задачи
 
f2011:
А как таймер будет отсчитывать прошедшие секунды без TimeLocal? Можно небольшой пример?