Риск-Менеджмент
Позиционному инвестору требовалось решение следующей задачи:
- В реальном времени производить расчет убытков/прибылей по каждой открытой сделке, по каждому открытому инструменту, а также по всему портфелю в целом
- Отслеживать наличие и корректность стоп-ордеров по всем интрументам
- Рассчитывать допустимые риски по всем инструментам и портфелю в целом
- Выдавать рекомендации по измнению объема позиций и уровням стопов
Было выбрано решение в виде портфеля на языке QPILE. Алгоритм портфеля линейный. Последовательность действий
- получение информации об открытии и закрытии позиций
- обновление информации в хранилище. В качестве простейшего и достаточного для целе задач хранилища был выбран формат Excel, позволяющий в удобном для пользователя виде просматривать эту информацию
- чистка информации от завершенных сделок
- проверка актуальности данных хранилища. Проверяется полное совпадение их с данными, транслируемыми брокером
- получение информации о текущем состоянии рынка
- расчет прибыльности/убыточности всех открытых сделок, инструментов и портфеля в целом
- проверка наличия стоп-ордеров и их соответствия текущей открытой позиции
- расчет рисков по инструментам и рынку в целом на основании текущей рыночной информации и положении стоп-ордеров. Способ расчета риска определен заказчиком
- визуализация результатов в виде таблицы
- выдача рекомендаций по приведению риска к целевому уровню
В формируемой и обновляемой в реальном времени таблице, формируемой портфелем, фигурируют открытые позиции, сгруппированные по инструментам. При закрытии позиции она убирается из рассмотрения. Для каждой позиции рассчитываются и отображаются количество, себестоимость и другие параметры. На основании себестомостей и и текущих уровней стоп-ордеров по кадому инструменту вычисляются размеры рисков и пользователю выдаются рекомендации по наращиванию/уменьшению/закрытию позиций или изменению стоп-уровней.