BlackKarasinski

Создайте BlackKarasinski объект модели для CapполSwaptionподкачка, FloatBond, FixedBond, FixedBondOption, FloatBondOption, OptionEmbeddedFixedBond, или OptionEmbeddedFloatBond инструмент

Описание

Создайте и оцените Capпол, Swaptionподкачка, FloatBond, FixedBond, FixedBondOption, FloatBondOption, OptionEmbeddedFixedBond, или OptionEmbeddedFloatBond инструментальный объект с BlackKarasinski модель с помощью этого рабочего процесса:

  1. Использование fininstrument создать Capпол, Swaptionподкачка, FloatBond, FixedBond, FixedBondOption, FloatBondOption, OptionEmbeddedFixedBond, или OptionEmbeddedFloatBond инструментальный объект.

  2. Использование finmodel задавать BlackKarasinski объект модели для Capпол, Swaptionподкачка, FixedBond, FloatBond, FixedBondOption, FloatBondOption, OptionEmbeddedFixedBond, или OptionEmbeddedFloatBond инструментальный объект.

  3. Использование finpricer задавать IRTree метод ценообразования для Capпол, SwaptionподкачкаFixedBond, FloatBond, FixedBondOption или OptionEmbeddedFixedBond инструментальный объект.

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

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

Создание

Описание

пример

BlackKarasinskiModelObj = finmodel(ModelType,'Alpha',alpha_value,'Sigma',sigma_value) создает BlackKarasinski объект модели путем определения ModelType и необходимые аргументы пары "имя-значение" Alpha и Sigma установить свойства. Например, BlackKarasinskiModelObj = finmodel("BlackKarasinski",'Alpha',0.052,'Sigma',0.34) создает BlackKarasinski объект модели.

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

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

Тип модели в виде строки со значением "BlackKarasinski" или вектор символов со значением 'BlackKarasinski'.

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

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

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

Пример: BlackKarasinskiModelObj = finmodel("BlackKarasinski",'Alpha',0.052,'Sigma',0.34)

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

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

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

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

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

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

Свойства

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

Скорость возвращения к среднему уровню, возвращенная как скалярное числовое значение или расписание.

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

Энергозависимость, возвращенная как скалярное числовое значение или расписание.

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

Примеры

свернуть все

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

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

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

BondInst = fininstrument("FixedBond",'Maturity',datetime(2029,9,15),'CouponRate',.024,'Principal',100,'Basis',1,'Period',1,'Name',"fixed_bond")
BondInst = 
  FixedBond with properties:

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

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

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

FixedBOption = fininstrument("FixedBondOption",'ExerciseDate',datetime(2025,9,15),'Strike',800,'Bond',BondInst,'OptionType',"put",'ExerciseStyle',"american",'Name',"fixed_bond_option")
FixedBOption = 
  FixedBondOption with properties:

       OptionType: "put"
    ExerciseStyle: "american"
     ExerciseDate: 15-Sep-2025
           Strike: 800
             Bond: [1x1 fininstrument.FixedBond]
             Name: "fixed_bond_option"

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

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

Settle = datetime(2019,9,15);
Type = 'zero';
ZeroTimes = [calyears([1:10])]';
ZeroRates = [0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307 0.0310]';
ZeroDates = Settle + ZeroTimes;
 
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates, 'Basis',5)
myRC = 
  ratecurve with properties:

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

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

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

BlackKarasinskiModel = finmodel("BlackKarasinski",'Alpha',0.02,'Sigma',0.34)
BlackKarasinskiModel = 
  BlackKarasinski with properties:

    Alpha: 0.0200
    Sigma: 0.3400

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

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

BKTreePricer = finpricer("IRTree",'Model',BlackKarasinskiModel,'DiscountCurve',myRC,'TreeDates',ZeroDates)
BKTreePricer = 
  HWBKTree with properties:

             Tree: [1x1 struct]
        TreeDates: [10x1 datetime]
            Model: [1x1 finmodel.BlackKarasinski]
    DiscountCurve: [1x1 ratecurve]

BKTreePricer.Tree
ans = struct with fields:
        tObs: [0 1 2 3 4 5 6 7 8 9]
        dObs: [15-Sep-2019    15-Sep-2020    15-Sep-2021    ...    ]
      CFlowT: {1x10 cell}
       Probs: {1x9 cell}
     Connect: {1x9 cell}
     FwdTree: {1x10 cell}
    RateTree: {1x10 cell}

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

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

[Price, outPR] = price(BKTreePricer,FixedBOption,["all"])
Price = 705.2729
outPR = 
  priceresult with properties:

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

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

    705.27    -1.1369e-09    -8084.8    844.75

Введенный в R2020a