FixedBond

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

Описание

Создайте и оцените FixedBond инструментальный объект для одного из Более фиксированных инструментов Связи с помощью этого рабочего процесса:

  1. Использование fininstrument создать FixedBond инструментальный объект для одного из Более фиксированных инструментов Связи.

  2. Используйте ratecurve задавать модель кривой для FixedBond инструментальный объект или использование HullWhite, BraceGatarekMusiela, SABRBraceGatarekMusiela, или LinearGaussian2F модель.

  3. Выберите метод ценообразования.

    • При использовании ratecurve использование finpricer задавать Discount метод ценообразования для одного или нескольких FixedBond инструменты.

    • При использовании HullWhite, BraceGatarekMusiela, SABRBraceGatarekMusiela, или LinearGaussian2F модель, использовать finpricer задавать IRMonteCarlo метод ценообразования для одного или нескольких FixedBond инструменты.

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

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

Создание

Описание

пример

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

FixedBond инструмент поддерживает связь ванили, ступенчатую облигацию на предъявителя и связь амортизации. Для получения дополнительной информации смотрите Больше О.

пример

FixedBondObj = fininstrument(___,Name,Value) устанавливает дополнительные свойства с помощью дополнительных пар "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, FixedBondObj = fininstrument("FixedBond",'CouponRate',0.034,'Maturity',datetime(2019,1,30),'Period',4,'Basis',1,'Principal',100,'FirstCouponDate',datetime(2016,1,30),'EndMonthRule',true,'Name',"fixedbond_instrument") создает FixedBond опция с купонной ставкой 0,34 и зрелость от 30 января 2019. Можно задать несколько аргументов пары "имя-значение".

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

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

Инструментальный тип в виде строки со значением "FixedBond", вектор символов со значением 'FixedBond', NINST- 1 массив строк со значениями "FixedBond", или NINST- 1 массив ячеек из символьных векторов со значениями 'FixedBond'.

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

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

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

Пример: FixedBondObj = fininstrument("FixedBond",'CouponRate',0.034,'Maturity',datetime(2019,1,30),'Period',4,'Basis',1,'Principal',100,'FirstCouponDate',datetime(2016,1,30),'EndMonthRule',true,'Name',"fixedbond_instrument")
Необходимый FixedBond Аргументы в виде пар имя-значение

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

FixedBond купонная ставка в виде разделенной запятой пары, состоящей из 'CouponRate' и скалярное десятичное число или NINST- 1 вектор из десятичных чисел для годового показателя или расписания, где первый столбец является датами и вторым столбцом, является сопоставленными уровнями. Дата указывает в последний день, что купонная ставка допустима.

Примечание

Если вы создаете один или несколько FixedBond инструменты и использование расписание, спецификация расписания применяется ко всему FixedBond инструменты. CouponRate не принимает NINST- 1 массив ячеек расписаний, как введено.

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

FixedBond дата погашения в виде разделенной запятой пары, состоящей из 'Maturity' и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.

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

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

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

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

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

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

Дневной базис количества в виде разделенной запятой пары, состоящей из 'Basis' и скалярное целое число или NINST- 1 вектор из целых чисел с помощью следующих значений:

  • 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' и числовой скаляр или NINST- 1 числовой вектор или расписание.

Principal принимает a timetable, где первый столбец является датами, и второй столбец является связанным отвлеченным основным значением. Дата указывает в последний день, что основное значение допустимо.

Примечание

Если вы создаете один или несколько FixedBond инструменты и использование расписание, спецификация расписания применяется ко всему FixedBond инструменты. Principal не принимает NINST- 1 массив ячеек расписаний, как введено.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Передайте срок начала работы платежей в виде разделенной запятой пары, состоящей из 'StartDate' и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.

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

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

Пользовательское имя для одного из большего количества инструментов в виде разделенной запятой пары, состоящей из 'Name' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.

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

Свойства

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

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

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

FixedBond дата погашения, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.

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

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

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

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

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

Основная сумма или основные расписания значения, возвращенные как числовой скаляр или NINST- 1 числовой вектор или расписание.

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

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

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

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

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

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

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

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

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

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

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

Неправильная первая дата купона, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.

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

Неправильная последняя дата купона, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.

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

Передайте срок начала работы платежей, возвращенных как скалярный datetime или NINST- 1 вектор из datetimes.

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

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

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

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

cashflowsВычислите поток наличности для FixedBond, FloatBondподкачка, FRA, STIRFuture, OISFuture, OvernightIndexedSwap, или Deposit инструмент

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить ваниль FixedBond инструмент, когда вы используете ratecurve и Discount метод ценообразования.

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

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

FixB = fininstrument("FixedBond",'Maturity',datetime(2022,9,15),'CouponRate',0.021,'Period',2,'Basis',1,'Principal',100,'Name',"fixed_bond_instrument")
FixB = 
  FixedBond with properties:

                  CouponRate: 0.0210
                      Period: 2
                       Basis: 1
                EndMonthRule: 1
                   Principal: 100
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                   IssueDate: NaT
             FirstCouponDate: NaT
              LastCouponDate: NaT
                   StartDate: NaT
                    Maturity: 15-Sep-2022
                        Name: "fixed_bond_instrument"

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2018,9,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;
 
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте Discount Объект калькулятора цен

Используйте finpricer создать Discount объект калькулятора цен и использование ratecurve объект с 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("Discount",'DiscountCurve',myRC)
outPricer = 
  Discount with properties:

    DiscountCurve: [1x1 ratecurve]

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

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

[Price, outPR] = price(outPricer, FixB,["all"])
Price = 104.5679
outPR = 
  priceresult with properties:

       Results: [1x2 table]
    PricerData: []

outPR.Results
ans=1×2 table
    Price       DV01  
    ______    ________

    104.57    0.040397

Этот пример показывает рабочий процесс, чтобы оценить несколько ваниль FixedBond инструменты, когда вы используете ratecurve и Discount метод ценообразования.

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

Используйте fininstrument создать FixedBond инструментальный объект для трех Фиксированных инструментов Связи.

FixB = fininstrument("FixedBond",'Maturity',datetime([2022,9,15 ; 2022,10,15 ; 2022,11,15]),'CouponRate',0.021,'Period',2,'Basis',1,'Principal',[100 ; 250 ; 500],'Name',"fixed_bond_instrument")
FixB=3×1 object
  3x1 FixedBond array with properties:

    CouponRate
    Period
    Basis
    EndMonthRule
    Principal
    DaycountAdjustedCashFlow
    BusinessDayConvention
    Holidays
    IssueDate
    FirstCouponDate
    LastCouponDate
    StartDate
    Maturity
    Name

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2018,9,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;
 
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте Discount Объект калькулятора цен

Используйте finpricer создать Discount объект калькулятора цен и использование ratecurve объект с 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("Discount",'DiscountCurve',myRC)
outPricer = 
  Discount with properties:

    DiscountCurve: [1x1 ratecurve]

Цена FixedBond Инструменты

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

[Price, outPR] = price(outPricer, FixB,["all"])
Price = 3×1

  104.5679
  261.4498
  522.9174

outPR=1×3 object
  1x3 priceresult array with properties:

    Results
    PricerData

outPR.Results
ans=1×2 table
    Price       DV01  
    ______    ________

    104.57    0.040397

ans=1×2 table
    Price     DV01 
    ______    _____

    261.45    0.103

ans=1×2 table
    Price      DV01  
    ______    _______

    522.92    0.21013

Этот пример показывает рабочий процесс, чтобы оценить ступенчатый FixedBond инструмент, когда вы используете ratecurve и Discount метод ценообразования.

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

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

Maturity = datetime(2024,1,1);
Period = 1;
CDates = datetime([2020,1,1 ; 2024,1,1]);
CRates = [.025; .03];
CouponRate = timetable(CDates,CRates);

SBond = fininstrument("FixedBond",'Maturity',Maturity,'CouponRate',CouponRate,'Period',Period) 
SBond = 
  FixedBond with properties:

                  CouponRate: [2x1 timetable]
                      Period: 1
                       Basis: 0
                EndMonthRule: 1
                   Principal: 100
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                   IssueDate: NaT
             FirstCouponDate: NaT
              LastCouponDate: NaT
                   StartDate: NaT
                    Maturity: 01-Jan-2024
                        Name: ""

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2018,1,1);
ZeroTimes = calyears(1:10)';
ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';
ZeroDates = Settle + ZeroTimes;
Compounding = 1;
ZeroCurve = ratecurve("zero",Settle,ZeroDates,ZeroRates, "Compounding",Compounding)
ZeroCurve = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: 1
                Basis: 0
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 01-Jan-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте Discount Объект калькулятора цен

Используйте finpricer создать Discount объект калькулятора цен и использование ratecurve объект с 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("Discount",'DiscountCurve',ZeroCurve)
outPricer = 
  Discount with properties:

    DiscountCurve: [1x1 ratecurve]

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

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

[Price, outPR] = price(outPricer, SBond,["all"])
Price = 109.6218
outPR = 
  priceresult with properties:

       Results: [1x2 table]
    PricerData: []

outPR.Results
ans=1×2 table
    Price       DV01  
    ______    ________

    109.62    0.061108

Этот пример показывает рабочий процесс, чтобы оценить амортизацию FixedBond инструмент, когда вы используете ratecurve и Discount метод ценообразования.

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

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

Maturity = datetime(2024,1,1);
Period = 1;
ADates = datetime([2020,1,1 ; 2024,1,1]);
APrincipal = [100; 85];
Principal = timetable(ADates,APrincipal);
Bondamort = fininstrument("FixedBond",'Maturity',Maturity,'CouponRate',0.025,'Period',Period,'Principal',Principal)  
Bondamort = 
  FixedBond with properties:

                  CouponRate: 0.0250
                      Period: 1
                       Basis: 0
                EndMonthRule: 1
                   Principal: [2x1 timetable]
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                   IssueDate: NaT
             FirstCouponDate: NaT
              LastCouponDate: NaT
                   StartDate: NaT
                    Maturity: 01-Jan-2024
                        Name: ""

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2018,1,1);
ZeroTimes = calyears(1:10)';
ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';
ZeroDates = Settle + ZeroTimes;
Compounding = 1;
ZeroCurve = ratecurve("zero",Settle,ZeroDates,ZeroRates, "Compounding",Compounding);

Создайте Discount Объект калькулятора цен

Используйте finpricer создать Discount объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("Discount",'DiscountCurve',ZeroCurve)
outPricer = 
  Discount with properties:

    DiscountCurve: [1x1 ratecurve]

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

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

[Price, outPR] = price(outPricer,Bondamort,["all"])
Price = 107.1273
outPR = 
  priceresult with properties:

       Results: [1x2 table]
    PricerData: []

outPR.Results
ans=1×2 table
    Price       DV01  
    ______    ________

    107.13    0.054279

Этот пример показывает рабочий процесс, чтобы оценить FixedBond инструмент при использовании HullWhite модель и IRMonteCarlo метод ценообразования.

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

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

FixB = fininstrument("FixedBond","Maturity",datetime(2022,9,15),"CouponRate",0.05,'Name',"fixed_bond")
FixB = 
  FixedBond with properties:

                  CouponRate: 0.0500
                      Period: 2
                       Basis: 0
                EndMonthRule: 1
                   Principal: 100
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                   IssueDate: NaT
             FirstCouponDate: NaT
              LastCouponDate: NaT
                   StartDate: NaT
                    Maturity: 15-Sep-2022
                        Name: "fixed_bond"

Создайте HullWhite Объект модели

Используйте finmodel создать HullWhite объект модели.

HullWhiteModel = finmodel("HullWhite",'Alpha',0.32,'Sigma',0.49)
HullWhiteModel = 
  HullWhite with properties:

    Alpha: 0.3200
    Sigma: 0.4900

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2019,1,1);
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;
 
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 01-Jan-2019
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте IRMonteCarlo Объект калькулятора цен

Используйте finpricer создать IRMonteCarlo объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("IRMonteCarlo",'Model',HullWhiteModel,'DiscountCurve',myRC,'SimulationDates',ZeroDates)
outPricer = 
  HWMonteCarlo with properties:

          NumTrials: 1000
      RandomNumbers: []
      DiscountCurve: [1x1 ratecurve]
    SimulationDates: [01-Jul-2019    01-Jan-2020    01-Jan-2021    ...    ]
              Model: [1x1 finmodel.HullWhite]

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

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

[Price,outPR] = price(outPricer,FixB,["all"])
Price = 115.0303
outPR = 
  priceresult with properties:

       Results: [1x4 table]
    PricerData: [1x1 struct]

outPR.Results
ans=1×4 table
    Price      Delta     Gamma     Vega
    ______    _______    ______    ____

    115.03    -397.13    1430.4     0  

Больше о

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

Введенный в R2020a