inflationCashflows

Вычислите потоки наличности для InflationBond инструмент

Описание

пример

outCF = inflationCashflows(inpInstrumentObject,Settle,inpInflationCurve) вычисляет потоки наличности для InflationBond инструментальный объект.

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить InflationBond инструмент, когда вы используете inflationcurve возразите и Inflation метод ценообразования. Потоки наличности для InflationBond инструмент вычисляется с помощью inflationCashflows.

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

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2021,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;
ZeroCurve = ratecurve('zero',Settle,ZeroDates,ZeroRates)
ZeroCurve = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 15-Jan-2021
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

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

Создайте inflationcurve объект с помощью inflationcurve.

BaseDate = datetime(2020,10,1);
InflationTimes = [0 calyears([1 2 3 4 5 7 10 20 30])]';
InflationIndexValues = [100 102 103.5 105 106.8 108.2 111.3 120.1 130.4 150.2]';
InflationDates = BaseDate + InflationTimes;
myInflationCurve = inflationcurve(InflationDates,InflationIndexValues)
myInflationCurve = 
  inflationcurve with properties:

                    Basis: 0
                    Dates: [10x1 datetime]
     InflationIndexValues: [10x1 double]
    ForwardInflationRates: [9x1 double]
              Seasonality: [12x1 double]

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

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

IssueDate = datetime(2021,1,1);
Maturity = datetime(2026,1,1);
CouponRate = 0.02;

InflationBond = fininstrument("InflationBond",'IssueDate',IssueDate,'Maturity',Maturity,'CouponRate',CouponRate,'Name',"inflation_bond_instrument")
InflationBond = 
  InflationBond with properties:

                  CouponRate: 0.0200
                      Period: 2
                       Basis: 0
                   Principal: 100
    DaycountAdjustedCashFlow: 0
                         Lag: 3
       BusinessDayConvention: "actual"
                    Holidays: NaT
                EndMonthRule: 1
                   IssueDate: 01-Jan-2021
             FirstCouponDate: NaT
              LastCouponDate: NaT
                    Maturity: 01-Jan-2026
                        Name: "inflation_bond_instrument"

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

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

outPricer = finpricer("Inflation",'DiscountCurve',ZeroCurve,'InflationCurve',myInflationCurve)
outPricer = 
  Inflation with properties:

     DiscountCurve: [1x1 ratecurve]
    InflationCurve: [1x1 inflationcurve]

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

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

[Price,outPR] = price(outPricer,InflationBond)
Price = 112.1856
outPR = 
  priceresult with properties:

       Results: [1x1 table]
    PricerData: []

outPR.Results
ans=table
    Price 
    ______

    112.19

Вычислите потоки наличности для InflationBond Инструмент

Используйте inflationCashflows вычислить потоки наличности для InflationBond инструмент.

outCF = inflationCashflows(InflationBond,datetime(2021,1,15),myInflationCurve)
outCF=11×1 timetable
       Time        InflationCFAmounts
    ___________    __________________

    15-Jan-2021        -0.077407     
    01-Jul-2021           1.0099     
    01-Jan-2022             1.02     
    01-Jul-2022           1.0275     
    01-Jan-2023            1.035     
    01-Jul-2023           1.0425     
    01-Jan-2024             1.05     
    01-Jul-2024            1.059     
    01-Jan-2025            1.068     
    01-Jul-2025            1.075     
    01-Jan-2026           109.28     

Этот пример показывает рабочий процесс, чтобы оценить несколько InflationBond инструменты, когда вы используете inflationcurve возразите и Inflation метод ценообразования. Потоки наличности для InflationBond инструменты вычисляются с помощью inflationCashflows.

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

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2021,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;
ZeroCurve = ratecurve('zero',Settle,ZeroDates,ZeroRates)
ZeroCurve = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 15-Jan-2021
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

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

Создайте inflationcurve объект с помощью inflationcurve.

BaseDate = datetime(2019,8,1);
InflationTimes = [0 calyears([1 2 3 4 5 7 10 20 30])]';
InflationIndexValues = [100 102 103.5 105 106.8 108.2 111.3 120.1 130.4 150.2]';
InflationDates = BaseDate + InflationTimes;
myInflationCurve = inflationcurve(InflationDates,InflationIndexValues)
myInflationCurve = 
  inflationcurve with properties:

                    Basis: 0
                    Dates: [10x1 datetime]
     InflationIndexValues: [10x1 double]
    ForwardInflationRates: [9x1 double]
              Seasonality: [12x1 double]

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

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

IssueDate = datetime([2020,1,1 ; 2019,12,1 ; 2019,11,1]);
Maturity = datetime([2026,1,1 ; 2026,2,1 ; 2026,3,1]);
CouponRate = 0.02;

InflationBond = fininstrument("InflationBond",'IssueDate',IssueDate,'Maturity',Maturity,'CouponRate',CouponRate,'Name',"inflation_bond_instrument")
InflationBond=3×1 object
  3x1 InflationBond array with properties:

    CouponRate
    Period
    Basis
    Principal
    DaycountAdjustedCashFlow
    Lag
    BusinessDayConvention
    Holidays
    EndMonthRule
    IssueDate
    FirstCouponDate
    LastCouponDate
    Maturity
    Name

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

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

outPricer = finpricer("Inflation",'DiscountCurve',ZeroCurve,'InflationCurve',myInflationCurve)
outPricer = 
  Inflation with properties:

     DiscountCurve: [1x1 ratecurve]
    InflationCurve: [1x1 inflationcurve]

Цена InflationBond Инструменты

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

[Price,outPR] = price(outPricer,InflationBond)
Price = 3×1

  113.6829
  113.9533
  114.2316

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

    Results
    PricerData

outPR.Results
ans=table
    Price 
    ______

    113.68

ans=table
    Price 
    ______

    113.95

ans=table
    Price 
    ______

    114.23

Вычислите потоки наличности для InflationBond Инструменты

Используйте inflationCashflows вычислить потоки наличности для трех InflationBond инструменты.

outCF = inflationCashflows(InflationBond(1),datetime(2021,1,15),myInflationCurve)
outCF=11×1 timetable
       Time        InflationCFAmounts
    ___________    __________________

    15-Jan-2021        -0.078871     
    01-Jul-2021           1.0266     
    01-Jan-2022           1.0341     
    01-Jul-2022           1.0415     
    01-Jan-2023           1.0495     
    01-Jul-2023           1.0585     
    01-Jan-2024           1.0668     
    01-Jul-2024           1.0738     
    01-Jan-2025            1.081     
    01-Jul-2025           1.0886     
    01-Jan-2026           110.73     

outCF = inflationCashflows(InflationBond(2),datetime(2021,1,15),myInflationCurve)
outCF=12×1 timetable
       Time        InflationCFAmounts
    ___________    __________________

    15-Jan-2021         -0.92699     
    01-Feb-2021            1.022     
    01-Aug-2021           1.0295     
    01-Feb-2022            1.037     
    01-Aug-2022           1.0444     
    01-Feb-2023           1.0527     
    01-Aug-2023           1.0617     
    01-Feb-2024           1.0697     
    01-Aug-2024           1.0767     
    01-Feb-2025            1.084     
    01-Aug-2025           1.0917     
    01-Feb-2026           111.05     

outCF = inflationCashflows(InflationBond(3),datetime(2021,1,15),myInflationCurve)
outCF=12×1 timetable
       Time        InflationCFAmounts
    ___________    __________________

    15-Jan-2021         -0.76871     
    01-Mar-2021            1.025     
    01-Sep-2021           1.0325     
    01-Mar-2022             1.04     
    01-Sep-2022           1.0475     
    01-Mar-2023            1.056     
    01-Sep-2023            1.065     
    01-Mar-2024           1.0726     
    01-Sep-2024           1.0797     
    01-Mar-2025           1.0871     
    01-Sep-2025           1.0948     
    01-Mar-2026           111.36     

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

свернуть все

Инструментальный объект, заданное использование ранее созданного инструмента возражает для InflationBond.

Примечание

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

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

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

Примечание

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

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

Кривая инфляции, заданное использование ранее созданной инфляции изгибает объект с помощью inflationcurve.

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

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

свернуть все

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

Введенный в R2021a