Ага, увидел. Действительно невнимательно прочитал. Сначала i-2, из-за того, что есть нулевой индекс, а потом i+2. Т.е. если отталкиваться от количества баров, то это bars +1.
Кстати, по ходу возник вопрос, по поводу откуда берется число баров которое возвращает ctx.BarsCount? Если в скрипте несколько источников, число баров в которых может и не совпадать?