price

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

Описание

пример

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

пример

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

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить Swap инструмент при использовании ratecurve и a 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 и используйте объект pricer 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.023765

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

свернуть все

Объект Pricer, заданный как скалярное Discount объект прейскуранта. Использовать finpricer чтобы создать Discountобъект прейскуранта.

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

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

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

(Необязательно) Список чувствительности для вычисления, заданный как NOUT-by- 1 или 1-by- 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'}

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

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

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

свернуть все

Цена инструмента, возвращенная в виде числа.

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

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

  • PriceResult.PricerData - Структура для более ценовых данных

Введенный в R2020a