inflationCashflows

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

Описание

пример

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

Примеры

свернуть все

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

Создайте 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]

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

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

Maturity = datetime(2025,1,1);
FixedInflationRate = 0.015;
Notional = 2000;

YYInflationSwap = fininstrument("YearYearInflationSwap",'Maturity',Maturity,'FixedInflationRate',FixedInflationRate,'Notional',Notional,'Name',"YYInflationSwap_instrument")
YYInflationSwap = 
  YearYearInflationSwap with properties:

              Notional: 2000
    FixedInflationRate: 0.0150
                 Basis: 0
                   Lag: 3
              Maturity: 01-Jan-2025
                  Name: "YYInflationSwap_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]

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

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

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

       Results: [1x1 table]
    PricerData: []

outPR.Results
ans=table
    Price 
    ______

    12.504

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

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

outCF = inflationCashflows(YYInflationSwap,datetime(2021,1,15),myInflationCurve)
outCF=4×2 timetable
       Time        Var1     Var2 
    ___________    ____    ______

    01-Jan-2022    -30         40
    01-Jan-2023    -30     29.412
    01-Jan-2024    -30     28.986
    01-Jan-2025    -30     34.286

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

Создайте 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,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]

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

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

Maturity = datetime([2024,1,1 ; 2024,11,1 ; 2024,12,1]);
FixedInflationRate = 0.015;
Notional = [20000 ; 30000 ; 40000];

YYInflationSwap = fininstrument("YearYearInflationSwap",'Maturity',Maturity,'FixedInflationRate',FixedInflationRate,'Notional',Notional,'Name',"YYInflationSwap_instrument")
YYInflationSwap=3×1 object
  3x1 YearYearInflationSwap array with properties:

    Notional
    FixedInflationRate
    Basis
    Lag
    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]

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

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

[Price,outPR] = price(outPricer,YYInflationSwap,"all")
Price = 3×1

   26.0701
   18.1540
    1.3201

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

    Results
    PricerData

outPR.Results
ans=table
    Price
    _____

    26.07

ans=table
    Price 
    ______

    18.154

ans=table
    Price 
    ______

    1.3201

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

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

outCF = inflationCashflows(YYInflationSwap(1),datetime(2021,1,15),myInflationCurve)
outCF=3×2 timetable
       Time        Var1     Var2 
    ___________    ____    ______

    01-Jan-2022    -300    294.12
    01-Jan-2023    -300    289.86
    01-Jan-2024    -300    342.86

outCF = inflationCashflows(YYInflationSwap(2),datetime(2021,1,15),myInflationCurve)
outCF=4×2 timetable
       Time        Var1     Var2 
    ___________    ____    ______

    01-Nov-2021    -450    467.39
    01-Nov-2022    -450    435.85
    01-Nov-2023    -450    500.98
    01-Nov-2024    -450    413.63

outCF = inflationCashflows(YYInflationSwap(3),datetime(2021,1,15),myInflationCurve)
outCF=4×2 timetable
       Time        Var1     Var2 
    ___________    ____    ______

    01-Dec-2021    -600    605.42
    01-Dec-2022    -600    580.41
    01-Dec-2023    -600    676.99
    01-Dec-2024    -600     537.7

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

свернуть все

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

Примечание

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

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

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

Примечание

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

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

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

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

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

свернуть все

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

Введенный в R2021a