Не вижу проблемы в плане перемещения по графику - если сам график это одна картинка, то при MOUSE_MOVE считываете перемещение мыши и двигаете картинку, попутно расставляя все ваши индикаторы. Ну а как осуществить зум -
ссылка в помощь.
Ну и при этом также прийдётся помножать координаты свечей/всего что не является графиком на зум - при двухкратном увеличении помножаете координаты на 2.
Не знаю как у вас, но в терминале, при перемещении график подгружается кусками, это бы помогло снизить тормоза.