Floor

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

Описание

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

  1. Использование fininstrument создать Floor инструментальный объект для одного из большего количества инструментов Пола.

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

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

    • При использовании HullWhite, BlackKarasinski, Black, или Normal модель, использовать finpricer задавать Normal, Black, HullWhite, или IRTree метод ценообразования для одного или нескольких Floor инструменты.

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

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

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

Создание

Описание

пример

FloorOpt = fininstrument(InstrumentType,'Strike',strike_value,'Maturity',maturity_date) создает Floor объект для одного из большего количества инструментов Пола путем определения InstrumentType и устанавливает свойства для необходимой пары "имя-значение" argumentsStrike и Maturity.

Floor инструмент поддерживает этажи амортизации и ваниль.

пример

FloorOpt = fininstrument(___,Name,Value) устанавливает дополнительные свойства с помощью дополнительных пар "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, FloorOpt = fininstrument("floor",'Strike',100,'Maturity',datetime(2019,1,30),'Reset',4,'Principal',100,'ResetOffset',1,'Basis',4,'DaycountAdjustedCashFlow',true,'BusinessDayConvention',"follow",'ProjectionCurve',ratecurve_object,'Name',"floor_option") создает Floor инструмент с забастовкой 100 и зрелость от 30 января 2019. Можно задать несколько аргументов пары "имя-значение".

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

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

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

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

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

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

Пример: FloorOpt = fininstrument("floor",'Strike',100,'Maturity',datetime(2019,1,30),'Reset',4,'Principal',100,'ResetOffset',1,'Basis',4,'DaycountAdjustedCashFlow',true,'BusinessDayConvention',"follow",'ProjectionCurve',ratecurve_object,'Name',"floor_option")
Необходимый Floor Аргументы в виде пар имя-значение

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

Значение цены исполнения опциона опции в виде разделенной запятой пары, состоящей из 'Strike' и скалярное неотрицательное десятичное число или NINST- 1 вектор из неотрицательных десятичных чисел.

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

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

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

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

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

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

Сбросьте платежи частоты в год в виде разделенной запятой пары, состоящей из 'Reset' и числовой скаляр или NINST- 1 числовой вектор.

Типы данных: 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, где первый столбец является датами, и второй столбец является своим связанным основным значением. Дата указывает в последний день, что основное значение допустимо.

Примечание

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

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

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

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

Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода в виде разделенной запятой пары, состоящей из '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));
FloorOpt = fininstrument("floor",'Strike',100,'Maturity',datetime(2025,12,15),'Holidays',H)

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

Кривая уровня, используемая в проектировании будущих потоков наличности в виде разделенной запятой пары, состоящей из 'ProjectionCurve' и скалярный ratecurve возразите или NINST- 1 вектор из ratecurve объекты. Этот объект создается с помощью ratecurve. Используйте этот дополнительный вход, если прямая кривая отличается от дисконтной кривой.

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

Создайте ratecurve объект с помощью ratecurve поскольку базовая процентная ставка изгибается для floor инструмент.

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"

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

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

FloorOpt = fininstrument("Floor",'Maturity',datetime(2022,9,15),'Strike',0.03,'ProjectionCurve',myRC)
FloorOpt = 
  Floor with properties:

                      Strike: 0.0300
                    Maturity: 15-Sep-2022
                 ResetOffset: 0
                       Reset: 1
                       Basis: 0
                   Principal: 100
             ProjectionCurve: [1x1 ratecurve]
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                        Name: ""

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

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

BlackModel = finmodel("Black",'Volatility',0.2)
BlackModel = 
  Black with properties:

    Volatility: 0.2000
         Shift: 0

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

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

 outPricer = finpricer("analytic",'DiscountCurve',myRC,'Model',BlackModel)
outPricer = 
  Black with properties:

            Model: [1x1 finmodel.Black]
    DiscountCurve: [1x1 ratecurve]

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

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

[Price, outPR] = price(outPricer,FloorOpt)
Price = 8.0878
outPR = 
  priceresult with properties:

       Results: [1x1 table]
    PricerData: []

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

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

Создайте ratecurve объект с помощью ratecurve поскольку базовая процентная ставка изгибается для floor инструмент.

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"

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

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

FloorOpt = fininstrument("Floor",'Maturity',datetime([2022,9,15 ; 2022,9,15 ; 2022,9,15]),'Strike',[0.03 ; 0.04 ; 0.05],'ProjectionCurve',myRC)
FloorOpt=3×1 object
  3x1 Floor array with properties:

    Strike
    Maturity
    ResetOffset
    Reset
    Basis
    Principal
    ProjectionCurve
    DaycountAdjustedCashFlow
    BusinessDayConvention
    Holidays
    Name

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

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

BlackModel = finmodel("Black",'Volatility',0.2)
BlackModel = 
  Black with properties:

    Volatility: 0.2000
         Shift: 0

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

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

 outPricer = finpricer("analytic",'DiscountCurve',myRC,'Model',BlackModel)
outPricer = 
  Black with properties:

            Model: [1x1 finmodel.Black]
    DiscountCurve: [1x1 ratecurve]

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

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

[Price, outPR] = price(outPricer,FloorOpt)
Price = 3×1

    8.0878
   12.0033
   15.9263

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

    Results
    PricerData

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

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

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

FloorOpt = fininstrument("Floor",'Strike',0.039,'Maturity',datetime(2019,1,30),'Reset',4,'Principal',100,'Basis',12,'Name',"floor_option")
FloorOpt = 
  Floor with properties:

                      Strike: 0.0390
                    Maturity: 30-Jan-2019
                 ResetOffset: 0
                       Reset: 4
                       Basis: 12
                   Principal: 100
             ProjectionCurve: [0x0 ratecurve]
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                        Name: "floor_option"

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

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

HullWhiteModel = finmodel("HullWhite",'Alpha',0.032,'Sigma',0.04)
HullWhiteModel = 
  HullWhite with properties:

    Alpha: 0.0320
    Sigma: 0.0400

Создайте 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"

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

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

outPricer = finpricer("analytic",'Model',HullWhiteModel,'DiscountCurve',myRC)
outPricer = 
  HullWhite with properties:

    DiscountCurve: [1x1 ratecurve]
            Model: [1x1 finmodel.HullWhite]

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

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

Price = price(outPricer,FloorOpt)
Price = 1.2676

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

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

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

CADates = datetime([2020,9,1 ; 2023,9,1]);
CAPrincipal = [100; 85];
Principal = timetable(CADates,CAPrincipal);

FloorOpt = fininstrument("Floor",'Maturity',datetime(2023,9,1),'Strike',0.015,'Principal',Principal,'Name',"floor_amortizing_option")
FloorOpt = 
  Floor with properties:

                      Strike: 0.0150
                    Maturity: 01-Sep-2023
                 ResetOffset: 0
                       Reset: 1
                       Basis: 0
                   Principal: [2x1 timetable]
             ProjectionCurve: [0x0 ratecurve]
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                        Name: "floor_amortizing_option"

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

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

BlackModel = finmodel("Black",'Volatility',0.2)
BlackModel = 
  Black with properties:

    Volatility: 0.2000
         Shift: 0

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

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

Settle = datetime(2018,9,1);
Type = 'zero';
ZeroTimes = [calyears([1 2 3 4 5 7 10])]';
ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168]';
ZeroDates = Settle + ZeroTimes;
            
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates);

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

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

outPricer = finpricer("analytic",'Model',BlackModel,'DiscountCurve',myRC)
outPricer = 
  Black with properties:

            Model: [1x1 finmodel.Black]
    DiscountCurve: [1x1 ratecurve]

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

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

Price = price(outPricer,FloorOpt)
Price = 3.0030

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

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

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

FloorOpt = fininstrument("Floor",'Strike',0.03,'Maturity',datetime(2020,1,30),'Reset',4,'Principal',100,'Basis',8,'Name',"floor_option")
FloorOpt = 
  Floor with properties:

                      Strike: 0.0300
                    Maturity: 30-Jan-2020
                 ResetOffset: 0
                       Reset: 4
                       Basis: 8
                   Principal: 100
             ProjectionCurve: [0x0 ratecurve]
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                        Name: "floor_option"

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

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

HullWhiteModel = finmodel("HullWhite",'Alpha',0.01,'Sigma',0.10)
HullWhiteModel = 
  HullWhite with properties:

    Alpha: 0.0100
    Sigma: 0.1000

Создайте 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"

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

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

CFdates = cfdates(Settle, FloorOpt.Maturity, FloorOpt.Reset, FloorOpt.Basis);
outPricer = finpricer("IRTree",'Model',HullWhiteModel,'DiscountCurve',myRC,'TreeDates',CFdates')
outPricer = 
  HWBKTree with properties:

             Tree: [1x1 struct]
        TreeDates: [6x1 datetime]
            Model: [1x1 finmodel.HullWhite]
    DiscountCurve: [1x1 ratecurve]

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

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

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

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

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

    5.7821    31.821    141.45    -110.54

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

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

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

FloorOpt = fininstrument("Floor","Maturity",datetime(2022,9,15),'Strike',0.05,'Reset',1,'Name',"floor_option")
FloorOpt = 
  Floor with properties:

                      Strike: 0.0500
                    Maturity: 15-Sep-2022
                 ResetOffset: 0
                       Reset: 1
                       Basis: 0
                   Principal: 100
             ProjectionCurve: [0x0 ratecurve]
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "actual"
                    Holidays: NaT
                        Name: "floor_option"

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

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

BGMVolFunc = @(a,t) (a(1)*t + a(2)).*exp(-a(3)*t) + a(4);
BGMVolParams = [.3 -.02 .7 .14];
numRates = 20;
VolFunc(1:numRates-1) = {@(t) BGMVolFunc(BGMVolParams,t)};
Beta = .08;
CorrFunc = @(i,j,Beta) exp(-Beta*abs(i-j));
Correlation = CorrFunc(meshgrid(1:numRates-1)',meshgrid(1:numRates-1),Beta);
BGM = finmodel("BraceGatarekMusiela",'Volatility',VolFunc,'Correlation',Correlation,'Period',1);

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

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

Settle = datetime(2019,1,1);
Type = 'zero';
ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20])]';
ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293]';
ZeroDates = Settle + ZeroTimes;
 
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = 
  ratecurve with properties:

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

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

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

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

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

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

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

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

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

outPR.Results
ans=1×3 table
    Price     Delta     Gamma 
    ______    ______    ______

    14.788    -400.4    1280.7

Больше о

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

Введенный в R2020a