exponenta event banner

Поток операций моделирования creditMigrationCopula

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

Шаг 1. Создание объекта creditMigrationCopula с 4-факторной моделью

Загрузите сохраненные данные портфеля.

load CreditMigrationData.mat;

Масштабируйте цены облигаций для позиций портфеля для каждой облигации.

migrationValues = migrationPrices .* numBonds;

Создать creditMigrationCopula объект с четырехфакторной моделью с использованием creditMigrationCopula.

cmc = creditMigrationCopula(migrationValues,ratings,transMat,...
lgd,weights,'FactorCorrelation',factorCorr)
cmc = 
  creditMigrationCopula with properties:

            Portfolio: [250x5 table]
    FactorCorrelation: [4x4 double]
         RatingLabels: [8x1 string]
     TransitionMatrix: [8x8 double]
             VaRLevel: 0.9500
          UseParallel: 0
      PortfolioValues: []

Шаг 2. Установите значение VaRLevel равным 99%.

Установите VarLevel для свойства creditMigrationCopula объект 99% (значение по умолчанию - 95%).

 cmc.VaRLevel = 0.99;

Шаг 3. Отображение Portfolio для получения информации о значениях миграции, рейтингах, LGD и весах.

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

 head(cmc.Portfolio)
ans=8×5 table
    ID    MigrationValues    Rating     LGD                    Weights              
    __    _______________    ______    ______    ___________________________________

    1      [1x8 double]      "A"       0.6509      0       0       0     0.5     0.5
    2      [1x8 double]      "BBB"     0.8283      0    0.55       0       0    0.45
    3      [1x8 double]      "AA"      0.6041      0     0.7       0       0     0.3
    4      [1x8 double]      "BB"      0.6509      0    0.55       0       0    0.45
    5      [1x8 double]      "BBB"     0.4966      0       0    0.75       0    0.25
    6      [1x8 double]      "BB"      0.8283      0       0       0    0.65    0.35
    7      [1x8 double]      "BB"      0.6041      0       0       0    0.65    0.35
    8      [1x8 double]      "BB"      0.4873    0.5       0       0       0     0.5

Шаг 4. Просмотр значений миграции для контрагента.

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

bar(cmc.Portfolio.MigrationValues(1,:))
xticklabels(cmc.RatingLabels)
title('Migration Values for First Company')

Figure contains an axes. The axes with title Migration Values for First Company contains an object of type bar.

Шаг 5. Запустите моделирование.

Используйте simulate для моделирования 100 000 сценариев.

 cmc = simulate(cmc,1e5)
cmc = 
  creditMigrationCopula with properties:

            Portfolio: [250x5 table]
    FactorCorrelation: [4x4 double]
         RatingLabels: [8x1 string]
     TransitionMatrix: [8x8 double]
             VaRLevel: 0.9900
          UseParallel: 0
      PortfolioValues: [1x100000 double]

Шаг 6. Создание отчета по портфельному риску.

Используйте portfolioRisk функция для получения отчета о показателях риска и доверительных интервалах для EL, Std, VaR, и CVaR.

[portRisk,RiskConfidenceInterval] = portfolioRisk(cmc)
portRisk=1×4 table
      EL       Std      VaR     CVaR 
    ______    _____    _____    _____

    4515.9    12963    57176    83975

RiskConfidenceInterval=1×4 table
           EL                Std               VaR               CVaR     
    ________________    ______________    ______________    ______________

    4435.6    4596.3    12907    13021    55739    58541    82137    85812

Шаг 7. Визуализация распределения.

Просмотрите гистограмму значений портфеля.

figure
h = histogram(cmc.PortfolioValues,125);
title('Distribution of Portfolio Values');

Figure contains an axes. The axes with title Distribution of Portfolio Values contains an object of type histogram.

Шаг 8. Перекрывать значение, если все контрагенты поддерживают текущие кредитные рейтинги.

Наложение значения объекта портфеля (cmc) принимает, если все контрагенты сохраняют свои текущие кредитные рейтинги.

CurrentRatingValue = portRisk.EL + mean(cmc.PortfolioValues);
 
hold on
plot([CurrentRatingValue CurrentRatingValue],[0 max(h.Values)],'LineWidth',2);
grid on

Figure contains an axes. The axes with title Distribution of Portfolio Values contains 2 objects of type histogram, line.

Шаг 9. Создание отчета о взносах на риски.

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

rc = riskContribution(cmc);
disp(rc(1:10,:))
    ID      EL       Std       VaR       CVaR 
    __    ______    ______    ______    ______

     1    15.521    41.153    238.72    279.18
     2      8.49    18.838    92.074    122.19
     3    6.0937    20.069    113.22    181.53
     4    6.6964    55.885    272.23    313.25
     5    23.583    73.905    360.32    573.39
     6    10.722    114.97    445.94    728.38
     7    1.8393    84.754    262.32    490.39
     8    11.711    39.768    175.84    253.29
     9    2.2154    4.4038    22.797    31.039
    10    1.7453    2.5545    9.8801    17.603

Шаг 10. Смоделировать воздействие риска с помощью t копулы.

Чтобы использовать t coula с 10 степенями свободы, используйте simulate с необязательными входными аргументами. Сохранение результатов в новом creditMigrationCopula объект (cmct).

cmct = simulate(cmc,1e5,'Copula','t','DegreesOfFreedom',10)
cmct = 
  creditMigrationCopula with properties:

            Portfolio: [250x5 table]
    FactorCorrelation: [4x4 double]
         RatingLabels: [8x1 string]
     TransitionMatrix: [8x8 double]
             VaRLevel: 0.9900
          UseParallel: 0
      PortfolioValues: [1x100000 double]

Шаг 11. Создайте отчет по портфельному риску для t compula.

Используйте portfolioRisk функция для получения отчета о показателях риска и доверительных интервалах для EL, Std, VaR, и CVaR.

[portRisk2,RiskConfidenceInterval2] = portfolioRisk(cmct)
portRisk2=1×4 table
     EL      Std      VaR        CVaR   
    ____    _____    _____    __________

    4544    17034    72270    1.2391e+05

RiskConfidenceInterval2=1×4 table
           EL                Std               VaR                    CVaR          
    ________________    ______________    ______________    ________________________

    4438.5    4649.6    16960    17109    69769    75382    1.1991e+05    1.2791e+05

Шаг 12. Визуализируйте распределение для t-копулы.

Просмотрите гистограмму значений портфеля.

figure
h = histogram(cmct.PortfolioValues,125);
title('Distribution of Portfolio Values for t Copula');

Figure contains an axes. The axes with title Distribution of Portfolio Values for t Copula contains an object of type histogram.

Шаг 13. Перекрыть значение, если все контрагенты сохраняют текущие кредитные рейтинги для t copula.

Наложение значения объекта портфеля (cmct) принимает, если все контрагенты сохраняют свои текущие кредитные рейтинги.

CurrentRatingValue2 = portRisk2.EL + mean(cmct.PortfolioValues);

hold on
plot([CurrentRatingValue2 CurrentRatingValue2],[0 max(h.Values)],'LineWidth',2);
grid on

Figure contains an axes. The axes with title Distribution of Portfolio Values for t Copula contains 2 objects of type histogram, line.

См. также

| | | | | |

Связанные примеры

Подробнее