ZeroCouponInflationSwap

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

Описание

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

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

  2. Используйте ratecurve задавать модель процентной ставки для ZeroCouponInflationSwap инструмент.

  3. Используйте inflationcurve чтобы задать инфляцию изгибают модель.

  4. Использование finpricer задавать Inflation метод ценообразования.

  5. Использование inflationCashflows вычислить потоки наличности для ZeroCouponInflationSwap инструмент.

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

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

Создание

Описание

пример

ZCInflationSwap = fininstrument(InstrumentType,'Maturity',maturity_date,'Notional',notional_value,'FixedInflationRate',inflation_rate) создает ZeroCouponInflationSwap объект путем определения InstrumentType и устанавливает свойства для необходимых аргументов пары "имя-значение" Maturity, Notional, и FixedInflationRate.

пример

ZCInflationSwap = fininstrument(___,Name,Value) устанавливает дополнительные свойства с помощью пар "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, ZCInflationSwap = fininstrument("ZeroCouponInflationSwap", 'Maturity',Maturity,'Notional',Notional,'FixedInflationRate',FixedInflationRate,'StartDate',StartDate) создает ZeroCouponInflationSwap инструмент. Можно задать несколько аргументов пары "имя-значение".

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

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

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

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

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

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

Пример: ZCInflationSwap = fininstrument("ZeroCouponInflationSwap", 'Maturity',Maturity,'Notional',Notional,'FixedInflationRate',FixedInflationRate,'StartDate',StartDate)
Необходимый ZeroCouponInflationSwap Аргументы в виде пар имя-значение

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

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

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

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

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

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

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

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

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

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

Подкачка даты запускается в виде разделенной запятой пары, состоящей из 'StartDate' и скалярный datetime, последовательный номер даты, вектор символов даты или строка даты. Если не заданный, при оценке ZeroCouponInflationSwap инструмент, Inflation калькулятор цен использует Settle дата DiscountCurve как StartDate.

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

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

Дневной базис количества для фиксированного участка в виде разделенной запятой пары, состоящей из '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

Задержка индексации в месяцах в виде разделенной запятой пары, состоящей из 'Lag' и скалярное числовое значение.

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

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

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

Свойства

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

Подкачайте дату погашения, возвращенную как datetime.

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

Отвлеченная сумма, возвращенная как числовой скаляр.

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

Уровень инфляции, возвращенный как скалярное десятичное число.

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

Подкачка даты запускается, возвращенный как datetime.

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

Дневной базис количества для фиксированного участка, возвращенного как числовой скаляр.

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

Задержка индексации в месяцах, возвращенных как числовой скаляр.

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

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

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

Функции объекта

inflationCashflowsВычислите потоки наличности для ZeroCouponInflationSwap инструмент

Примеры

свернуть все

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

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

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

Settle = datetime(2021,1,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;
ZeroCurve = ratecurve('zero',Settle,ZeroDates,ZeroRates)
ZeroCurve = 
  ratecurve with properties:

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

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

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

BaseDate = datetime(2020, 10, 1);
InflationTimes = [0 calyears([1 2 3 4 5 7 10 20 30])]';
InflationIndexValues = [100 102 103.5 105 106.8 108.2 111.3 120.1 130.4 150.2]';
InflationDates = BaseDate + InflationTimes;
myInflationCurve = inflationcurve(InflationDates,InflationIndexValues)
myInflationCurve = 
  inflationcurve with properties:

                    Basis: 0
                    Dates: [10x1 datetime]
     InflationIndexValues: [10x1 double]
    ForwardInflationRates: [9x1 double]
              Seasonality: [12x1 double]

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

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

StartDate = datetime(2021,1,1);
Maturity = datetime(2022,10,1);
FixedInflationRate = 0.015;
Notional = 2000;

ZCInflationSwap = fininstrument("ZeroCouponInflationSwap",'StartDate',StartDate,'Maturity',Maturity,'FixedInflationRate',FixedInflationRate,'Notional',Notional,'Name',"zero_coupon_inflation_swap_instrument")
ZCInflationSwap = 
  ZeroCouponInflationSwap with properties:

              Notional: 2000
    FixedInflationRate: 0.0150
                 Basis: 0
                   Lag: 3
             StartDate: 01-Jan-2021
              Maturity: 01-Oct-2022
                  Name: "zero_coupon_inflation_swap_instrument"

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

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

outPricer = finpricer("Inflation",'DiscountCurve',ZeroCurve,'InflationCurve',myInflationCurve)
outPricer = 
  Inflation with properties:

     DiscountCurve: [1x1 ratecurve]
    InflationCurve: [1x1 inflationcurve]

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

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

[Price,outPR] = price(outPricer,ZCInflationSwap,"all")
Price = 9.5675
outPR = 
  priceresult with properties:

       Results: [1x1 table]
    PricerData: []

outPR.Results
ans=table
    Price 
    ______

    9.5675

Больше о

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

Алгоритмы

Чтобы оценить нулевой купон индексированная инфляцией подкачка (ZCIS), используйте кривую инфляции и номинальную дисконтную кривую (подход без моделей), где потоки наличности обесценены с помощью номинальной дисконтной кривой.

 Потоки наличности в зрелости t=TM:FixedLeg=N×[(1+k)M1]InflationLeg=N×[I(TM)I01]

где

  • N является ссылкой, отвлеченной из подкачки.

  • k является фиксированным уровнем инфляции.

  • M является номером лет для жизни подкачки.

  • I (T M) является индексом инфляции в дате погашения с некоторой задержкой (например, тремя месяцами).

  • I 0 является индексом инфляции в дате начала с некоторой задержкой (например, тремя месяцами).

Ссылки

[1] Броуди, D. C. Кросби, J. и Литий, H. "Корректировки выпуклости в Соединенных с инфляцией Производных". Рискните Журналом. Ноябрь 2008, стр 124–129.

[2] Kerkhof, J. "Объясненные производные инфляции: рынки, продукты и оценка". Количественный анализ фиксированного дохода, Lehman Brothers, июль 2005.

[3] Чжан, J. X. "Идей Оценки Подкачки Ограниченной индексации цен (LPI)". Журнал Wilmott. № 57, январь 2012, стр 58–69.

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