Назначение системы
Рассчитывать Value at Risk по открытым позициям Банка: по акциям, облигациям, валютам, в дальнейшем по другим инструментам.
VaR -сколько денег Банк может потерять (заработать) по заданным открытым позициям за заданный промежуток времени с заданной вероятностью на заданную дату вследствие изменения цен.
Внешние взаимодействия VaR NAVIGATOR
Организация взаимодействия
Взаимодействие VaR NAVIGATOR с другими приложениями организуется с целью обеспечения алгоритмов расчета VAR необходимыми данными. Перечень необходимых данных из внешних приложений для обеспечения расчета VAR включает в себя
- список ЦБ
- портфели
- характеристики ЦБ
- рыночные котировки ЦБ
- накопленный купонный доход для облигаций
- позиции банка по ЦБ
В настоящий момент реализована следующая схема взаимодействия приложений по информации для обеспечения расчета VAR.
(Кликните на изображение ниже, чтобы схему в полном размере.)

БД цен переоценок обеспечивает VaR NAVIGATOR
- рыночными ценами, которые формируются по специально разработанным для получения цен переоценок алгоритмам
- таблицей соответствия, позволяющей однозначно установить соответствие между списками ЦБ из разных приложений.
Securities NAVIGATOR обеспечивает VaR NAVIGATOR
- описанием ЦБ, включающим различные характеристики ЦБ
- НКД для облигаций
- списком портфелей и их составом
- списком ЦБ, который используется для расчета VAR.
- текущими позициями банка по ЦБ
Все необходимые для расчета VAR данные VaR NAVIGATOR получает через интерфейсы к соответствующим приложениям. Интерфейсы VaR NAVIGATOR реализуют только запросы.
В качестве запроса в настоящий момент можно рассматривать:
- вызов процедуры внешнего приложения, реализующей некоторый алгоритм.
- запросы на получение определенного вида информации из целевого приложения и получение ответов на них
- непосредственное обращение к таблицам приложения, если невозможно вызвать подходящую процедуру
Вместе с тем целевое приложение может заранее готовить данные для регулярно поступающих запросов. Запрос при этом должен уметь определять, есть ли для него готовый результат.
Обращение к БД цен переоценок (Quote NAVIGATOR)
В БД цен переоценок имеются внешние интерфейсы, которые представляют собой процедуры, реализующие запросы из VaR NAVIGATOR.
Функциональные возможности
- Для расчета используются данные по открытым позициям на дату расчета и цены за некоторый исторический период. Источник - Securities NAVIGATOR (возможны другие системы Заказчика).
- Расчет производится в разрезе портфелей и инструментов. Каждый портфель может включать некоторое количество инструментов.
- Для расчета берутся цены переоценки для акций и ставки доходности для облигаций для каждого инструмента за заданное количество рабочих дней (одно значение за каждый рабочий день для каждого инструмента).
- Расчет может осуществляться двумя путями:
- По нажатию кнопки. При этом в качестве параметра передаются
- начальная и конечная даты, за которые должен быть произведен расчет (также необходим флаг "расчет на сегодня"),
- вероятность, с которой должен быть произведен расчет,
- период, для которого рассчитывается VaR.
- кроме того, опционально может быть задан портфель или инструмент.
- Автоматически во время ночного Batch, при этом в строке задаются те же параметры
- Структура данных для сохранения расчета:
- Дата, на которую произведен расчет
- Портфель
- Инструмент
- Тип инструмента (1=Bonds, 2=Equities)
- Открытая позиция (в штуках для акций, по номиналу для облигаций)
- Цена (рыночная цена на Дату, в деньгах для акций, в процентах для облигаций)
- Рыночная стоимость (стоимость позиции по Цене) (для облигаций берется грязная цена).
- Волатильность цены
- VaR (считается на основе волатильности)
- Вероятность
- Период для VaR
Алгоритмы расчета
Расчет волатильности цен
Волатильность ставок рассчитывается для всех инструментов отчета.
Для каждого инструмента осуществляется проверка, хватает ли данных по ценам. Количество точек должно быть не меньше минимального значения. Если меньше, то Volatilityi = 0 и выход из цикла, иначе:

Для каждого инструмента типа Bonds, имеющего нулевую волатильность, делается попытка рассчитать ее по облигациям близким по параметрам. Для описания алгоритма назовем инструмент, для которого рассчитывается волатильность базовым.
Левым инструментом для заданного базового инструмента назовем инструмент, который входит в одну с ним группу и имеет дату погашения меньшую, чем рассматриваемый базовый инструмент. Аналогично правый инструмент имеет большую дату погашения.
Итак, делается попытка рассчитать волатильность для ближайшего левого инструмента. Если для него данных недостаточно, то берется следующий левый инструмент, и так пока все инструменты не будут исчерпаны. Далее, аналогично, делается попытка рассчитать волатильность для правого инструмента.
Если не удалось рассчитать волатильность ни для левого, ни для правого инструмента, то волатильность базового инструмента равно нулю. Если удалось рассчитать волатильность либо только для левого, либо только для правого инструмента, то для базового инструмента берется волатильность левого, или правого инструмента соответственно. Если удалось рассчитать волатильность и для левого и для правого инструментов, то волатильность базового инструмента определяется методом линейной интерполяции по формуле:

По описанному алгоритму делается попытка определить волатильность для всех инструментов типа Bonds, для которых она не определилась сразу (т.е. равна нулю).
Расчет VaR
VaR рассчитывается для всех открытых позиций в разрезах описанных ранее.
Для акций

где N - количество акций в позиции
Для облигаций
Для расчета VaR для облигаций сначала рассчитывается ставка дисконтирования, которая могла бы быть в случае неблагоприятного изменения цены.

Далее рассчитывается потенциальная рыночная цена для каждой облигации методом дисконтирования потоков платежей по вычисленной выше ставке:

где
C - coupon payments
R - discounting rate DR divided by frequency of coupon payments a year
M - face value
n - number of coupon payments
Далее, для каждой облигации рассчитывается VaR

где
MVi - рыночная стоимость i-той облигации
N - количество облигаций в позиции
|