exponenta event banner

цена

Вычислить цену для инструмента процентной ставки с 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 pricer object и используйте 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около-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'}

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

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

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

свернуть все

Цена инструмента, возвращенная в виде цифры.

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

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

  • PriceResult.PricerData - Структура данных прайсера

Представлен в R2020a