cmsCashflows
Description
computes the cash flows for the underlying asset of a outCF = cmsCashflows(InstrumentObject,Settle,CMSRateTimeTable)CMS or CMSNote instrument
object.
Examples
This example shows how to compute the cash flows for a CMS instrument.
Create CMS Instrument Object
Use fininstrument to create a CMS instrument object.
Settle = datetime(2022,9,15); Maturity = datetime(2028,9,15); CMSLegPeriod = 2; FixedLegPeriod = 2; CMSInstrument = fininstrument("CMS",Maturity=datetime(2028,9,15),CMSReferenceTenor=10,Reset=[CMSLegPeriod FixedLegPeriod],LegRate=[0 0.01],LegType=["cms" "fixed"],Name="CMS instrument")
CMSInstrument =
CMS with properties:
CMSReferenceReset: 2
CMSReferenceTenor: 10
LegRate: [0 0.0100]
LegType: ["cms" "fixed"]
Reset: [2 2]
Basis: [0 0]
Notional: 100
LatestFloatingRate: [NaN NaN]
LatestCMSRate: NaN
ResetOffset: [0 0]
DaycountAdjustedCashFlow: [0 0]
ProjectionCurve: [0×0 ratecurve]
BusinessDayConvention: ["actual" "actual"]
Holidays: NaT
EndMonthRule: [1 1]
StartDate: NaT
Maturity: 15-Sep-2028
Name: "CMS instrument"
Compute Cash Flows
Create the CMSRateTimeTable using cfdates with Settle and Matrurity values.
Time = [Settle;cfdates(Settle,Maturity,CMSLegPeriod)'];
CMSRates = [0.0216 0.0216 0.0231 0.0246 0.0262 0.0279 ...
0.0295 0.0312 0.0327 0.0342 0.0354 0.0366 0.0377]';
CMSRateTimeTable = timetable(Time,CMSRates)CMSRateTimeTable=13×1 timetable
Time CMSRates
___________ ________
15-Sep-2022 0.0216
15-Mar-2023 0.0216
15-Sep-2023 0.0231
15-Mar-2024 0.0246
15-Sep-2024 0.0262
15-Mar-2025 0.0279
15-Sep-2025 0.0295
15-Mar-2026 0.0312
15-Sep-2026 0.0327
15-Mar-2027 0.0342
15-Sep-2027 0.0354
15-Mar-2028 0.0366
15-Sep-2028 0.0377
Use cmsCashflows to compute the cash flows for the CMS instrument.
cmsCashflows(CMSInstrument,Settle,CMSRateTimeTable)
ans=13×2 timetable
Time Var1_RecCF Var1_PayCF
___________ __________ __________
15-Sep-2022 0 0
15-Mar-2023 1.08 -0.5
15-Sep-2023 1.155 -0.5
15-Mar-2024 1.23 -0.5
15-Sep-2024 1.31 -0.5
15-Mar-2025 1.395 -0.5
15-Sep-2025 1.475 -0.5
15-Mar-2026 1.56 -0.5
15-Sep-2026 1.635 -0.5
15-Mar-2027 1.71 -0.5
15-Sep-2027 1.77 -0.5
15-Mar-2028 1.83 -0.5
15-Sep-2028 1.885 -0.5
This example shows how to compute the cash flows for a CMSNote instrument.
Create CMSNote Instrument Object
Use fininstrument to create a CMSNote instrument object.
Settle = datetime(2022,9,15); Maturity = datetime(2028,9,15); Period = 2; CMSNoteInstrument = fininstrument("CMSNote",Maturity=Maturity,CMSReferenceTenor=10,Period=Period,Name="CMSNote instrument")
CMSNoteInstrument =
CMSNote with properties:
CMSReferenceReset: 2
CMSReferenceTenor: 10
Spread: 0
InitialCouponPeriod: 0
InitialCouponRate: 0
Period: 2
Basis: 0
Principal: 100
LatestFloatingRate: NaN
LatestCMSRate: NaN
ResetOffset: 0
DaycountAdjustedCashFlow: 0
ProjectionCurve: [0×0 ratecurve]
BusinessDayConvention: "actual"
Holidays: NaT
EndMonthRule: 1
StartDate: NaT
Maturity: 15-Sep-2028
Name: "CMSNote instrument"
Compute Cash Flows
Create the CMSRateTimeTable using cfdates with Settle and Matrurity values.
Time = [Settle;cfdates(Settle,Maturity,Period)'];
CMSRates = [0.0216 0.0216 0.0231 0.0246 0.0262 0.0279 ...
0.0295 0.0312 0.0327 0.0342 0.0354 0.0366 0.0377]';
CMSRateTimeTable = timetable(Time,CMSRates)CMSRateTimeTable=13×1 timetable
Time CMSRates
___________ ________
15-Sep-2022 0.0216
15-Mar-2023 0.0216
15-Sep-2023 0.0231
15-Mar-2024 0.0246
15-Sep-2024 0.0262
15-Mar-2025 0.0279
15-Sep-2025 0.0295
15-Mar-2026 0.0312
15-Sep-2026 0.0327
15-Mar-2027 0.0342
15-Sep-2027 0.0354
15-Mar-2028 0.0366
15-Sep-2028 0.0377
Use cmsCashflows to compute the cash flows for the CMSNote instrument.
cmsCashflows(CMSNoteInstrument,Settle,CMSRateTimeTable)
ans=13×1 timetable
Time Var1
___________ ______
15-Sep-2022 0
15-Mar-2023 1.08
15-Sep-2023 1.155
15-Mar-2024 1.23
15-Sep-2024 1.31
15-Mar-2025 1.395
15-Sep-2025 1.475
15-Mar-2026 1.56
15-Sep-2026 1.635
15-Mar-2027 1.71
15-Sep-2027 1.77
15-Mar-2028 1.83
15-Sep-2028 101.89
Input Arguments
Settlement date, specified as a scalar datetime value, string, or date character
vector. The Settle date must be before the
Maturity date for the CMS or
CMSNote instrument.
If you use a date character vector or string, the format must be recognizable by
datetime because the
Settle property is stored as a datetime data type.
CMS rate timetable, specified as CMSRateTimeTable and a timetable
with the following columns:
Time—NumCashFlows-by-1cash flow dates in datetime format in the first column of the timetableCMSRates—NumCashFlows-by-1CMS rates in decimals
Data Types: timetable
Output Arguments
Cash flow for underlying asset (InstrumentObject), returned as
a timetable.
Note
To compute outCF for float legs for a CMS instrument, you
must specify a ProjectionCurve name-value argument when creating
the CMS instrument
object.
Version History
Introduced in R2023a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)