CDS

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

Описание

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

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

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

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

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

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

Создание

Описание

пример

CDSobj = fininstrument(InstrumentType,'Maturity',maturity_date,'ContractSpread',contractspread_value) создает CDS объект для одного или нескольких инструментов 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', NINST- 1 массив строк со значениями "CDS", или NINST- 1 массив ячеек из символьных векторов со значениями 'CDS'.

Типы данных: char | cell | 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, последовательный номер даты, вектор символов даты, строка даты или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.

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

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

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

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

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

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

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

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

Дневной базис количества в виде разделенной запятой пары, состоящей из 'Basis' и скалярное положительное целое число или NINST- 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' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:

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

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

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

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

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

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

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

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

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

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

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

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

Праздники, используемые в вычислении рабочих дней в виде разделенной запятой пары, состоящей из 'Holidays' и даты с помощью NINST- 1 вектор из 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' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.

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

Свойства

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

Дата погашения, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.

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

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

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

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

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

Дневной базис количества, возвращенный как скалярное положительное целое число или NINST- 1 вектор из положительных целых чисел.

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

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

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

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

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

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

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

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

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

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

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

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

Типы данных: 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

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

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

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

CDS = fininstrument("CDS",'Maturity',datetime([2021,9,15 ; 2021,10,15 ; 2021,11,15]),'ContractSpread',15,'Notional',[20000 ; 30000 ; 40000],'Period',4,'Basis',3,'BusinessDayConvention',"follow",'Name',"CDS_instrument")
CDS=3×1 object
  3x1 CDS array with properties:

    ContractSpread
    Maturity
    Period
    Basis
    RecoveryRate
    BusinessDayConvention
    Holidays
    PayAccruedPremium
    Notional
    Name

Создайте 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 = 3×1

   52.7426
   80.2945
  108.0357

Введенный в R2020a