InflationBond

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

Описание

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

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

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

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

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

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

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

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

Создание

Описание

пример

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 (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

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

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

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

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

Дата выпуска облигации, заданная как разделенная разделенными запятой парами, состоящая из '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программное обеспечение устанавливает правило, означающее, что дата платежа всегда является последним фактическим днем месяца.

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

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

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

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

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

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

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

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

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

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

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

Флаг правила конца месяца для генерации дат при Maturity - дата окончания месяца для месяца, имеющего 30 или менее дней, возвращаемая как скаляр логическая.

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

Нерегулярная дата первого купона, возвращенная как 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 и используйте объект pricer 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] Brody, D. C., Crosby, J. and Li, H. «Convexity Adjustments in Inflation-Linked Derivatives». Журнал «Риск». Ноябрь 2008, с. 124-129.

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

[3] Zhang, J. X. «Limited Price Indexation (LPI) Swap Valuation Ideas». Журнал Wilmott. № 57, январь 2012, с. 58-69.

Введенный в R2021a