Я надеюсь, что либо вы знаете, что вы хотите предоставить клиенту, либо они знают, чего хотят (ЧТО можно формализовать в спецификации требований)
Определение того, что вы хотите дать, может очень сильно изменить то, как вы хотите это сделать.
Давайте возьмем гипотетические (но часто используемые) сценарии
Допустим, вы хотите показать точку на XY (x-time y-price)
1. Допустим, пользователь выбирает гранулярность.
скажи 1 секунду.
дать пользователю возможность видеть почасово / ежедневно (если ежедневно, то самое большее за последние 3/5 дней)
2. Допустим, пользователь хочет видеть данные за 1 день
Теперь вы знаете, что вам нужно сгенерировать запрос, который будет возвращать 10 часов * 60 минут * 60 секунд тиков
Если пользователь хочет видеть данные о днях в виде галочки, тогда вы даете ему возможность видеть неделю / месяц / годы ...
Опять же, теперь вам просто нужно вернуть (1 год * 365день) отметки, если пользователь видит год
Если пользователь меняет разрешение / гранулярность, измените окно.
Еще одним сценарием может быть 10-миллисекундный тик на один день данных.
НЕ имеет смысла показывать 10-миллисекундный тик на графике недели или более.