CDS

CDS инструментальный объект

Описание

Создайте и оцените CDS инструментальный объект, использующий этот рабочий процесс:

  1. Использование fininstrument создать CDS инструментальный объект.

  2. Используйте defprobcurve чтобы задать вероятность по умолчанию изгибаются для CDS инструмент.

  3. Использование finpricer задавать Credit метод ценообразования для CDS инструмент.

Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.

Для получения дополнительной информации о доступных моделях и методах ценообразования для CDS инструмент, смотрите, Выбирают Instruments, Models и Pricers.

Создание

Описание

пример

CDSobj = fininstrument(InstrumentType,'Maturity',maturity_date,'ContractSpread',contractspread_value) создает CDS объект путем определения InstrumentType и устанавливает свойства для необходимых аргументов пары "имя-значение" Maturity и ContractSpread.

пример

CDSobj = fininstrument(___,Name,Value) устанавливает дополнительные свойства с помощью дополнительных пар "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, CDSobj = fininstrument("CDS",'Maturity',datetime(2019,1,30),'ContractSpread',200,'Period',4,'Basis',5,'BusinessDayConvention','follow','Name',"cds_instrument") создает CDS инструмент с распространением контракта 200. Можно задать несколько аргументов пары "имя-значение".

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

развернуть все

Инструментальный тип в виде строки со значением "CDS" или вектор символов со значением 'CDS'.

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

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

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

Пример: CDSobj = fininstrument("CDS",'Maturity',datetime(2019,1,30),'ContractSpread',200,'Period',4,'Basis',5,'BusinessDayConvention',"follow",'Name',"cds_instrument")
Необходимый CDS Аргументы в виде пар имя-значение

развернуть все

Дата погашения в виде разделенной запятой пары, состоящей из 'Maturity' и datetime, последовательный номер даты, вектор символов даты или строка даты.

Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime потому что Maturity свойство хранится как datetime.

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

Сократите распространения, описанные в пунктах в виде разделенной запятой пары, состоящей из 'ContractSpread' и числовой скаляр.

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

Дополнительный CDS Аргумент пары "имя-значение"

развернуть все

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

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

Основание дневного количества в виде разделенной запятой пары, состоящей из 'Basis' и скалярное положительное целое число с помощью одного из следующих значений:

  • 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 | string

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

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

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

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

Сократите отвлеченное значение в виде разделенной запятой пары, состоящей из 'Notional' и скалярное положительное целое число.

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

Праздники, используемые в вычислении рабочих дней в виде разделенной запятой пары, состоящей из 'Holidays' и даты с помощью datetimes, последовательные числа даты, массив ячеек векторов символов даты или массив строки даты. Например:

H = holidays(datetime('today'),datetime(2025,12,15));
CDSobj = fininstrument("CDS",'Maturity',datetime(2025,12,15),'ContractSpread',200,'Holidays',H)

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

Пользовательское имя для инструмента в виде разделенной запятой пары, состоящей из 'Name' и скалярная строка или вектор символов.

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

Свойства

развернуть все

Дата погашения, возвращенная как datetime.

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

Сократите распространения, описанные в пунктах, возвращенных как числовой скаляр.

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

Premium платежи в год, возвращенный как числовой скаляр.

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

Основание дневного количества, возвращенное как скалярное положительное целое число.

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

Соглашения рабочего дня для дат потока наличности, возвращенных как строка.

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

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

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

Скорость восстановления, возвращенная как скалярное десятичное число.

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

Сократите отвлеченное значение, возвращенное как скалярное положительное целое число.

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

Праздники используются в вычислении рабочих дней, возвращенных как datetimes.

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

Пользовательское имя для инструмента, возвращенного как строка.

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

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить CDS инструмент, когда вы используете defprobcurve модель и Credit метод ценообразования.

Создайте CDS Инструментальный объект

Используйте fininstrument создать CDS инструментальный объект.

CDS = fininstrument("CDS",'Maturity',datetime(2021,9,15),'ContractSpread',15,'Notional',20000,'Period',4,'Basis',3,'BusinessDayConvention',"follow",'Name',"CDS_instrument")
CDS = 
  CDS with properties:

           ContractSpread: 15
                 Maturity: 15-Sep-2021
                   Period: 4
                    Basis: 3
             RecoveryRate: 0.4000
    BusinessDayConvention: "follow"
                 Holidays: NaT
        PayAccruedPremium: 1
                 Notional: 20000
                     Name: "CDS_instrument"

Создайте defprobcurve Объект

Создайте defprobcurve объект с помощью defprobcurve.

Settle = datetime(2020,9,20);
DefProbTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])];
DefaultProbabilities = [0.005 0.007 0.01 0.015 0.026 0.04 0.077 0.093 0.15 0.20]';
ProbDates = Settle + DefProbTimes;
DefaultProbCurve = defprobcurve(Settle,ProbDates,DefaultProbabilities,'Basis',5)
DefaultProbCurve = 
  defprobcurve with properties:

                  Settle: 20-Sep-2020
                   Basis: 5
                   Dates: [10x1 datetime]
    DefaultProbabilities: [10x1 double]

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2020,9,15);
Type = 'zero';
ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]';
ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';
ZeroDates = Settle + ZeroTimes;
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 15-Sep-2020
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте Credit Объект калькулятора цен

Используйте finpricer создать Credit объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("credit",'DefaultProbabilityCurve',DefaultProbCurve,'DiscountCurve',myRC)
outPricer = 
  Credit with properties:

              DiscountCurve: [1x1 ratecurve]
                   TimeStep: 10
    DefaultProbabilityCurve: [1x1 defprobcurve]

Цена CDS Инструмент

Используйте price вычислить цену за CDS инструмент.

Price = price(outPricer,CDS)
Price = 52.7426
Введенный в R2020a