cashflows

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

Описание

пример

CF = cashflows(InstrumentObject,Settle) вычисляет поток наличности для Deposit, FRAподкачка, STIRFuture, OISFuture, FixedBond, OvernightIndexedSwap, или 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

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

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

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

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

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

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

OISFuture = fininstrument("OISFuture",'Maturity',datetime(2022,12,15),'QuotedPrice',99.5,'StartDate',datetime(2022,9,15),'Notional',90,'ProjectionCurve',myRC,'Name',"ois_future_instrument")
OISFuture = 
  OISFuture with properties:

              QuotedPrice: 99.5000
                   Method: "compound"
                    Basis: 2
                StartDate: 15-Sep-2022
                 Maturity: 15-Dec-2022
                 Notional: 90
    BusinessDayConvention: "actual"
                 Holidays: NaT
          ProjectionCurve: [1x1 ratecurve]
         HistoricalFixing: [0x0 timetable]
                     Name: "ois_future_instrument"

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

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

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

    DiscountCurve: [1x1 ratecurve]

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

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

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

       Results: [1x2 table]
    PricerData: []

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

    2.6543    -0.0013589

Используйте cashflows вычислить поток наличности для OISFuture инструмент с Settle дата 15-Sep-2022. Заданный Settle дата должна быть перед инструментом Maturity дата.

CF = cashflows(OISFuture,datetime(2022,9,15))
CF= 1×1timetable
       Time         CFA  
    ___________    ______

    15-Dec-2022    2.7225

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

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

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

FRAObj = fininstrument("FRA",'StartDate',datetime([2020,9,15 ; 2020,10,15 ; 2020,11,15]),'Maturity',datetime([2022,9,15 ; 2022,10,15 ; 2022,11,15]),'Rate',0.175)
FRAObj=3×1 object
  3x1 FRA array with properties:

    Rate
    Basis
    StartDate
    Maturity
    Principal
    BusinessDayConvention
    Holidays
    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 = 3×1

   34.1757
   34.1207
   34.0627

outPR=1×3 object
  1x3 priceresult array with properties:

    Results
    PricerData

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

    34.176    0.01368

ans=1×2 table
    Price       DV01  
    ______    ________

    34.121    0.013938

ans=1×2 table
    Price       DV01  
    ______    ________

    34.063    0.014204

Используйте cashflows для трех FRA инструменты с Settle дата от 15 апреля 2022. Заданный Settle дата должна быть перед инструментом Maturity дата.

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

    15-Sep-2022    35.486

CF = cashflows(FRAObj(2),datetime(2022,4,15))
CF= 1×1timetable
       Time         CFA  
    ___________    ______

    15-Oct-2022    35.486

CF = cashflows(FRAObj(3),datetime(2022,4,15))
CF= 1×1timetable
       Time         CFA  
    ___________    ______

    15-Nov-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подкачка, STIRFuture, OISFuture, OvernightIndexedSwap, или FRA.

Примечание

Если InstrumentObject вектор из инструментов, необходимо использовать cashflows отдельно с каждым инструментом.

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

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

Примечание

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

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

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

свернуть все

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

Введенный в R2020a