Задача состоит в нормализации(0-1) стакана приказов в биржевой торговле.
В стакане я могу видеть только 25 наилучших ценовых предложений, т.е. 25 приказов вида ASK и 25 приказов вида BID. Если я правильно понимаю то для нормализации нужно максимальное число в стакане(это будет 1), а минимальное(это будет 0), остальные числа это разброс между макс и мин значениями. Таким образом получается, что 1 всегда будет первый приказ в списке ASK, а 0 последний приказ в списке BID.
Подскажите, пожалуйста, как можно нормализовать быстро меняющиеся данные такого рода? Нужно ли создавать отдельную БД для нормализации? И если да, то как?(Приказы быстро отменяются/появляются и непонятно какие данные надо записывать)
Описанная вами нормализация называется Min-Max Scaling
и вычисляется по формуле:
z[i] = (x[i] - min(x)) / (max(x) - min(x))
Соответственно самым быстрым способом скалирования быстроизменяющихся данных будет хранение трёх дополнительных значений (переменных):
Расчёт скалированного значения:
z[i] = (x[i] - min_value) / diff_max_min
Далее по мере поступления новых значений обновлять эти три переменные при необходимости (если новое значение больше текущего максимума или меньше текущего минимума).
PS Другие способы нормализации данных
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть таблица avatars и таблица usersВ таблице users есть поле avatar_id
Использую laravel+nginxДопустим утром сделал chown -R 777 www-data /var/www/site
аргумент $value принимает значение только первого свойстваКак правильно применить это ко второму свойству?