Вы зачем то сделали val2[shift] = EMPTY_VALUE;(пусто) и выбрали отображение DRAW_HISTOGRAM. А у заливок и гистограмм нужны две точки - верх-низ. Т.е. нужно
A). либо сделать отображение, которым достаточно одной ценовой метки Line,ARROW.
Б). Либо(если хотите гистограмму) - val2[shift] присваивать ценовое значение отличное от val1 (допустим если val1[shift]=low[shift], то val2[shift]=high[shift] )
Тогда вот оригинал индикатора ! Можете сделать поглощение свеч по логике :
1.Логика для бычьего поглощения:
Открытие текущей свечи больше закрытия
Открытие предыдущей свечи меньше закрытия
Открытие предыдущей свечи больше закрытия
Минимум текущей свечи ниже минимума предыдущей
Закрытие текущей свечи выше максимума предыдущей.
========================================
2.Логика для медвежьего поглощения:
Открытие текущей свечи меньше закрытия
Открытие предыдущей свечи больше закрытия
Открытие предыдущей свечи меньше закрытия
Максимум текущей свечи выше максимума предыдущей
Закрытие текущей свечи ниже минимума предыдущей.