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

Типы данных: 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 (СИА)

  • 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

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

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

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

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

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

свернуть все

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

  • Basis

  • Dates

  • InflationIndexValues

  • ForwardInflationRates

  • Seasonality

Алгоритмы

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

I(0,T1Y)=I(T0)(1+b(0;T0,T1Y))T1YT0I(0,T2Y)=I(T0)(1+b(0;T0,T2Y))T2YT0I(0,T3Y)=I(T0)(1+b(0;T0,T3Y))T3YT0...I(0,Ti)=I(T0)(1+b(0;T0,Ti))TiT0

где

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

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

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

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

fi=1(TiTi1)log(I(0,Ti)I(0,Ti1))

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

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

I(0,Ti)=I(T0)exp(T0Tif(u)du))exp(T0Tis(u)du))I(0,Ti)=I(0,Ti1)exp((TiTi1)(fi+si))

где

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

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

  • f i является ежегодным неприспособленным прямым уровнем инфляции.

  • s i является пересчитанным на год сезонным компонентом в течение периода [Ti1,Ti].

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

Введенный в R2021a