Кейс: CS
Введение
Это крупный трейдинговый портал, который анализирует десятки мегабайт данных, составляет прогнозы рыночных трендов, визуализирует графики по ключевым метрикам и мгновенно уведомляет трейдеров о резких изменениях на рынке. На платформе также реализована гибкая многоуровневая система подписок.
Оптимизация сбора данных
Большинство подобных проектов получают данные через официальные платные API, стоимость которых в трейдинговой тематике начинается от $200 в месяц. Чтобы оптимизировать бюджет, была разработана и внедрена альтернативная многоуровневая система парсинга и агрегации данных. Справа продемонстрирован пример интерфейса вывода этих метрик.
Обход лимитов API и экономия бюджета
Первый уровень системы использует бесплатные API. Главная сложность заключалась в строгих лимитах на количество запросов. Для решения этой проблемы я спроектировал алгоритм автоматической ротации: при исчерпании лимитов сборщик мгновенно переключается на следующий бесплатный аккаунт. За время прохождения по цепочке аккаунтов на первых профилях лимиты успевают обновиться, что обеспечивает непрерывный цикл скачивания. Данное решение уже сэкономило заказчику от $300 в месяц. На скриншоте также показаны интерактивные шкалы данных и вкладки переключения.
Эмуляция пользовательского поведения при парсинге
Второй уровень системы — прямой парсинг данных с официального сайта американской биржи. Чтобы избежать блокировок со стороны защитных систем биржи, я реализовал алгоритм динамической подмены User-Agent и заголовков (HTTP headers): при каждом запросе случайным образом генерируются уникальные данные о браузере, операционной системе и разрешении экрана. Справа продемонстрирован интерфейс подписки на события. Пользователь может выбрать интересующие валютные пары и настроить мгновенные уведомления об изменениях котировок в удобный мессенджер.
Парсинг и обработка Big Data отчетов
Третий уровень сбора — ежемесячная обработка официальных сводных отчетов американской биржи. Главная техническая сложность заключалась в объеме файлов (около 170 МБ каждый). Для оптимизации потребления оперативной памяти и исключения зависаний сервера, скрипт поэтапно скачивает, парсит и структурирует этот массив данных, распределяя информацию по оптимизированным таблицам базы данных.
Агрегация данных и математические алгоритмы
Собранные со всех трех уровней данные проходят через кастомную аналитическую систему. На основе сырой информации строятся сложные прогнозы, исторические справки и тепловые карты трендов. Под каждый тип аналитики я разработал индивидуальный алгоритм обработки, трансформирующий массивы чисел в понятные инсайты. Сбоку представлена демонстрация экрана с ключевыми результирующими шкалами и блоком Indicators Summary для трейдеров.
Дополнительный функционал и монетизация
На портале реализована полноценная международная локализация (мультиязычность: русский и английский языки), быстрая авторизация через Google OAuth и гибкая система тарифных планов. В качестве триал-периода бесплатная версия предлагает доступ к анализу одной валютной пары (AUD/USD). На скриншоте справа показан интерфейс продвинутого вывода данных Option Flows для платных подписчиков.