Текущее значение или рыночная стоимость существующего контракта 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
cdsbootstrap
| cdsprice
| cdsrpv01
| cdsspread