В настоящее время я пытаюсь сделать простую реализацию для свечей цен на акции. Допустим, у нас есть акция под названием XYZ. Эта акция получает поток цен (без определенной частоты), который (например) выглядит так: XYZ: [10,2, 10,7, 12, 11 ....].
Цель состоит в том, чтобы записывать некоторые показатели за каждую прошедшую минуту, чтобы отразить состояние этого запаса. У свечи есть такие показатели, как цена закрытия (последняя известная цена в течение минуты). , Высокая цена (максимальная цена в течение минуты)... и т.д.
Я подумал, что могу реализовать это с помощью Redis TimeSeries. Я рассматривал это решение, потому что могу создавать правила для потока цен, и каждый 60 секунд он сбрасывает некоторые агрегаты (например: max, min, first и т. д.) в корзину назначения.
Моя текущая реализация с использованием Redis TimeSeries (в Python) для подсвечников для каждого strong> цена акции выглядит примерно так (снова на примере акции XYZ) и без меток для простоты:
from redistimeseries.client import Client
r = Client()
r.flushdb()
# Create source & destination buckets
r.create('XYZ_PRICES') # source
r.create(closing_price)
r.create(highest_price)
# Create rules to send data from src -> closing_price & highest_price buckets
r.createrule(src, 'closing_price', 'last', bucket_size_msec=60000)
r.createrule(src, 'highest_price', 'max', bucket_size_msec=60000)
Мои вопросы:
- Есть ли способ отправить более одной агрегации (например, max, last и т. д.) в одном правиле вместо создания нескольких сегментов источника и назначения для каждой акции?
- Подходит ли Redis TimeSeries для этой задачи? Или будет проще использовать другое решение (например, потоки Redis)?