Всем спасибо за хорошие советы. Сейчас буду имплементить. Потом отпишусь и расскажу, что в итоге получилось.
P.S. Я уже спросил в ответе к watchmaker, навсякий случай продублирую тут. А как можно обработать мгновенные добавления? Т.е. добавления, которые выглядят на графике как вертикали. Мы не можем задать вертикали линейной функцией.