exponenta event banner

inflationcurve

Создать inflationcurve объект для кривой процентных ставок из дат и данных

Описание

Построить inflationcurve объект с использованием inflationcurve.

После создания inflationcurve объект, можно использовать связанную функцию объекта indexvalues.

Чтобы оценить InflationBond, YearYearInflationSwap, или ZeroCouponInflationSwap инструмент, необходимо создать inflationcurve объект, а затем создайте Inflation объект прайсера.

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

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

Создание

Описание

пример

inflationcurve_obj = inflationcurve(Dates,InflationIndexValues) создает inflationcurve объект.

пример

inflationcurve_obj = inflationcurve(___,Name,Value) создает inflationcurve с использованием пар имя-значение и любого из аргументов в предыдущем синтаксисе. Например, myInflationCurve = inflationcurve(InflationDates,InflationIndexValues,'Basis',4) создает inflationcurve объект. Можно указать несколько аргументов пары имя-значение.

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

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

Даты, соответствующие InflationIndexValues, задается как массив datetime, порядковые номера дат, массив ячеек векторов символов даты или массив строки даты. Первая дата - это базовая дата.

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

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

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

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

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

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

Пример: myInflationCurve = inflationcurve(InflationDates,InflationIndexValues,'Basis',4)

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

Свойства

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

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

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

Даты, соответствующие InflationIndexValues, возвращен в виде массива datetime.

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

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

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

Форвардные темпы инфляции, возвращенные как векторные.

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

Сезонные ставки корректировки, возвращенные как 12около-1 вектор.

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

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

indexvaluesВычислить значения индекса для inflationcurve объект

Примеры

свернуть все

Создание inflationcurve объект с использованием inflationcurve.

BaseDate = datetime(2020, 9, 20);
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]

Алгоритмы

Построить кривую инфляции из серии безубыточных нулевых свопов на инфляцию (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 месяцев.

Ссылки

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

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

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

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