Текущая стоимость или маркировка на рынок существующего контракта 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. В следующем примере простая хеджированная позиция с двумя ванильными контрактами 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.06cdsbootstrap | cdsprice | cdsrpv01 | cdsspread