exponenta event banner

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

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

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

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

Sigma принимает 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 pricer object и используйте 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