exponenta event banner

YearYearInflationSwap

YearYearInflationSwap объект прибора

Описание

Создать и оценить YearYearInflationSwap объект инструмента с использованием этого рабочего процесса:

  1. Использовать fininstrument для создания YearYearInflationSwap объект прибора.

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

  3. Использовать inflationcurve для задания модели кривой инфляции.

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

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

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

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

Создание

Описание

пример

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'.

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

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

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

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

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

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

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

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

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

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

  • 0 - фактическое/фактическое

  • 1 - 30/360 (SIA)

  • 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 - BUS/252

Дополнительные сведения см. в разделе Базис.

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

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

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

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

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

Свойства

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

Дата погашения свопа, возвращенная в качестве даты и времени.

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

Условная величина, возвращаемая в виде скалярного числа.

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

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

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

База подсчета дней для фиксированной ветви, возвращаемая в виде скалярного числа.

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

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

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

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

Типы данных: 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 pricer object и используйте 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

Подробнее

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

Алгоритмы

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

Денежные потоки за каждый год t = {T1,..., Ti,..., TM}: FixedLeg = N × k × ΔtfixedLeg = N × [I (Ti) I (Ti − 1) − 1] × ΔTinflation

где

  • N - ссылочное условное обозначение подкачки.

  • k - фиксированный уровень инфляции.

  • Δtфиксированная - фиксированная доля ноги за период.

  • Δtinflation - это доля уровня инфляции за период.

  • I (Ti) - индекс инфляции на дату окончания периода с некоторым лагом (например, три месяца).

  • I (Ti-1) - индекс инфляции на дату начала с некоторым лагом (например, три месяца).

Ссылки

[1] Броуди, Д.К., Кросби, Дж. и Ли, Х. «Коррекция выпуклости в связанных с инфляцией производных». Журнал рисков. ноябрь 2008 года, стр. 124-129.

[2] Керкхоф, Дж. «Деривативы инфляции: рынки, продукты и ценообразование». Количественное исследование с фиксированным доходом, Lehman Brothers, июль 2005 года.

[3] Чжан, J. X. «Идеи своп-оценки с ограниченной индексацией цен (LPI)». Журнал Уилмотт. № 57, январь 2012 года, стр. 58-69.

Представлен в R2021a