price

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

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

Settle = datetime(2022,1,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-Jan-2022
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

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

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

SwapOpt = fininstrument("Swap",'Maturity',datetime(2027,1,15),'LegRate',[0.024 0.015],'LegType',["fixed","float"],'ProjectionCurve',myRC,'Name',"swap_instrument")
SwapOpt = 
  Swap with properties:

                     LegRate: [0.0240 0.0150]
                     LegType: ["fixed"    "float"]
                       Reset: [2 2]
                       Basis: [0 0]
                    Notional: 100
          LatestFloatingRate: [NaN NaN]
                 ResetOffset: [0 0]
    DaycountAdjustedCashFlow: [0 0]
             ProjectionCurve: [1x2 ratecurve]
       BusinessDayConvention: ["actual"    "actual"]
                    Holidays: NaT
                EndMonthRule: [1 1]
                   StartDate: NaT
                    Maturity: 15-Jan-2027
                        Name: "swap_instrument"

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

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

outPricer = finpricer("Discount", 'DiscountCurve',myRC)
outPricer = 
  Discount with properties:

    DiscountCurve: [1x1 ratecurve]

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

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

[Price, outPR] = price(outPricer, SwapOpt,["all"])
Price = -1.3834
outPR = 
  priceresult with properties:

       Results: [1x2 table]
    PricerData: []

outPR.Results
ans=1×2 table
     Price       DV01  
    _______    ________

    -1.3834    0.048336

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

свернуть все

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

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

Объект Instrument в виде скаляра или вектора для Deposit, FixedBond, FloatBond, FRAподкачка, STIRFuture, OISFuture, или OvernightIndexedSwap инструментальные объекты. Использование fininstrument создать Deposit, FixedBond, FloatBond, FRAподкачка, STIRFuture, OISFuture, или OvernightIndexedSwap инструментальные объекты.

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

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

inpSensitivity = {'All'} или inpSensitivity = ["All"] указывает, что выходом является Price и DV01. Это совпадает с определением inpSensitivity включать каждую чувствительность.

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

inpInstrumentПоддерживаемая чувствительность
Deposit{'DV01','price'}
FixedBond{'DV01','price'}
FloatBond{'DV01','price'}
FRA{'DV01','price'}
Swap{'DV01','price'}
STIRFuture{'DV01','price'}
OISFuture{'DV01','price'}
OvernightIndexedSwap{'DV01','price'}

Пример: inpSensitivity = {'DV01','price'}

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

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

свернуть все

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

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

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

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

Введенный в R2020a