exponenta event banner

creditexposures

Вычисление кредитного риска на основе стоимости договора

Описание

пример

[exposures,exposurecpty] = creditexposures(values,counterparties) вычисляет кредитный риск контрагента из массива значений внебиржевого контракта с маркой на рынок. Эти риски убытков используются при расчете CVA (корректировка кредитной стоимости) для портфеля.

пример

[exposures,exposurecpty] = creditexposures(___,Name,Value) добавляет необязательные аргументы «имя-значение».

пример

[exposures,exposurecpty,collateral] = creditexposures(___,Name,Value) вычисляет риски кредитоспособности контрагента из массива значений внебиржевого контракта с маркой на рынок с использованием необязательных аргументов пары «имя-значение» для CollateralTable и Dates, collateral результат возвращается для смоделированных сумм обеспечения, доступных контрагентам на каждую дату моделирования и по каждому сценарию.

Примеры

свернуть все

После вычисления стоимостей контрактов с маркой на рынок для портфеля свопов во многих сценариях вычислите кредитный риск для конкретного контрагента. Просмотр стоимости договора и кредитного риска с течением времени.

Во-первых, загрузка данных (ccr.mat), содержащий стоимость контракта с маркой на рынок для портфеля свопов по многим сценариям.

load ccr.mat
% Look at one counterparty.
cpID = 4;
cpValues = squeeze(sum(values(:,swaps.Counterparty == cpID,:),2));
subplot(2,1,1)
plot(simulationDates,cpValues);
title(sprintf('Mark-to-Market Contract Values for Counterparty: %d',cpID));
datetick('x','mmmyy')
ylabel('Portfolio Value ($)')
% Compute the exposure by counterparty.
[exposures, expcpty] = creditexposures(values,swaps.Counterparty,...
'NettingID',swaps.NettingID);
% View the credit exposure over time for the counterparty.
subplot(2,1,2)
cpIdx = find(expcpty == cpID);
plot(simulationDates,squeeze(exposures(:,cpIdx,:)));
title(sprintf('Exposure for counterparty: %d',cpIdx));
datetick('x','mmmyy')
ylabel('Exposure ($)')
xlabel('Simulation Dates')

Figure contains 2 axes. Axes 1 with title Mark-to-Market Contract Values for Counterparty: 4 contains 1000 objects of type line. Axes 2 with title Exposure for counterparty: 4 contains 1000 objects of type line.

Загрузить данные (ccr.mat), содержащий стоимость контракта с маркой на рынок для портфеля свопов по многим сценариям.

load ccr.mat

Посмотрите на одного контрагента.

cpID = 4;
cpIdx = swaps.Counterparty == cpID;
cpValues = values(:,cpIdx,:);
plot(simulationDates,squeeze(sum(cpValues,2)));
grid on;
title(sprintf('Potential Mark-to-Market Portfolio Values for Counterparty: %d',cpID));
datetick('x','mmmyy')
ylabel('Portfolio Value ($)')

Figure contains an axes. The axes with title Potential Mark-to-Market Portfolio Values for Counterparty: 4 contains 1000 objects of type line.

Вычислите риски убытков.

netting = swaps.NettingID(cpIdx);
exposures = creditexposures(cpValues,cpID,'NettingID',netting);

Просмотр кредитного риска со временем для контрагента.

figure;
plot(simulationDates,squeeze(exposures));
grid on
title(sprintf('Exposure for counterparty: %d',cpID));
datetick('x','mmmyy')
ylabel('Exposure ($)')
xlabel('Simulation Dates')

Figure contains an axes. The axes with title Exposure for counterparty: 4 contains 1000 objects of type line.

Вычислите профили кредитного риска.

profilesBefore = exposureprofiles(simulationDates,exposures)
profilesBefore = struct with fields:
     Dates: [37x1 double]
        EE: [37x1 double]
       PFE: [37x1 double]
      MPFE: 2.1580e+05
     EffEE: [37x1 double]
       EPE: 2.8602e+04
    EffEPE: 4.9579e+04

Рассмотрим новую сделку с контрагентом. Для этого примера возьмите другую сделку из исходного своп-портфеля и «скопируйте» ее для нового контрагента. Этот пример приведен только в иллюстративных целях.

newTradeIdx = 3;
newTradeValues = values(:,newTradeIdx,:);

% Append a new trade to your existing portfolio.
cpValues = [cpValues newTradeValues];
netting = [netting; cpID];
exposures = creditexposures(cpValues,cpID,'NettingID',netting);

Вычислите новые профили кредитного риска.

profilesAfter = exposureprofiles(simulationDates,exposures)
profilesAfter = struct with fields:
     Dates: [37x1 double]
        EE: [37x1 double]
       PFE: [37x1 double]
      MPFE: 2.4689e+05
     EffEE: [37x1 double]
       EPE: 3.1609e+04
    EffEPE: 5.6178e+04

Визуализируйте ожидаемые риски и дополнительные риски новой торговли. Используйте инкрементную подверженность для вычисления дополнительных расходов на корректировку кредитной стоимости (CVA).

figure;
subplot(2,1,1)
plot(simulationDates,profilesBefore.EE,...
    simulationDates,profilesAfter.EE);
grid on;
legend({'EE before','EE with trade'})
datetick('x','mmmyy','keeplimits')
title('Expected Exposure before and after new trade');
ylabel('Exposure ($)')

subplot(2,1,2)
incrementalEE = profilesAfter.EE - profilesBefore.EE;
plot(simulationDates,incrementalEE);
grid on;
legend('incremental EE')
datetick('x','mmmyy','keeplimits')
ylabel('Exposure ($)')
xlabel('Simulation Dates')

Figure contains 2 axes. Axes 1 with title Expected Exposure before and after new trade contains 2 objects of type line. These objects represent EE before, EE with trade. Axes 2 contains an object of type line. This object represents incremental EE.

Загрузить данные (ccr.mat), содержащий стоимость контракта с маркой на рынок для портфеля свопов по многим сценариям.

load ccr.mat

Посмотрите только на одного контрагента в этом примере.

cpID = 4;
cpIdx = swaps.Counterparty == cpID;
cpValues = values(:,cpIdx,:);

Вычислите необеспеченные риски.

exposures = creditexposures(cpValues,swaps.Counterparty(cpIdx),...
'NettingID',swaps.NettingID(cpIdx));

Просмотр кредитного риска со временем для контрагента.

plot(simulationDates,squeeze(exposures));
expYLim = get(gca,'YLim');
title(sprintf('Exposures for Counterparty: %d',cpID));
datetick('x','mmmyy')
ylabel('Exposure ($)')
xlabel('Simulation Dates')

Figure contains an axes. The axes with title Exposures for Counterparty: 4 contains 1000 objects of type line.

Добавьте соглашение об обеспечении для контрагента. 'CollateralTable' параметр является таблицей MATLAB ®. Таблицы можно создавать из электронных таблиц или других источников данных в дополнение к построению их в линию, как показано здесь. Дополнительные сведения см. в разделеtable.

collateralVariables = {'Counterparty';'PeriodOfRisk';'Threshold';'MinimumTransfer'};
periodOfRisk = 14;
threshold = 100000;
minTransfer = 10000;
collateralTable = table(cpID,periodOfRisk,threshold,minTransfer,...
'VariableNames',collateralVariables)
collateralTable=1×4 table
    Counterparty    PeriodOfRisk    Threshold    MinimumTransfer
    ____________    ____________    _________    _______________

         4               14           1e+05           10000     

Вычислите обеспеченные риски убытков.

[collatExp, collatcpty, collateral] = creditexposures(cpValues,...
    swaps.Counterparty(cpIdx),'NettingID',swaps.NettingID(cpIdx),...
    'CollateralTable',collateralTable,'Dates',simulationDates);

Постройте график уровней обеспечения и обеспеченных рисков убытков.

figure;
subplot(2,1,1)
plot(simulationDates,squeeze(collateral));
set(gca,'YLim',expYLim);
title(sprintf('Collateral for counterparty: %d',cpID));
datetick('x','mmmyy')
ylabel('Collateral ($)')
xlabel('Simulation Dates')

subplot(2,1,2)
plot(simulationDates,squeeze(collatExp));
set(gca,'YLim',expYLim);
title(sprintf('Collateralized Exposure for Counterparty: %d',cpID));
datetick('x','mmmyy')
ylabel('Exposure ($)')
xlabel('Simulation Dates');

Figure contains 2 axes. Axes 1 with title Collateral for counterparty: 4 contains 1000 objects of type line. Axes 2 with title Collateralized Exposure for Counterparty: 4 contains 1000 objects of type line.

Входные аргументы

свернуть все

3-D массив смоделированных марко-рыночных значений портфеля контрактов, смоделированных в течение ряда дат моделирования и во многих сценариях, определенных как NumDatesоколо-NumContractsоколо-NumScenarios «куб» значений контракта. Каждая строка представляет отдельную дату моделирования, каждый столбец - свой контракт, и каждая «страница» - это сценарий, отличный от моделирования Монте-Карло.

Типы данных: double

Контрагенты, соответствующие каждому контракту в values, указано как NumContracts-элементный вектор контрагентов. Контрагенты могут быть вектором числовых идентификаторов или массивом ячеек имен контрагентов. По умолчанию предполагается, что каждый контрагент имеет один набор взаимозачетов, который охватывает все его контракты. Если контрагенты охвачены несколькими наборами взаимозачетов, используйте NettingID параметр. Значение NaN (или '' в массиве ячеек) указывает, что контракт не включен ни в один набор взаимозачетов, если иное не указано в NettingID. counterparties нечувствителен к регистру, а начальные или конечные пробелы удалены.

Типы данных: double | cell

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: [exposures,exposurecpty] = creditexposures(values,counterparties,'NettingID','10','ExposureType','Additive')

Идентификаторы наборов взаимозачетов для указания набора взаимозачетов для каждого контракта в values принадлежит, определяется NumContracts-элементный вектор идентификаторов набора взаимозачетов. NettingID может быть вектором числовых идентификаторов или массивом ячеек идентификаторов символьных векторов. creditexposures функции использует counterparties и NettingID для определения каждого уникального набора взаимозачетов (все договоры в наборе взаимозачетов должны быть с одним и тем же контрагентом). По умолчанию каждый контрагент имеет один набор взаимозачетов, который охватывает все его контракты. Значение NaN (или '' в массиве ячеек) указывает, что контракт не включен ни в один набор взаимозачетов. NettingID нечувствителен к регистру, а начальные или конечные пробелы удалены.

Типы данных: double | cell

Метод расчета рисков убытков, указанный значениями:

  • 'Counterparty' - Вычислить риски убытков для каждого контрагента.

  • 'Additive' - Расчет аддитивных рисков на уровне договора. Риски убытков вычисляются по контракту и суммируются до общего риска убытков контрагента.

Типы данных: char

Таблица, содержащая информацию о договорах обеспечения контрагентов, указанных как таблица MATLAB. Таблица состоит из одной записи (строки) на контрагента, обеспеченного обеспечением, и должна иметь следующие переменные (столбцы):

  • 'Counterparty' - Имя или идентификатор контрагента. Имя или идентификатор контрагента должны соответствовать параметру 'Counterparty' для ExposureType аргумент.

  • 'PeriodOfRisk' - Маржинальный период риска в днях. Количество дней с момента маржинального призыва до получения от контрагента разнесенного обеспечения.

  • 'Threshold' - Порог обеспечения. Когда риски убытков контрагента превышают эту сумму, контрагент должен провести обеспечение.

  • 'MinimumTransfer' - Минимальная сумма перевода. Минимальная сумма сверх/ниже порогового значения, необходимого для инициирования передачи обеспечения.

Примечание

При вычислении обеспеченных рисков оба CollateralTable параметр и Dates должен быть указан параметр.

Типы данных: table

Даты моделирования, соответствующие каждой строке values массив, указанный как NUMDATESоколо-1 вектор дат моделирования. Dates является либо вектором номеров даты MATLAB, либо массивом ячеек векторов символов в известном формате даты. Посмотрите datenum для известных форматов даты.

Примечание

При вычислении обеспеченных рисков оба CollateralTable параметр и Dates должен быть указан параметр.

Типы данных: double | cell

Выходные аргументы

свернуть все

3-D набор кредитных рисков, представляющих потенциальные убытки от каждого контрагента или контракта на каждую дату и по всем сценариям. Размер exposures зависит от ExposureType входной аргумент:

  • Когда ExposureType является 'Counterparty', exposures возвращает NumDatesоколо-NumCounterpartiesоколо-NumScenarios «куб» кредитных рисков, представляющих потенциальные убытки, которые могут быть понесены за все даты, контрагенты и сценарии, если контрагент допустил дефолт (игнорируя любое восстановление после дефолта).

  • Когда ExposureType является 'Additive', exposures возвращает NumDatesоколо-NumContractsоколо-NumScenarios «cube», где каждый элемент является аддитивной экспозицией каждого контракта (по всем датам и сценариям). Сумма аддитивных воздействий на уровень контрагента.

Контрагенты, которые соответствуют столбцам exposures массив, возвращен как NumCounterparties или NumContracts элементы в зависимости от ExposureType.

Смоделированные суммы обеспечения, доступные контрагентам на каждую дату моделирования и по каждому сценарию, возвращенные как NumDatesоколо-NumCounterpartiesоколо-NumScenarios 3D массив. Суммы обеспечения рассчитываются с использованием брауновского моста для оценки стоимости контракта между датами моделирования. Дополнительные сведения см. в разделе Броуновский мост. Если CollateralTable не указан, выходные данные пусты.

Подробнее

свернуть все

Браунианский мост

Брауновский мост используется для моделирования стоимости портфеля на промежуточные даты для расчета обеспечения, доступного на последующие даты моделирования.

Например, для оценки обеспечения, доступного на определенную дату моделирования, ti, необходимо знать состояние портфеля во время ti-dt, где dt - период риска маржи. Портфельные значения моделируются в эти промежуточные даты на основе распределения, определенного броуновским мостом между ti и предыдущей датой моделирования ti-1.

Если значения контракта в момент времени ti-1 и ti известны и требуется оценить значение контракта в момент времени tc (где tc - ti-dt), то выборка из нормального распределения используется с дисперсией:

(ti  tc) ( tc  − ti 1) ( ti ti − 1)

и со средним значением, которое является просто линейной интерполяцией значений контракта между двумя датами моделирования в момент времени tc. Дополнительные сведения см. в разделе Ссылки.

Ссылки

[1] Ломибао, Д. и С. Чжу. «Подход условной оценки для инструментов, зависящих от пути». Август 2005 года.

[2] Пыхтин М. «Моделирование кредитного риска для обеспеченных контрагентов». Декабрь 2009 года.

[3] Пыхтин М., и С. Чжу. «Руководство по моделированию кредитного риска контрагента». GARP, июль/август 2007 года, выпуск 37.

[4] Пыхтин, Майкл и Дэн Розен. «Ценовой риск контрагента на уровне торговли и распределение CVA». Рабочий документ FEDS № 10., 1 февраля 2010 г.

См. также

| |

Темы

Представлен в R2014a