InflationBond

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

Описание

Создайте и оцените InflationBond инструментальный объект, использующий этот рабочий процесс:

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

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

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

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

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

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

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

Создание

Описание

пример

InflationBond = fininstrument(InstrumentType,'CouponRate',couponrate_value,'Maturity',maturity_date) создает InflationBond объект путем определения InstrumentType и устанавливает свойства для необходимых аргументов пары "имя-значение" CouponRate и Maturity.

пример

InflationBond = fininstrument(___,Name,Value) устанавливает дополнительные свойства с помощью дополнительных пар "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, InflationBond = fininstrument("InflationBond",'Maturity',Maturity,'CouponRate',CouponRate,'IssueDate',IssueDate) создает InflationBond опция.

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

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

Инструментальный тип в виде строки со значением "InflationBond" или вектор символов со значением 'InflationBond'.

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

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

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

Пример: InflationBond = fininstrument("InflationBond",'Maturity',Maturity,'CouponRate',CouponRate,'IssueDate',IssueDate)
Необходимый InflationBond Аргументы в виде пар имя-значение

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

InflationBond купонная ставка в виде разделенной запятой пары, состоящей из 'CouponRate' и скалярное десятичное число для годового показателя.

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

InflationBond дата погашения в виде разделенной запятой пары, состоящей из 'Maturity' и скалярный datetime, последовательный номер даты, вектор символов даты или строка даты.

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

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

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

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

Частота платежей в виде разделенной запятой пары, состоящей из 'Period' и скалярное целое число. Значения для Period 1, 2, 3, 4, 6, или 12.

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

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

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

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

Отметьте указание, настроен ли поток наличности за день соглашение количества в виде разделенной запятой пары, состоящей из 'DaycountAdjustedCashFlow' и скаляр, логический со значением true или false.

Типы данных: логический

Дата выпуска облигаций в виде разделенной запятой пары, состоящей из 'IssueDate' и скалярный datetime, последовательный номер даты, вектор символов даты или строка даты.

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

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

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

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

Соглашения рабочего дня для дат потока наличности в виде разделенной запятой пары, состоящей из 'BusinessDayConvention' и скалярная строка или вектор символов. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:

  • "actual" — Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.

  • "follow" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.

  • "modifiedfollow" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.

  • "previous" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.

  • "modifiedprevious" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.

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

Праздники, используемые в вычислении рабочих дней в виде разделенной запятой пары, состоящей из 'Holidays' и даты с помощью datetimes, последовательные числа даты, массив ячеек векторов символов даты или массив строки даты. Например:

H = holidays(datetime('today'),datetime(2025,12,15));
InflationBondObj = fininstrument("InflationBond",'CouponRate',0.34,'Maturity',datetime(2025,12,15),'Holidays',H)

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

Правило конца месяца отмечает для генерации дат когда Maturity дата конца месяца в течение месяца с 30 или меньшим количеством дней в виде разделенной запятой пары, состоящей из 'EndMonthRule' и скалярное логическое значение true или false.

  • Если вы устанавливаете EndMonthRule к false, программное обеспечение игнорирует правило, означая, что платежный день всегда является тем же числовым днем месяца.

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

Типы данных: логический

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

Когда FirstCouponDate и LastCouponDate оба заданы, FirstCouponDate более приоритетен в определении структуры купонного платежа. Если вы не задаете FirstCouponDate, платежные дни потока наличности определяются из других входных параметров.

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

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

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

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

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

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

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

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

Свойства

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

InflationBond годовой показатель купона, возвращенный как скалярное десятичное число.

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

InflationBond дата погашения, возвращенная как datetime.

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

Частота платежей в год, возвращенный как скалярное целое число.

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

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

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

Начальная основная сумма, возвращенная как числовой скаляр.

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

Отметьте указание, настраивает ли поток наличности для базы ежедневного расчета процентов, возвращенной как скаляр, логический со значением true или false.

Типы данных: логический

Дата выпуска облигаций, возвращенная как datetime.

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

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

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

Соглашения рабочего дня, возвращенные как строка.

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

Праздники используются в вычислении рабочих дней, возвращенных как datetimes.

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

Правило конца месяца отмечает для генерации дат когда Maturity дата конца месяца в течение месяца, имея 30 или меньше дней, возвращенных как логический скаляр.

Типы данных: логический

Неправильная первая дата купона, возвращенная как datetime.

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

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

IssueDate = datetime(2021,1,1);
Maturity = datetime(2026,1,1);
CouponRate = 0.02;

InflationBond = fininstrument("InflationBond", 'IssueDate', IssueDate, 'Maturity', Maturity, 'CouponRate', CouponRate,'Name',"inflation_bond_instrument")
InflationBond = 
  InflationBond with properties:

                  CouponRate: 0.0200
                      Period: 2
                       Basis: 0
                   Principal: 100
    DaycountAdjustedCashFlow: 0
                         Lag: 3
       BusinessDayConvention: "actual"
                    Holidays: NaT
                EndMonthRule: 1
                   IssueDate: 01-Jan-2021
             FirstCouponDate: NaT
              LastCouponDate: NaT
                    Maturity: 01-Jan-2026
                        Name: "inflation_bond_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]

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

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

[Price, outPR] = price(outPricer, InflationBond)
Price = 112.1856
outPR = 
  priceresult with properties:

       Results: [1x1 table]
    PricerData: []

outPR.Results
ans=table
    Price 
    ______

    112.19

Больше о

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

Алгоритмы

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

I(0,T)Pn(0,T)=I(0)Pr(0,T)BTIPS(0,TM)=1I(T0)i=1McI(0)Pr(0,Ti)+FI(0)Pr(0,TM)                  =1I(T0)i=1McI(0,Ti)Pn(0,Ti)+FI(0,TM)Pn(0,TM)

где

  • P n является номинальной ценой облигации с нулевым купоном.

  • P r является действительной ценой облигации с нулевым купоном.

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

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

  • I (0) является индексом инфляции в (t = 0).

  • I (T 0) является основным индексом инфляции в дате выпуска (t = T 0).

  • B TIPS (0, T M) является индексированной инфляцией ценой облигаций.

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

  • C является купоном.

  • F является номинальной стоимостью.

Ссылки

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

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

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

Введенный в R2021a