Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conditional VAR based on real data (1 dataset)

Анастасия Буркова и Валерия Рублева

Нашим проектом являлся подсчёт $CVaR$ для 1 датасета. Перед тем, как приступить к описанию кода, уточним данный термин.

$CVaR(p)$ - это условная стоимость под риском. $p$ - это вероятность риска (или 1 - уровень доверия). Стандартными значениями $p$ являются $0,01$ и $0.05$. Для подсчета $CVaR(p)$ предполагается, что $VaR(p)$ существует.

Также важно уточнить, что мы использовали исторический метод подсчёта, потому что этот метод дает меньше всего ограничений на рассматриваемую выборку и в предосталенных данных распределение доходностей дискретно и взято из уже прошедших лет, то есть до 2022 года включительно.

Нужные библиотеки

Перед тем, как начать работу с кодом, мы подключили билиотеки:

  • $openpyxl$ (для чтения файла формата $xslx$)
  • $pandas$ (для работы с датасетом)
  • $numpy$ (для математических выражениях на массивах)

1. Выгрузка данных

Чтобы воспользоваться датасетом, находящимся в файле формата $excel$, надо изначально выгрузить в программу все нужные данные. Для этого мы использовали

df = pd.read_excel('dataset.xlsx', sheet_name='1')

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

2. Предподсчёт

Перед тем как подсчитать $CVaR$, с помощью данной таблицы был получен отдельный столбец (объект типа $pd.Series$): отношение $curs$ нынешней даты к предыдущей. Затем этот столбец был отсортирован по возрастанию и проранжирован. В представленном коде этот объект имеет название $ret$.

3. Функция для подсчётa CVaR

После подсчета $CVaR$ для конкретных данных, в код была добавлена функция, считающая $CVaR$ для любого процента (переменная $p$) и для любого столбца данных (переменная $data$), которые пользователь хочет указать.

Алгоритм работы функции:

  • Подсчитывается количество данных в $ret$ - переменная count

  • Находится позиция c номером $p$ процентов от $count$ - переменная $pos$

  • Берётся среднее значение всех чисел с меньшей позицией (сами значения тоже меньше, чем число, стоящее на $pos$ благодаря сортирвоке) - это $CVaR$

4. Результаты

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

Запустив функцию на самом встречаемой вероятности риска (0.01), мы получили результат: 0.9048620951800836

В приложенных файлах можно увидеть написанный код н python.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages