BlackKarasinski

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

Описание

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

  1. Использовать fininstrument для создания Cap, Floor, Swaption, Swap, FloatBond, FixedBond, FixedBondOption, FloatBondOption, OptionEmbeddedFixedBond, или OptionEmbeddedFloatBond объект прибора.

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

  3. Использовать finpricer для задания IRTree метод ценообразования для Cap, Floor, Swaption, SwapFixedBond, FloatBond, FixedBondOption или OptionEmbeddedFixedBond прибора.

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

Для получения дополнительной информации о доступных методах ценообразования для Cap, FloorSwaption, Swap, FixedBond, FloatBond, FixedBondOption, FloatBondOption, OptionEmbeddedFixedBond, или OptionEmbeddedFloatBond инструмент, см. «Выбор инструментов», «Модели» и «Цены».

Создание

Описание

пример

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' и скалярное числовое значение или timetable.

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

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

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

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

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

Свойства

расширить все

Средняя скорость реверсии, возвращенная в виде скалярного числового значения или 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 и используйте объект pricer 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: [1x10 datetime]
      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