Рабочий процесс симуляции creditMigrationCopula

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

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

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

load CreditMigrationData.mat;

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

migrationValues = migrationPrices .* numBonds;

Создайте creditMigrationCopula объект с 4-факторной моделью, использующий 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-копулу с 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-копулы.

Используйте 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 копулы.

Наложите значение на объект портфеля (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.

См. также

| | | | | |

Похожие примеры

Подробнее о