Ignite Risk Engine

Веб-приложение для просмотра портфеля, прогнозов и риск-сценариев по инструментам Московской биржи. Проект использует Java 17, Spring Boot, Gradle и Apache Ignite как хранилище рыночных данных, портфелей, истории и расчетных снимков.

Подробное описание актуальной архитектуры вынесено в docs/architecture/architecture.md. В этом README оставлены сценарии использования и настройка решения под свой портфель.

Что Уже Умеет

Быстрый Запуск

Требования:

Запуск:

.\gradlew.bat :backend-api:bootRun

После старта откройте:

http://localhost:8080

Основные страницы:

Как Настроить Свой Портфель

Портфели лежат в:

config-loader/src/main/resources/config/portfolios/

Создайте новый файл, например:

config-loader/src/main/resources/config/portfolios/my-portfolio.tsv

Формат простой: количество и тикер через табуляцию.

10	SBER
5	LKOH
20	SU26248RMFS3
100	USD

Имя файла без .tsv становится portfolioId. В примере это my-portfolio; он появится в выпадающем списке портфелей.

Поддерживается и расширенный формат с явным portfolioId в первой колонке:

my-portfolio	10	SBER
my-portfolio	5	LKOH

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

1,35	CNY

После изменения файла приложение перечитает конфиг автоматически. Если нужно гарантированно начать с чистого состояния, перезапустите backend.

Как Добавить Прогнозы

Прогнозы читаются из:

config-loader/src/main/resources/config/shares.tsv

Базовый пример для тикера:

SBER	forecast	340	360	390
	forecast.weight	0.3	0.4	0.3
	forecast.comment	Conservative	Base	Upside
	dividend.forecast	28	32	36
	dividend.forecast.weight	0.3	0.4	0.3
	dividend.forecast.comment	Low case	Base case	High case

Что это значит:

Система использует эти данные для:

Как Настроить Волатильность И Корреляции

Файл:

config-loader/src/main/resources/config/volatility.conf

В секции [volatility] задается базовая годовая волатильность по классам активов:

STOCK	0.38
BOND	0.14
FX	0.20
FUND	0.28

В секции [covariance] задается матрица корреляций между классами активов.

В секции [simulation-reference-weights] задаются веса базовых источников цены для смешанного прогноза:

current_price	1
moving_average_120	1
analyst_forecast	1

Если для инструмента накоплена достаточная история, система также может использовать реализованную волатильность по самому инструменту. Слишком экстремальные значения помечаются как исключенные и заменяются классовым fallback.

Как Выбрать Источник Данных

На главной и странице риска есть выбор источника рынка.

Модельный snapshot лежит здесь:

config-loader/src/main/resources/config/market-snapshots/model-market-snapshot.tsv

Его удобно использовать, когда нужен воспроизводимый демо-прогон без зависимости от внешнего API.

Как Читать Экраны

Главная страница:

Прогнозы:

Риски:

Карточка актива:

Технический раздел:

Основные API

Режимы Расчета Риска

Ограничения