exponenta event banner

inflationbuild

Построение кривой инфляции на основе рыночных ставок свопа инфляции с нулевым купоном

Описание

пример

InflationCurve = inflationbuild(BaseDate,BaseIndexValue,ZCISDates,ZCISRates) строит кривую инфляции на основе рыночных ставок свопа инфляции с нулевым купоном (ZCIS). InflationCurve выходные данные являются inflationcurve объект.

пример

myInflationCurve = inflationbuild(___,Name,Value) указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к любой из комбинаций входных аргументов в предыдущем синтаксисе. Например, myInflationCurve = inflationbuild(BaseDate,BaseIndexValue,ZCISDates,ZCISRates,'Seasonality',SeasonalRates) строит inflationcurve объект из нулевых на рынке дат и ставок ZCIS.

Примеры

свернуть все

В этом примере показан рабочий процесс для построения inflationcurve объект из нулевого купонного свопа инфляции (ZCIS) ставки с использованием inflationbuild.

Определите параметры кривой инфляции.

BaseDate = datetime(2020,9,20);
BaseIndexValue = 100;
ZCISTimes = [calyears([1 2 3 4 5 7 10 20 30])]';
ZCISRates = [0.51 0.65 0.87 0.92 0.95 1.42 1.75 2.03 2.54]'./100;
ZCISDates = BaseDate + ZCISTimes;
SeasonalRates = [-0.19 -0.09 -0.04 0.1 0.16 0.11 0.26 0.17 -0.07 -0.08 -0.14 -0.19]'./100;

Использовать inflationbuild для создания inflationcurve объект.

myInflationCurve = inflationbuild(BaseDate,BaseIndexValue,ZCISDates,ZCISRates,'Seasonality',SeasonalRates)
myInflationCurve = 
  inflationcurve with properties:

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

Входные аргументы

свернуть все

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

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

Базовое значение индекса кривой инфляции, указанное как скалярное число.

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

Рыночные сроки погашения ZCIS минус лаг, указанные как NINSTоколо-1 вектор времени даты, порядковые номера дат, массив ячеек векторов символов даты или массив строк даты.

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

Рыночные ставки ZCIS, указанные как NINSTоколо-1 вектор десятичных разрядов.

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

Аргументы пары «имя-значение»

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

Пример: myInflationCurve = inflationbuild(BaseDate,BaseIndexValue,ZCISDates,ZCISRates,'Seasonality',SeasonalRates)

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

Сезонные коэффициенты корректировки, указанные как пара, разделенная запятыми, состоящая из 'Seasonality' и 12около-1 вектор в десятичных разрядах для каждого месяца, упорядоченного с января по декабрь. Ставки пересчитываются в годовом исчислении и постоянно дополняются сезонными ставками, которые внутренне корректируются в дополнение к 0.

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

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

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

Выходные аргументы

свернуть все

Кривая инфляции, возвращенная как inflationcurve объект. Объект имеет следующие свойства:

  • Basis

  • Dates

  • InflationIndexValues

  • ForwardInflationRates

  • Seasonality

Алгоритмы

Построить кривую инфляции из серии безубыточных нулевых свопов на инфляцию (ZCIS):

Я (0, T1Y) =I (T0) (1+b (0; T0, T1Y)) T1Y−T0I (0, T2Y) =I (T0) (1+b (0; T0, T2Y)) T2Y−T0I (0, T3Y) =I (T0) (1+b (0; T0, T3Y)) T3Y−T0... Я (0, Ti) =I (T0) (1+b (0; T0, Ti)) Ti−T0

где

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

  • I (T0) - базовое значение индекса инфляции для начальной даты T0.

  • b (0;T0,Ti) - безубыточный уровень инфляции для ZCIS, созревающий на Ti.

Ставки ZCIS обычно имеют сроки погашения, которые увеличиваются в течение целого числа лет, поэтому кривая инфляции строится на ежегодной основе. На основе кривой годовой базовой инфляции годовые нескорректированные (т.е. не скорректированные по сезону) форвардные темпы инфляции рассчитываются следующим образом:

fi = 1 (Ti Ti 1) log (I (0, Ti) I (0, Ti − 1))

Нескорректированные форвардные темпы инфляции используются для интерполяции, а также для включения сезонности в кривую инфляции.

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

I (0, Ti) = I (T0) exp (∫T0Tif (u) du)) exp (∫T0Tis (u) du)) I (0, Ti) = I (0, Ti 1) exp ((Ti − Ti − 1) (fi + si))

где

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

  • I (0, Ti − 1) - предыдущий ссылочный номер инфляции.

  • fi - это годовой нескорректированный уровень форвардной инфляции.

  • si - годовая сезонная составляющая для периода [Ti 1, Ti].

Сезонная корректировка первого года может нуждаться в особом лечении, поскольку, как правило, контрольный номер безубыточной инфляции первого месяца уже известен. Если это так, то нескорректированный уровень форвардной инфляции за первый год необходимо пересчитать за оставшиеся 11 месяцев.

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