Оценка существующего контракта CDS

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

Значение существующих контрактов CDS получаются с cdsprice. По умолчанию, cdsprice рассматривает контракты как длинные позиции. Является ли контрактная позиция длинной или короткой, определяется с точки зрения защиты, то есть длительное время означает, что защита была куплена, а короткие средства защиты были проданы. В следующем примере существующий контракт CDS выплачивает премию, которая ниже текущих рыночных условий. Цена положительная, как и ожидалось, поскольку купить такой же тип защиты сегодня было бы дороже.

Settle = '17-Jul-2009';   % valuation date for the CDS
MarketDates = datenum({'20-Sep-10','20-Sep-11','20-Sep-12','20-Sep-14',...
'20-Sep-16'});
MarketSpreads = [140 175 210 265 310]';
MarketData = [MarketDates MarketSpreads];

ZeroDates = datenum({'17-Jan-10','17-Jul-10','17-Jul-11','17-Jul-12',...
'17-Jul-13','17-Jul-14'});
ZeroRates = [1.35 1.43 1.9 2.47 2.936 3.311]'/100;
ZeroData = [ZeroDates ZeroRates];

[ProbData,HazData] = cdsbootstrap(ZeroData,MarketData,Settle);

Maturity2 = '20-Sep-2012';
Spread2 = 196;
 
[Price,AccPrem,PaymentDates,PaymentTimes,PaymentCF] = cdsprice(ZeroData,...
ProbData,Settle,Maturity2,Spread2);
 
fprintf('Dirty Price: %8.2f\n',Price+AccPrem);
fprintf('Accrued Premium: %8.2f\n',AccPrem);
fprintf('Clean Price: %8.2f\n',Price);
fprintf('\nPayment Schedule:\n\n');
fprintf('Date \t\t Time Frac \t Amount\n');
for k = 1:length(PaymentDates)
   fprintf('%s \t %5.4f \t %8.2f\n',datestr(PaymentDates(k)),...
      PaymentTimes(k),PaymentCF(k));
end

Этот результирующий график платежей:

Dirty Price: 56872.94
Accrued Premium: 15244.44
Clean Price: 41628.50

Payment Schedule:

Date 		 Time Frac 	 Amount
20-Sep-2009 	 0.1806 	 35388.89
20-Dec-2009 	 0.2528 	 49544.44
20-Mar-2010 	 0.2500 	 49000.00
20-Jun-2010 	 0.2556 	 50088.89
20-Sep-2010 	 0.2556 	 50088.89
20-Dec-2010 	 0.2528 	 49544.44
20-Mar-2011 	 0.2500 	 49000.00
20-Jun-2011 	 0.2556 	 50088.89
20-Sep-2011 	 0.2556 	 50088.89
20-Dec-2011 	 0.2528 	 49544.44
20-Mar-2012 	 0.2528 	 49544.44
20-Jun-2012 	 0.2556 	 50088.89
20-Sep-2012 	 0.2556 	 50088.89

Кроме того, вы можете использовать cdsprice для оценки портфеля контрактов CDS. В следующем примере простая хеджированная позиция с двумя контрактами vanilla CDS, один длинный, один короткий, с немного различными спредами, оценивается в один вызов, и значение портфеля является суммой возвращенных цен:

[Price2,AccPrem2] = cdsprice(ZeroData,ProbData,Settle,...
repmat(datenum(Maturity2),2,1),[Spread2;Spread2+3],...
'Notional',[1e7; -1e7]);

fprintf('Contract \t Dirty Price \t Acc Premium \t  Clean Price\n');
fprintf('    Long \t $ %9.2f \t $ %9.2f \t $ %9.2f \t\n',...
   Price2(1)+AccPrem2(1), AccPrem2(1), Price2(1));
fprintf('   Short \t $ %8.2f \t $ %8.2f \t $ %8.2f \t\n',...
   Price2(2)+AccPrem2(2), AccPrem2(2), Price2(2));
fprintf('Mark-to-market of hedged position: $ %8.2f\n',sum(Price2)+sum(AccPrem2));

Получившееся значение портфеля:

Contract 	 Dirty Price 	 Acc Premium 	  Clean Price
    Long 	 $  56872.94 	 $  15244.44 	 $  41628.50 	
   Short 	 $ -48185.88 	 $ -15477.78 	 $ -32708.11 	
Mark-to-market of hedged position: $  8687.06

См. также

| | |

Похожие темы