cashflows

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

Описание

пример

CF = cashflows(InstrumentObject,Settle) вычисляет поток наличности для Deposit, FRAподкачка, 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 объект калькулятора цен и использование 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 объект калькулятора цен и использование 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подкачка, или FRA.

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

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

Примечание

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

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

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

свернуть все

Поток наличности, возвращенный как расписание.

Введенный в R2020a