YearYearInflationSwap

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

Описание

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

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

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

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

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

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

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

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

Создание

Описание

пример

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

пример

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

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

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

Инструментальный тип в виде строки со значением "YearYearInflationSwap", вектор символов со значением 'YearYearInflationSwap', NINST- 1 массив строк со значениями "YearYearInflationSwap", или NINST- 1 массив ячеек из символьных векторов со значениями 'YearYearInflationSwap'.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить YearYearInflationSwap инструмент, когда вы используете 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]

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

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

Maturity = datetime(2025,1,1);
FixedInflationRate = 0.015;
Notional = 2000;

YYInflationSwap = fininstrument("YearYearInflationSwap",'Maturity',Maturity,'FixedInflationRate',FixedInflationRate,'Notional',Notional,'Name',"YYInflationSwap_instrument")
YYInflationSwap = 
  YearYearInflationSwap with properties:

              Notional: 2000
    FixedInflationRate: 0.0150
                 Basis: 0
                   Lag: 3
              Maturity: 01-Jan-2025
                  Name: "YYInflationSwap_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]

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

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

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

       Results: [1x1 table]
    PricerData: []

outPR.Results
ans=table
    Price 
    ______

    12.504

Этот пример показывает рабочий процесс, чтобы оценить несколько YearYearInflationSwap инструменты, когда вы используете 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(2019,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]

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

Используйте fininstrument создать YearYearInflationSwap инструментальный объект для трех Индексированных Инфляцией инструментов Подкачки В годовом исчислении.

Maturity = datetime([2024,1,1 ; 2024,11,1 ; 2024,12,1]);
FixedInflationRate = 0.015;
Notional = [20000 ; 30000 ; 40000];

YYInflationSwap = fininstrument("YearYearInflationSwap",'Maturity',Maturity,'FixedInflationRate',FixedInflationRate,'Notional',Notional,'Name',"YYInflationSwap_instrument")
YYInflationSwap=3×1 object
  3x1 YearYearInflationSwap array with properties:

    Notional
    FixedInflationRate
    Basis
    Lag
    Maturity
    Name

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

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

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

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

Цена YearYearInflationSwap Инструменты

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

[Price,outPR] = price(outPricer,YYInflationSwap,"all")
Price = 3×1

   26.0701
   18.1540
    1.3201

outPR=1×3 object
  1x3 priceresult array with properties:

    Results
    PricerData

outPR.Results
ans=table
    Price
    _____

    26.07

ans=table
    Price 
    ______

    18.154

ans=table
    Price 
    ______

    1.3201

Больше о

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

Алгоритмы

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

 Потоки наличности в течение каждого года t={T1,...Ti,...TM}:FixedLeg=N×k×ΔtfixedInflationLeg=N×[I(Ti)I(Ti1)1]×Δtinflation

где

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

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

  • Δtfixed является фиксированной частью участка в течение периода.

  • Δtinflation является частью участка инфляции в течение периода.

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

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

Ссылки

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

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

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

Введенный в R2021a