Originally Posted By: KolesAV
На рисунке сжатые(синем) и не сжатые (красным) минутки, виден лаг. Код тот же как его избежать?

Не нужно этого делать. На скриншоте все правильно.
Пересчет скрипта происходит по окончании интервала и значит в этот момент становится известно значение индикатора на закончившемся интеравле и которое будет действительным до окончания следующего интервала. Например, в 10:10 закончилась 10-минутка [10:00-10:10] и скрипт рассчитал значение индикатора для следующей дестиминутки. Это значение показано на графике с 10:09 до 10:19.
На графике отображаются значения оответствующие концу каждого предыдущего интервала.
Про другие методы декомпрессии (отличные от того что по умолчанию) можно почитать в документации.