cashflows

Вычисляет денежный поток для FixedBond, FloatBond, Swap, FRA, или Deposit инструмент

Описание

пример

CF = cashflows(InstrumentObject,Settle) вычисляет денежный поток для Deposit, FRA, Swap, FixedBond, или FloatBond прибора.

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить FRA(соглашение о форвардной ставке) инструмент и затем используйте cashflows для определения денежного потока для FRA прибора.

Создание FRA Объект прибора

Использование fininstrument для создания FRA объект прибора.

FRAObj = fininstrument("FRA",'StartDate',datetime(2020,9,15),'Maturity',datetime(2022,9,15),'Rate',0.175)
FRAObj = 
  FRA with properties:

                     Rate: 0.1750
                    Basis: 2
                StartDate: 15-Sep-2020
                 Maturity: 15-Sep-2022
                Principal: 100
    BusinessDayConvention: "actual"
                 Holidays: NaT
                     Name: ""

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

Создайте ratecurve объект, использующий ratecurve.

Settle = datetime(2018,9,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-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создание Discount Объект прейскуранта

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

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

    DiscountCurve: [1x1 ratecurve]

Ценовые FRA Инструмент

Использование price вычислить цену и чувствительность для FRA прибора.

[Price, outPR] = price(outPricer, FRAObj,["all"])
Price = 34.1757
outPR = 
  priceresult with properties:

       Results: [1x2 table]
    PricerData: []

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

    34.176    0.01368

Использование cashflows для FRA инструмент со Settle дата 15-Dec-2021. Заданное Settle дата должна быть перед инструментом Maturity дата.

CF = cashflows(FRAObj,datetime(2021,12,15))
CF= 1×1timetable
       Time         CFA  
    ___________    ______

    15-Sep-2022    35.486

Этот пример показывает рабочий процесс, чтобы оценить FixedBond инструмент и затем используйте cashflows для вычисления денежного потока для FixedBond прибора.

Создание FixedBond Объект прибора

Использование fininstrument для создания FixedBond объект прибора.

FixB = fininstrument("FixedBond",'Maturity',datetime(2022,9,15),'CouponRate',0.05,'Period',4,'Basis',7,'Principal',1000,'BusinessDayConvention',"follow",'Name',"fixed_bond_instrument")
FixB = 
  FixedBond with properties:

                  CouponRate: 0.0500
                      Period: 4
                       Basis: 7
                EndMonthRule: 1
                   Principal: 1000
    DaycountAdjustedCashFlow: 0
       BusinessDayConvention: "follow"
                    Holidays: NaT
                   IssueDate: NaT
             FirstCouponDate: NaT
              LastCouponDate: NaT
                   StartDate: NaT
                    Maturity: 15-Sep-2022
                        Name: "fixed_bond_instrument"

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

Создайте ratecurve объект, использующий ratecurve.

Settle = datetime(2018,9,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-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создание Discount Объект прейскуранта

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

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

    DiscountCurve: [1x1 ratecurve]

Ценовые FixedBond Инструмент

Использование price вычислить цену и чувствительность для FixedBond прибора.

[Price, outPR] = price(outPricer, FixB,["all"])
Price = 1.1600e+03
outPR = 
  priceresult with properties:

       Results: [1x2 table]
    PricerData: []

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

    1160     0.42712

Использование cashflows для вычисления денежного потока для FixedBond инструмент для любой заданной Settle дата перед инструментом Maturity дата.

CF = cashflows(FixB,datetime(2021,9,15))
CF=5×1 timetable
       Time         Var1 
    ___________    ______

    15-Sep-2021         0
    15-Dec-2021      12.5
    15-Mar-2022      12.5
    15-Jun-2022      12.5
    15-Sep-2022    1012.5

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

свернуть все

Объект инструмента, заданный с помощью ранее созданного объекта инструмента для одного из следующих: Deposit, FixedBond, FloatBond, Swap, или FRA.

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

Дата расчета для денежного потока инструмента, заданная в виде скаляра с использованием datetime, серийного номера даты, вектора символов даты или строки даты.

Примечание

The Settle дата, которую вы должны указать, должна быть перед Maturity дата для Deposit, FixedBond, FloatBond, Swap, или FRA прибора.

Типы данных: double | char | datetime | string

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

свернуть все

Денежный поток, возвращенный как расписание.

Введенный в R2020a