price

Вычислите цену за инструмент процентной ставки с IRMonteCarlo калькулятор цен

Описание

пример

[Price,PriceResult] = price(inpPricer,inpInstrument) вычисляет инструментальную цену процентной ставки и связанную информацию о ценах на основе объекта inpPricer оценки и инструментальный объект inpInstrument.

пример

[Price,PriceResult] = price(___,inpSensitivity) добавляет дополнительный аргумент, чтобы задать чувствительность. Используйте этот синтаксис с комбинацией входных аргументов в предыдущем синтаксисе.

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить 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  

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

свернуть все

Объект Pricer в виде ранее созданного IRMonteCarlo объект калькулятора цен. Создайте использование объекта калькулятора цен finpricer.

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

Объект Instrument в виде скаляра или вектора из ранее созданных инструментальных объектов. Создайте инструментальное использование объектов fininstrument. Следующие инструментальные объекты поддерживаются:

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

(Необязательно) Список чувствительности, чтобы вычислить в виде NOUT- 1 или 1- NOUT массив ячеек из символьных векторов или массив строк.

Поддерживаемая чувствительность зависит от метода ценообразования.

inpInstrumentПоддерживаемая чувствительность
Cap{'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.)
Floor{'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.)
Swap{'delta','gamma','vega','price'}
Swaption{'delta','gamma','vega','price'}
FixedBond{'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.)
OptionEmbeddedFixedBond{'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.)
FixedBondOption{'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.)
FloatBond{'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.)
FloatBondOption{'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.)
OptionEmbeddedFloatBond{'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.)

inpSensitivity = 'All' или inpSensitivity = "All" указывает, что вся чувствительность для метода ценообразования возвращена. Это совпадает с определением inpSensitivity включать каждую чувствительность.

Пример: inpSensitivity = ["delta","gamma","vega","price"]

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

Выходные аргументы

свернуть все

Инструментальная цена, возвращенная как числовое.

Ценовой результат, возвращенный как PriceResult объект. Объект имеет следующие поля:

  • PriceResult.Results — Таблица результатов, которая включает чувствительность (если вы задаете inpSensitivity)

  • PriceResult.PricerData — Структура для данных о калькуляторе цен

Введенный в R2021b