Как можно сжимать временные ряды в памяти? У меня есть

исторические стоимости ценных бумаг. Данные для каждой минуты в истории OHLC (Open, High, Low, Close). Соответственно, Open это цена в начале минутного интервала, High это максимальное значение в эту минуту, Low - минимальное, и Close - цена закрытия. Стандартные данные для бирж. Мне нужна точность примерно в 1/1000 процента для этих данных. float32 в 50 раз точнее, чем мне нужно. Но вот такое дело - цена меняется очень медленно, может быть можно какую-то компрессию специально для этого случая применить? Дело в том, что у меня очень много этих данных, и на них нужно тренировать алгоритм, держать их в памяти.

10 ответов

21 просмотр

Зачем тебе флоат? Интов же хватает. У каждой акции есть минимальный шаг цены.

Vladimir Mokeev
Зачем тебе флоат? Интов же хватает. У каждой акции...

Стандартно инт тоже 32-битный (но на это не стоит закладываться)

Viktor Shamparov
Стандартно инт тоже 32-битный (но на это не стоит ...

Но в интах, если хранить только разности

Ну базовое решение - дельта-кодирование + Хаффман сверху, да

Vladislav 🇺🇸🚜
Ну базовое решение - дельта-кодирование + Хаффман ...

Он в памяти это хранить хочет. Сжатым хранить?

Vladimir Mokeev
Он в памяти это хранить хочет. Сжатым хранить?

В идеале да, дельта раскодируется очень быстро Upd. Я не автор запроса, но по формулировке делаю такой вывод

Viktor Shamparov
В идеале да, дельта раскодируется очень быстро Upd...

И, кстати, вариации дельты вообще могут в аппаратуру процессора встраивать для сжатия передачи данных между блоками внутри.

George-Polevoy Автор вопроса

Так я же буду в итоге работать с float. Но это не значит, что хранить буду float. Вот думаю, какое лучше представление выбрать, чтобы сжать хорошо и быстро. Причем можно сжать с потерями до определенной точности.

George Polevoy
Так я же буду в итоге работать с float. Но это не ...

Так я и пишу. Что храни в интах. А работай со флоат

Похожие вопросы

Обсуждают сегодня

Всем привет Есть достаточно базовая задача: Дан неориентированный граф. Требуется определить, есть ли в нем цикл, и, если есть, вывести его. Входные данные подаются в виде ма...
Αλeksandr
10
Привет всем. Подскажите, как можно данную задачу более менее эффективно решить? В столовой одного известного Завода вот-вот начнётся обед. На обеде есть три гарнира — макарош...
Vitaliy
6
Всем привет Пытаюсь решить следующую задачу: https://informatics.msk.ru/mod/statements/view.php?id=6992&chapterid=101#1 Строка S была записана много раз подряд, после чего из ...
Αλeksandr
10
всем привет. У меня есть неупорядоченный массив точек(в моем случае в трёхмерном пространстве). Есть критерий связанности точек: если евклидово расстояние между ними меньше за...
Павлик Ливаткин
31
Доброе утро. Такой вопрос: есть ли какие-то практически полезные меры вычислительной мощности (в смысле computational complexity) для реальных машин, с ограниченными ресурсам...
Yaroslav Schekin
15
Друзья, практический вопрос надо счиать скользящую медиану в последовательности по заданному окну (длины N) тупой вариант - взять значения в окне, отсортировать, взять элеме...
Стас Выщепан
17
Здравствуйте. Есть задача нужно найти наименшое число P где фактриал P делиться на 10^N. Ограничения 10^9. Знаю что нужно найти такой P в конце как минимум N нулей. Решение с ...
. Azmiddin
20
#pragma once #include <iostream> #include <vector> template <typename T, typename Comp = std::less<T>> class Heap { public: Heap() = default; Heap(const std::vector<T>&...
Степан
1
Должна-ли работать такая стратегия: Мы каждую секунду бросаем монетку - орел или решка. Если орел - покупаем акцию на все деньги, если у нас есть деньги, или продаем все акци...
George Polevoy
13
Здравствуйте. Мне надо найти Kth Smallest Sum of Two Sorted Arrays за O(k log k). Например, если A = {1, 2, 3}, а B = {2, 3, 4}, то A + B = {3, 4, 5, 4, 5, 6, 5, 6, 7}, тогда...
Степан
9
Карта сайта