Авторизация
Забыли пароль?
Сброс пароля
Вернуться к авторизации
RUWARD AWARD #1

Инвестиционная платформа Advisors’ Axiom от Росбанка

Разработка сайтов Кейс года

1. Вводная задача от заказчика, проблематика, цели

Advisors’ Axiom. Инвестиционная платформа с нейросетью для оценки тональности новостей

О ПРОЕКТЕ

Инвестиционная платформа Advisors’ Axiom — это площадка для совместной работы инвесторов сегмента Premium и Private Banking, инвестиционных консультантов и финансовых экспертов, разработанная ПАО РОСБАНК.

Возможности платформы:

ВО ЧТО ИНВЕСТИРОВАТЬ, КОГДА И ЗАЧЕМ

— Подборки ценных бумаг

— Продуктовый каталог

— Модель сбалансированного инвестиционного портфеля

ТОЛЬКО ВАЖНЫЕ НОВОСТИ

Показывает только те новости, которые могут повлиять на цену активов клиента, и отмечает тональность этого события

РИСК-МЕНЕДЖМЕНТ

Оценка риска портфеля и инвестиционное профилирование

ЗАДАЧА

Необходимо было разработать MVP удобного онлайн-инструмента для управления капиталом для клиентов Росбанка сегмента Premium и Private Banking с возможностью следить за всеми изменениями их портфеля, а также мобильное приложение к нему.

Платформа на стадии MVP должна включать профиль инвестора и инвестиционного консультанта, который закреплен за каждым клиентом и помогает ему в формировании и реализации его инвестиционной стратегии.

Сервис должен не только содержать всю необходимую информацию по портфелю, но и сигнализировать о негативных изменениях портфеля для клиентов, и отслеживать происходящие в экономике изменения с помощью машинного обучения, анализировать состояние активов и фиксировать их динамику.

2. Описание реализации кейса и творческого пути по поиску оптимального решения

Особенности работы с исходными данными

Разнородные исходные данные из различных банковских учетных систем загружаются в БД PostgreSQL.

Загрузка информации, ее способы и оперативность находились под контролем специалистов банка и вне влияния команды разработки.

Способы загрузки информации:

— Удаление БД и полная загрузка

— Частичные insert

— Частичный update

— Частичный delete

Система производит подготовку данных в нужном формате и объеме, необходимых для целей визуального представления информации в интерфейсе.

Вследствие того что система не имеет сведений о способах поступления информации, ее объеме и частоте, процедуры обработки исходных данных каждый раз выполняют все расчеты с нуля на требуемую глубину на весь объем данных.

Это позволяет гарантировать корректность информации сразу после расчета на основе объема исходных данных, который был на момент расчета.

Все расчеты выполняются в разрезе одного клиента.

На примере типовой задачи по расчетам, например, активов из исходных данных:

— Производится обход списка клиентов в БД и постановка для каждого клиента соответствующей задачи «расчет последней информации по активам» через брокер сообщений, т. е. генерируется множество независимых задач расчета по каждому клиенту.

— Контейнеры-консьюмеры производят обработку сообщений из очередей.

— Увеличение производительности достигается увеличением количества consumer-обработчиков.

База данных в этой схеме является потенциально узким местом, которое на текущий момент не масштабируется.

Однако считаем, что имеем запас производительности БД еще почти на 2 порядка до тех пор, пока эта проблема с объемом данных и производительностью БД действительно возникнет.

До тех пор увеличение производительности рекомендуется решать штатными тривиальными методами:

— Увеличение ресурсов сервера БД.

— Улучшение структуры таблиц исходных данных.

— Разделение БД на чтение и запись.

Однако такую схему нельзя признать удовлетворительной на долгий срок, и тот временной период, который имеется в запасе, требуется использовать для перепроектирования схемы поставки исходных данных в систему.

Язык, фреймворки, эксплуатация

По требованиям заказчика в качестве языка разработки был выбран python и django — в качестве фреймворка.

Django-админ выполняет роль чернового интерфейса к БД системы для административного персонала.

Система предоставляет restful-API для web-клиентов.

С точки зрения назначения и интерфейса есть два потребителя:

1) менеджер банка,

2) клиент банка.

Поэтому система делится:

1) на личный кабинет менеджера,

2) личный кабинет клиента.

Функционал API для личного кабинета клиента на 95% основан на API личного кабинета менеджера и представляет собой урезанную версию API.

Они работают на одной кодовой базе, но выполняются в разных контейнерах в средах банка с различными уровнями доступа:

— личный кабинет менеджера доступен только из сети банка с устройств банка;

— личный кабинет клиента доступен из сети Интернет.

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

Основную часть системы можно представить как монолит, выполняющий несколько задач:

— Админ-панель как технический интерфейс для просмотра и отладки исходных данных.

— API для личного кабинета менеджера.

— API для личного кабинета клиента.

— Обработчики-консьюмеры задач из очередей.

Админ-панель и API для личного кабинета менеджера объединяются в одном контейнере.

Другие функции выполняются каждая в своем отдельном контейнере.

Сопутствующая функциональность реализуется в микросервисной архитектуре. В частности, отдельно реализованы вынесены такие сервисы, как:

— Генератор PDF-отчетов (php).

— Профилирование клиентов (опросник клиентов и расчет риск-рейтинга).

— Новостной модуль (парсинг и анализ новостей с помощью машинного обучения).

— Внешнее API для поставщиков услуг.

Взаимодействие между микросервисами и основным функционалом осуществляется через брокер сообщений и restful-API.

Нейросеть для оценки тональности новостей

Для машинного обучения модели мы использовали более 20 тысяч страниц новостей на английском языке и более 10 тысяч страниц новостей на русском языке. При этом был обучен собственный дескриптор слов, поскольку в новостях много специализированных терминов.

После был сформирован собственный набор данных из 10 тысяч новостей, которые сначала были размечены автоматически с использованием вычисляемого индикатора прогноза аномальной доходности. А потом аналитиком была произведена ручная разметка собранных статей с точки зрения общей тональности новости и влияния на рыночную стоимость компании (в средней и долгосрочной перспективе), что позволило достичь большей точности в работе системы.

Особое внимание к вопросам безопасности

В процессе интеграции платформы с внутренней банковской инфраструктурой специалисты Росбанка внедрили системы мониторинга базы данных Imperva, сбора событий и инцидентов SIEM, обеспечения безопасности обмена данных WSO2, тестирования кода Solar AppScreener и приняты другие меры по обеспечению конфиденциальности.

3. Результаты сотрудничества

Вeб-версия платформы включает в себя следующее:

— Представление услуг и продуктов банка в виде единого каталога продуктов (ценные бумаги, счета, депозиты, страхование, доверительное управление и т. п.).

— Объединение данных из нескольких учетных систем, агрегация, приведение к виду, понятному пользователю, обогащение и предоставление в едином интерфейсе.

— Расчет доходности активов в денежном и процентном выражениях по различным активам (каждый тип актива может иметь собственную методику расчета).

— Вывод истории операций по различным активам из разнородных источников данных.

— История стоимости активов за различные временные периоды.

— Вывод актуальной рыночной цены и средней цены покупки актива.

— Различные интерфейсные группировки активов для более удобного предоставления информации.

— Система анализа портфелей клиентов как для клиентов, так и для их менеджеров. Например:

- Изменение портфеля клиента.

- Изменения ценной бумаги клиента.

- Концентрация всех активов в одной валюте.

- Концентрация всех активов в одном продукте.

- Портфель не соответствует эталонному и др.

— Генерация pdf-отчетов по каждому клиенту в ежедневном режиме.

— Процесс ребалансировки портфеля клиента (подбор продуктов для клиента, которые могут ребалансировать его портфель в соответствии с риск профилем).

— Предоставление новостей по продуктам клиента с оценкой их тональности (хорошо или плохо).

— Профилирование клиента (опрос и присвоение риск-рейтинга).

— Формирование заявок на покупки продуктов различных типов.

4. Заключение

Мобильное приложение для инвестирования Premium и Private клиентов состоит из двух частей:

1) личный кабинет финансового эксперта,

2) личный кабинет клиента.

Основные блоки приложения:

— Динамика портфеля всех клиентов менеджера за год.

— Лидер роста, падения и выплат по инвестиционному портфелю на текущую дату.

— Новости по компаниям — положительные/отрицательные/нейтральные.

— При переходе на конкретную новость можно увидеть, каких клиентов она может заинтересовать.

— Актуальные продукты, которые доступны к приобретению.

— Каталог клиентов с фильтрацией по необходимым параметрам.

— Отчеты с подробным содержанием портфеля клиента.

— Покупка инвестиционных продуктов.

— Предложение по ребалансировке портфеля клиента.

Нейросеть для оценки тональности новостей

Приложение с заданным периодом времени автоматически считывает свежие новости из определенного перечня сайтов-источников, умеет получать текст новости по ссылке (URL) на страницу сайта-источника.

Каждая новость, попадающая на оценку и формирование анонса автоматически привязана по заданному перечню тегов к необходимой компании.

Изображение подбираются для новости автоматически на основе тегов категории компании.

Для перевода новости на русский язык используются внешние сервисы, обеспечивающие качественный машинный перевод текста.

Корректировка анонсов, изображений и публикаций выполняются через панель администрирования модератором контента.

Результаты голосования

Средний балл: 7.6

Богданов Александр Игоревич - оценка 6

Горбаров Илья - оценка 9

Пеньков Валерий Павлович - оценка 7

Красавцев Павел - оценка 8

Заруцкий Константин - оценка 8