Вы считаете два разных значения.
В случае сжатия, это максимум закрытого часового бара.
Во втором случае при изменении времени принимаете максимум за период.
Нужно еще учитывать, что час, это не всегда час, например, в часы клиринга.
А что именно Вы хотите сделать? Просто понять как работает сжатие? Здесь есть хорошая статья:
http://rusalgo.com/article/%d1%81%d0%b6%d0%b0%d1%82%d0%b8%d0%b5-%d0%b8-%d1%80%d0%b0%d0%b7%d0%b6%d0%b0%d1%82%d0%b8%d0%b5-%d0%b2-tslab-%d1%87%d0%b0%d1%81%d1%82%d1%8c-1.html