cdsprice

Определите цену за кредитный дефолтный своп

Синтаксис

[Price,AccPrem,PaymentDates,PaymentTimes,PaymentCF] = cdsprice(ZeroData,ProbData,Settle,Maturity,ContractSpread)
[Price,AccPrem,PaymentDates,PaymentTimes,PaymentCF] = cdsprice(___,Name,Value)

Описание

пример

[Price,AccPrem,PaymentDates,PaymentTimes,PaymentCF] = cdsprice(ZeroData,ProbData,Settle,Maturity,ContractSpread) вычисляет цену или текущую рыночную стоимость для инструментов CDS.

пример

[Price,AccPrem,PaymentDates,PaymentTimes,PaymentCF] = cdsprice(___,Name,Value) добавляют дополнительные аргументы пары "имя-значение".

Примеры

свернуть все

Этот пример показывает, как использовать cdsprice, чтобы вычислить чистую цену за контракт CDS с помощью следующих данных.

Settle = '17-Jul-2009'; % valuation date for the CDS
Zero_Time = [.5 1 2 3 4 5]';
Zero_Rate = [1.35 1.43 1.9 2.47 2.936 3.311]'/100;
Zero_Dates = daysadd(Settle,360*Zero_Time,1);
ZeroData = [Zero_Dates Zero_Rate];

ProbData = [daysadd(datenum(Settle),360,1), 0.0247];
Maturity = '20-Sep-2010';
ContractSpread = 135;

[Price,AccPrem] = cdsprice(ZeroData,ProbData,Settle,Maturity,ContractSpread)
Price = 1.5461e+04
AccPrem = 10500

Входные параметры

свернуть все

Нулевые данные об уровне, заданные как M-by-2 вектор дат и нулевых уровней или объекта IRDataCurve нулевых уровней.

Когда ZeroData является объектом IRDataCurve, ZeroCompounding и ZeroBasis неявны в ZeroData и избыточны в этой функции. В этом случае задайте эти дополнительные параметры при построении объекта IRDataCurve перед использованием функции cdsprice.

Для получения дополнительной информации об объекте IRDataCurve смотрите Создание Объекта IRDataCurve (Financial Instruments Toolbox).

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

Значения вероятности по умолчанию, заданные как P-by-2 матрица с датами и соответствующими совокупными значениями вероятности по умолчанию.

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

Расчетный день, заданный как скалярный последовательный номер даты или вектор символов даты. Дата Settle должна быть ранее, чем или равна датам в Maturity.

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

Дата погашения, заданная как N-by-1 вектор последовательных чисел даты или векторов символов даты.

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

Сократите распространения, заданные как N-by-1 вектор распространений, выраженных в пунктах.

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: [Price,AccPrem] = cdsprice(ZeroData,ProbData,Settle,Maturity,ContractSpread,'Basis',7,'BusDayConvention','previous')

Примечание

Любой дополнительный вход размера N-by-1 также приемлем как массив размера 1-by-N, или как одно значение, применимое ко всем контрактам. Одно значения внутренне расширены до массива размера N-by-1.

Скорость восстановления, заданная как пара, разделенная запятой, состоящая из 'RecoveryRate' и N-by-1 вектор скоростей восстановления, заданных как десятичное число от 0 до 1.

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

Premium платежная частота, заданная как пара, разделенная запятой, состоящая из 'Period' и N-by-1 вектор со значениями 1, 2, 3, 4, 6 или 12.

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

Основание дневного количества контракта, заданного как пара, разделенная запятой, состоящая из 'Basis' и положительного целого числа с помощью NINST-by-1 вектор.

  •  0 = фактический/фактический

  •  1 = 30/360 (СИА)

  •  2 = Фактический/360

  •  3 = Фактический/365

  •  4 = 30/360 (PSA)

  •  5 = 30/360 (ISDA)

  •  6 = 30/360 (европеец)

  •  7 = Фактический/365 (японский язык)

  •  8 = фактический/фактический (ICMA)

  •  9 = Фактический/360 (ICMA)

  •  10 = Фактический/365 (ICMA)

  •  11 = 30/360E (ICMA)

  •  12 = Фактический/365 (ISDA)

  •  13 = ШИНА/252

Для получения дополнительной информации смотрите основание.

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

Соглашения рабочего дня, заданные как пара, разделенная запятой, состоящая из 'BusDayConvention' и вектора символов. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:

  • actual — Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.

  • follow — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.

  • modifiedfollow — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.

  • previous — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.

  • modifiedprevious — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.

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

Отметьте для накопленных уплаченных страховых взносов на значение по умолчанию, заданное как пара, разделенная запятой, состоящая из 'PayAccruedPremium' и N-by-1 вектор булевых флагов, который является true (значение по умолчанию), если накопленные премии заплачены на значение по умолчанию, false в противном случае.

Типы данных: логический

Сократите отвлеченные значения, заданные как пара, разделенная запятой, состоящая из 'Notional' и N-by-1vector целых чисел. Используйте положительные целочисленные значения для длинных позиций и отрицательные целочисленные значения для коротких позиций.

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

Номер дней, чтобы взять в качестве временного шага для численного интегрирования, заданного как пара, разделенная запятой, состоящая из 'TimeStep' и неотрицательного целого числа.

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

Соединение частоты кривой нулевой ширины, заданной как пара, разделенная запятой, состоящая из 'ZeroCmpounding' и целого числа со значениями:

  • 1 — Ежегодное соединение

  • 2 — Полугодовое соединение

  • 3 — Соединение три раза в год

  • 4 — Ежеквартально соединение

  • 6 — Два раза в месяц соединение

  • 12 — Ежемесячно соединение

  • −1 — Непрерывное соединение

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

Основание кривой нулевой ширины, заданной как пара, разделенная запятой, состоящая из 'ZeroBasis' и целого числа со значениями, которые идентичны Basis.

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

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

свернуть все

CDS чистые цены, возвращенные как N-by-1 вектор.

Накопленные премии, возвращенные как N-by-1 вектор.

Платежные дни, возвращенные как N-by-numCF матрица.

Сроки платежа, возвращенные как N-by-numCF матрица частей наращивания.

Платежи, возвращенные как N-by-numCF матрица.

Больше о

свернуть все

Цена CDS

Цена или значение метки на рынок (MtM) существующего контракта CDS.

Цена CDS вычисляется с помощью следующей формулы:

CDS price = Notional * (Current Spread - Contract Spread) * RPV01

Current Spread является текущим сбалансированным распространением для подобного контракта, согласно текущему состоянию рынка. RPV01 является 'опасной приведенной стоимостью пункта', приведенная стоимость премиальных платежей, рассматривая вероятность по умолчанию. Эта формула принимает длинную позицию, и правая сторона умножается на-1 для коротких позиций.

Алгоритмы

Премиальный участок вычисляется как продукт распространения S и опасная приведенная стоимость пункта (RPV01). RPV01 дают:

RPV01=j=1NZ(tj)Δ(tj1,tj,B)Q(tj)

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

RPV0112j=1NZ(tj)Δ(tj1,tj,B)(Q(tj1)+Q(tj))

когда накопленные премии заплачены на значение по умолчанию. Здесь, t0 = 0 является датой оценки и t1,...,tn =, T является премиальными платежными днями по жизни контракта, T является зрелостью контракта, Z(t) является коэффициентом дисконтирования для оплаты, полученной во время t, и Δ(tj-1, tj, B) является дневным количеством между датами tj-1 и tj, соответствующий основанию B.

Участок защиты контракта CDS дан следующей формулой:

ProtectionLeg=0TZ(τ)(1R)dPD(τ)

(1R)i=1MZ(τi)(PD(τi)PD(τi1))

=(1R)i=1MZ(τi)(Q(τi1)Q(τi))

где интеграл аппроксимирован с конечной суммой по дискретизации τ0 = 0, τ1,...,τM = T.

Если распространением существующего контракта CDS является SC, и текущим сбалансированным распространением для сопоставимого контракта является S0, текущая цена, или текущей рыночной стоимостью контракта дают:

MtM = Notional (S0SC) RPV01

Это принимает длинную позицию с точки зрения защиты (защита была куплена). Для коротких позиций инвертируется знак.

Ссылки

[1] Beumee, J., Д. Бриго, Д. Шимерт и Г. Стойл. “Беря курс через CDS Большой взрыв”. Решения Fitch, количественный анализ, глобальный специальный отчет. 7 апреля 2009.

[2] Оболочка, J. и A. Белый. “Оценка Кредитных дефолтных свопов I: Никакой Кредитный риск Контрагента”. Журнал Производных. Издание 8, стр 29–40.

[3] О'Кэйн, D. и С. Тернбулл. “Оценка кредитных дефолтных свопов”. Lehman Brothers, фиксированный доход количественное исследование кредита, апрель 2003.

Представленный в R2010b

Для просмотра документации необходимо авторизоваться на сайте