Агрегировать и сгущать значения временных рядов с помощью Django Querysets?
В настоящее время я пытаюсь создать небольшой криптотрекер для развлечения, используя API CoinMarketCap. API можно вызывать каждые 5 минут - каждый раз возвращая текущее значение биржи , однако я хочу строить свой график с интервалом в 30 минут.
Как я могу сжать информацию о стоимости обмена с 5-минутным шагом до 30-минутных точек данных с соответствующей информацией "Open, High, Low, Close"? (также известный как первое биржевое значение, максимальное биржевое значение, минимальное биржевое значение, последнее биржевое значение)
Пример данных:
2021-10-23 10:00:00 – price: 50
2021-10-23 10:05:00 – price: 45
2021-10-23 10:10:00 – price: 43
2021-10-23 10:15:00 – price: 47
2021-10-23 10:20:00 – price: 51
2021-10-23 10:25:00 – price: 70
2021-10-23 10:30:00 – price: 65
2021-10-23 10:35:00 – price: 55
2021-10-23 10:40:00 – price: 47
2021-10-23 10:45:00 – price: 51
2021-10-23 10:50:00 – price: 62
2021-10-23 11:55:00 – price: 50
Желаемый выход:
2021-10-23 10:00 – open: 50, high: 70, low: 45, close: 57
2021-10-23 10:30 – open: 65, high: 62, low: 47, close: 50
Образец модели:
class Crypto(models.Model):
ticker = models.CharField(max_length=10)
price = models.DecimalField(max_digits=7, decimal_places=2)
percent_change = models.DecimalField(max_digits=5, decimal_places=2)
timestamp = models.DateTimeField(auto_add_now=True)