主要内容

swapbyzero

价格互换工具,从一组零曲线和价格跨货币互换

描述

例子

价格SwapRate人工智能RecCFRecCFDatesPayCFPayCFDates= swapbyzero(RateSpecLegRate解决成熟为掉期工具定价。你可以使用swapbyzero计算普通掉期、摊销掉期和远期掉期的价格。所有的输入不是标量就是NINST——- - - - - -1向量,除非另有说明。任何日期都可以是日期字符向量。可选参数可以作为空矩阵传递[]

请注意

或者,您可以使用交换反对价格互换工具。有关更多信息,请参见开始使用基于对象的金融工具定价框架的工作流程

例子

价格SwapRate人工智能RecCFRecCFDatesPayCFPayCFDates= swapbyzero(RateSpecLegRate解决成熟名称,值为一个或多个指定的附加选项的掉期工具定价名称,值对参数。你可以使用swapbyzero计算普通掉期、摊销掉期、远期掉期和跨货币掉期的价格。有关普通掉期、摊销掉期和远期掉期的名称-值对的详细信息,请参见香草掉期,摊销掉期,远期掉期

具体来说,您可以使用名称-值对FXRateExchangeInitialPrincipal,ExchangeMaturityPrincipal计算交叉货币互换的价格。有关跨货币互换的名称-值对的详细信息,请参见货币掉期

例子

全部折叠

为利率掉期定价时采用固定的接收区间和浮动的支付区间。每年支付一次,名义本金为100美元。其余参数的值为:

  • 固定腿票面利率:0.06 (6%)

  • 浮动腿价差:20个基点

  • 掉期结算日期:2000年1月1日

  • 掉期到期日期:2003年1月1日

根据上面的信息,设置所需的参数并构建LegRateLegType,LegReset矩阵:

set = datetime(2000,1,1);成熟度= datetime(2003,1,1);基= 0;本金= 100;leggrate = [0.06 20];%[优惠券利率价差]LegType = [1 0];%[固定浮动]LegReset = [1 1];每年支付一次

加载文件deriv.mat,提供ZeroRateSpec这是债券定价所需的利率期限结构。

负载deriv.mat

使用swapbyzero计算掉期的价格。

价格= swapbyzero(ZeroRateSpec, LegRate, Settle, Maturity,...leggreset, Basis, Principal, LegType)
价格= 3.6923

使用前面的数据,计算掉期利率,这是固定leg的票面利率,这样在时间= 0时的掉期价格为零。

LegRate = [NaN 20];[Price, SwapRate] = swapbyzero(ZeroRateSpec, leggrate, Settle,...期限,leggreset, Basis, Principal, LegType)
价格= 0
SwapRate = 0.0466

swapbyzero,如果解决不是在重置日期(和StartDate可以的未指定),则生效日期假定为之前的重置日期解决为了计算应计利息和脏价。在本例中,生效日期为(“15 - 9 - 2009”),该日期是(“08 - 2010年6月- - - - - -”解决日期。

使用swapbyzero的名称-值对参数LegRateLegTypeLatestFloatingRateAdjustCashFlowsBasis,BusinessDayConvention计算的输出价格SwapRate人工智能RecCFRecCFDatesPayCF,PayCFDates

Settle = datetime(2008,6,1);RateSpec = intenvset(“利率”,(。005 .0075 .01 .014 .02 .025 .03]',...startdate可以的解决,“EndDates”,[datetime(2010,12,8),datetime(2011,6,8),datetime(2012,6,8),datetime(2013,6,8),datetime(2015,6,8),datetime(2017,6,8),datetime(2020,6,8)]');成熟度= datetime(2020,9,15);leggrate =[。025年50];LegType = [1 0];%固定/浮动LatestFloatingRate = .005;[价格,SwapRate, AI, RecCF, RecCFDates, PayCF,PayCFDates] =...swapbyzero(RateSpec, LegRate, Settle, Maturity,“LegType”LegType,...“LatestFloatingRate”LatestFloatingRate,“AdjustCashFlowsBasis”,真的,...“BusinessDayConvention”“modifiedfollow”
价格= -7.7485
SwapRate = NaN
Ai = 1.4098
RecCF =1×14-1.7623 2.4863 2.5000 2.5000 2.5000 2.5137 2.4932 2.4932 2.5000 2.5000 2.5137 2.4932
RecCFDates =1×14733560 733666 734031 734396 734761 735129 735493 735857 736222 736588 736953 737320 737684 738049
PayCF =1×14-0.3525 0.4973 1.0006 1.0006 2.0510 2.5944 3.6040 3.8939 4.4152 4.6923 4.9895 4.8400 5.1407 104.9126
PayCFDates =1×14733560 733666 734031 734396 734761 735129 735493 735857 736222 736588 736953 737320 737684 738049

用两条利率曲线为三个掉期定价。首先,定义利率期限结构的数据:

StartDates = datetime(2012,5,1);EndDates = [datetime(2013,5,1);datetime (2014 5 1);datetime (2015 5 1);datetime (2016 5 1)];Rates = [[0.0356;0.041185;0.04489;0.047741],[0.0366;0.04218;0.04589;0.04974]];

创建RateSpec使用intenvset

RateSpec = intenvset(“利率”率,startdate可以的startdate可以,...“EndDates”EndDates,“复合”, 1)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:1光盘:[4x2 double]利率:[4x2 double]结束时间:[4x1 double]开始时间:[4x1 double]结束日期:[4x1 double]开始日期:734990估值日期:734990基础:0 EndMonthRule: 1

看看利率对于两条利率曲线。

RateSpec。利率
ans =4×20.0356 0.0366 0.0412 0.0422 0.0449 0.0459 0.0477 0.0497

定义交换工具。

set = datetime(2012,5,1);成熟度= datetime(2015,5,1);leggrate = [0.06 10];本金= [100;50;100];%三个名义金额

用两条曲线为三个掉期定价。

价格= swapbyzero(利率,leggrate,结算,到期,“校长”校长)
价格=3×23.9688 3.6869 1.9844 1.8434 3.9688 3.6869

利用两条利率曲线为掉期定价。首先,定义两种利率期限结构的数据:

StartDates = datetime(2012,5,1);EndDates = [datetime(2013,5,1);datetime (2014 5 1);datetime (2015 5 1);datetime (2016 5 1)];Rates1 = [0.0356;0.041185;0.04489;0.047741];Rates2 = [0.0366;0.04218;0.04589;0.04974];

创建RateSpec使用intenvset

RateSpecReceiving = intenvset(“利率”Rates1,startdate可以的startdate可以,...“EndDates”EndDates,“复合”1);RateSpecPaying = intenvset (“利率”Rates2,startdate可以的startdate可以,...“EndDates”EndDates,“复合”1);RateSpec = [RateSpecReceiving RateSpecPaying]
RateSpec =1×2包含字段的struct数组:FinObj复合磁盘利率结束时间开始时间结束日期开始日期估值日期基础结束月规则

定义交换工具。

set = datetime(2012,5,1);成熟度= datetime(2015,5,1);leggrate = [0.06 10];本金= [100;50;100];

利用两条曲线为三个掉期定价。

价格= swapbyzero(利率,leggrate,结算,到期,“校长”校长)
价格=3×13.9693 1.9846 3.9693

若要计算远期票面利率互换率,请设置StartDate可以参数设置为未来日期,并在LegRate输入

定义零曲线数据并使用IRDataCurve

ZeroRates = [2.09 2.47 2.71 3.12 3.43 3.85 4.57]'/100;set = datetime(2012,1,1);EndDates = datemnth(确定,12*[1 2 3 5 7 10 20]');复利= 1;零曲线= irdata曲线(“零”、结算、EndDates ZeroRates,“复合”复合)
零曲线=类型:零结算:734869(01- 1- 2012)复利:1基础:0(实际/实际)InterpMethod:线性日期:[7x1 double]数据:[7x1 double]

创建一个RateSpec结构,使用toRateSpec方法。

RateSpec = ZeroCurve.toRateSpec(结束日期)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:1光盘:[7x1 double]利率:[7x1 double]结束时间:[7x1 double]开始时间:[7x1 double]结束日期:[7x1 double]开始日期:734869估值日期:734869基础:0 EndMonthRule: 1

计算远期掉期利率(固定时段的票面利率),使远期掉期价格=0是零。远期互换从一个月(2012年2月1日)开始,10年(2022年2月1日)到期。

StartDate = datetime(2012,2,1);成熟度= datetime(202,2,1);LegRate = [NaN 0];[Price, SwapRate] = swapbyzero(RateSpec, LegRate, Settle, Maturity,...StartDate可以的StartDate可以)
价格= 0
SwapRate = 0.0378

swapbyzero函数生成现金流日期解决而且成熟日期,同时使用成熟日期作为“锚定”日期,以定期间隔向后计数。默认情况下,swapbyzero不区分非营业日和营业日。为了使swapbyzero将非营业日移到下面的营业日,您可以设置可选的名称-值输入参数BusinessDayConvention值为遵循

定义零曲线数据并使用IRDataCurve

ZeroRates = [2.09 2.47 2.71 3.12 3.43 3.85 4.57]'/100;set = datetime(2012,1,5);EndDates = datemnth(确定,12*[1 2 3 5 7 10 20]');复利= 1;零曲线= irdata曲线(“零”、结算、EndDates ZeroRates,“复合”、复合);RateSpec = ZeroCurve.toRateSpec(结束日期);StartDate = datetime(2012,2,5);成熟度= datetime(202,2,5);LegRate = [NaN 0];

演示可选输入BusinessDayConventionswapbyzero首先不使用,然后与可选的名称-值输入参数一起使用BusinessDayConvention.注意,当使用BusinessDayConvention在美国,每天都是工作日。

[Price1,SwapRate1,~,~,RecCFDates1,~,PayCFDates1] = swapbyzero(RateSpec,LegRate,Settle,Maturity,...StartDate可以的StartDate可以);datestr (RecCFDates1)
ans =11x11字符数组“05- 01 -2012”“05- 02 -2013”“05- 02 -2014”“05- 02 -2015”“05- 02 -2016”“05- 02 -2017”“05- 02 -2018”“05- 02 -2019”“05- 02 -2020”“05- 02 -2021”“05- 02 -2022”
isbusday (RecCFDates1)
ans =11x1逻辑阵列1 1 1 1 1 0 1 1 1 1 1
[Price2,SwapRate2,~,~,RecCFDates2,~,PayCFDates2] = swapbyzero(RateSpec,LegRate,Settle,Maturity,...StartDate可以的StartDate可以,“BusinessDayConvention”“跟随”);datestr (RecCFDates2)
ans =12x11字符数组“05- 01 -2012”“06- 02 -2012”“05- 02 -2013”“05- 02 -2014”“05- 02 -2015”“05- 02 -2016”“06- 02 -2017”“05- 02 -2018”“05- 02 -2019”“05- 02 -2020”“05- 02 -2021”“07- 02 -2022”
isbusday (RecCFDates2)
ans =12x1逻辑阵列1 1 1 1 1 1 1 1 1 1 1

为摊销掉期定价主要输入参数来定义摊销计划。

创建RateSpec

比率= 0.035;ValuationDate = datetime(2011,1,1);StartDates = ValuationDate;EndDates = datetime(2017,1,1);复利= 1;RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”、复合);

使用以下数据创建交换工具:

set = datetime(2011,1,1);成熟度= datetime(2017,1,1);leggrate = [0.04 10];

定义交换摊销计划。

Principal ={{datetime(2013,1,1) 100;datetime(2014,1,1) 80;datetime(2015,1,1) 60;

计算摊销掉期的价格。

价格= swapbyzero(利率,leggrate,结算,到期,“校长”校长)
价格= 1.4574

为远期掉期定价StartDate可以输入参数定义交换的未来开始日期。

创建RateSpec

费率= 0.0325;ValuationDate = datetime(2012,1,1);StartDates = ValuationDate;EndDates = datetime(2018,1,1);复利= 1;RateSpec = intenvset(“ValuationDate”ValuationDate,startdate可以的startdate可以,...“EndDates”EndDates,“利率”率,“复合”复合)
RateSpec =带字段的结构:FinObj: 'RateSpec'复合:1光盘:0.8254利率:0.0325 EndTimes: 6 StartTimes: 0 EndDates: 737061 StartDates: 734869 ValuationDate: 734869基础:0 EndMonthRule: 1

计算从一年后(2013年1月1日)开始、3年后到期的远期掉期价格,远期掉期利率为4.27%。

set = datetime(2012,1,1);StartDate = datetime(2013,1,1);成熟度= datetime(2016,1,1);LegRate = [0.0427 10];价格= swapbyzero(利率,leggrate,结算,到期,StartDate可以的StartDate可以)
价格= 2.5083

使用前面的数据,计算远期掉期利率,即固定区间的票面利率,使远期掉期价格在时刻= 0时为零。

LegRate = [NaN 10];[Price, SwapRate] = swapbyzero(RateSpec, LegRate, Settle, Maturity,...StartDate可以的StartDate可以)
价格= 0
SwapRate = 0.0335

如果解决不是浮动利率票据的重置日期,swapbyzero尝试获取之前的最新浮动汇率解决RateSpec或者是LatestFloatingRate参数。此速率的重置日期超出的范围时RateSpec(和LatestFloatingRate未指定),swapbyzero无法获取该日期的速率并产生错误。方法的使用LatestFloatingRate输入参数,避免错误。

创建交换仪器时的错误条件StartDate可以不能从RateSpec

set = datetime(2000,1,1);成熟度= datetime(2003,12,1);基= 0;本金= 100;leggrate = [0.06 20];%[优惠券利率价差]LegType = [1 0];%[固定浮动]LegReset = [1 1];每年支付一次负载deriv.mat;价格= swapbyzero(ZeroRateSpec,LegRate,Settle,Maturity,...“LegReset”LegReset,“基础”的基础上,“校长”校长,...“LegType”LegType)
使用floatbyzero错误(第256行):无法从RateSpec中获得仪器开始日期的速率。它的重置日期(01-Dec-1999)超出了RateSpec中包含的日期范围。该利率用于计算工具开始日期的现金流。考虑使用'LatestFloatingRate'输入参数指定这个速率。swapbyzero错误(第289行)[FloatFullPrice, FloatPrice,FloatCF,FloatCFDates] = floatbyzero(FloatRateSpec, Spreads, Settle,…

这里是速率的重置日期解决01 - 12月- 1999的估值日期早于ZeroRateSpec01 - 1月- 2000).方法指定互换工具开始日期的利率,可以避免此错误LatestFloatingRate输入参数。

定义LatestFloatingRate计算浮动利率价格。

价格= swapbyzero(ZeroRateSpec,LegRate,Settle,Maturity,...“LegReset”LegReset,“基础”的基础上,“校长”校长,...“LegType”LegType,“LatestFloatingRate”, 0.03)
价格= 4.7594

定义OIS和Libor利率。

Settle = datetime(2013,5,15);CurveDates = daysadd(360*[1/12 2/12 3/12 6/12 12 3 4 5 7 10],1);OISRates =[。0018 .0019 .0021 .0023 .0031 .006 .011 .017 .021 .026 .03]'; LiborRates = [.0045 .0047 .005 .0055 .0075 .011 .016 .022 .026 .030 .0348]';

画出对偶曲线。

人物,情节(CurveDates OISRates,“r”);LiborRates;情节(CurveDates,“b”日期标记图例({“OIS曲线”“伦敦银行间拆放款利率曲线”})

图中包含一个轴对象。axis对象包含2个line类型的对象。这些标的分别代表OIS曲线、Libor曲线。

创建关联的RateSpecOIS和Libor曲线。

OISCurve = intenvset(“利率”OISRates,StartDate可以的解决,“EndDates”, CurveDates);LiborCurve = intenvset(“利率”LiborRates,StartDate可以的解决,“EndDates”, CurveDates);

定义交换。

成熟度= datetime(2018,5,15);%五年期掉期FloatSpread = 0;FixedRate = .025;leggrate = [FixedRate FloatSpread];

计算掉期工具的价格。的LiborCurve期限结构将用于产生浮动部分的现金流。的OISCurve期限结构将用于贴现现金流。

价格= swapbyzero(OISCurve, legate, Settle,...成熟,“ProjectionCurve”LiborCurve)
价格= -0.3697

比较期限结构时的结果OISCurve既用于贴现,也用于产生浮动部分的现金流。

PriceSwap = swapby0 (OISCurve, leggrate, Settle, Maturity)
PriceSwap = 2.0517

对现有的交叉货币掉期进行定价,该货币掉期接受固定利率的日元,并以每年的频率支付固定利率的美元。

set = datetime(2015,8,15);成熟度= datetime(2018,15);重置= 1;LegType = [1 1];%惯性r_USD = .09;r_JPY = .04;FixedRate_USD = .08;FixedRate_JPY = .05;Principal_USD = 10000000;Principal_JPY = 1200000000;S = 1/110;RateSpec_USD = intenvset(StartDate可以的解决,“EndDate”成熟,“利率”r_USD,“复合”1);RateSpec_JPY = intenvset(StartDate可以的解决,“EndDate”成熟,“利率”r_JPY,“复合”1);价格= swapbyzero([RateSpec_JPY rate], [FixedRate_JPY FixedRate_USD],...解决,成熟,“校长”, (Principal_JPY Principal_USD),“FXRate”, [1],“LegType”LegType)
价格= 1.5430e+06

为新掉期定价,您支付欧元浮动,并获得美元浮动。

Settle = datetime(2015,12,22);成熟度= datetime(2018,15);LegRate = [0 -50/10000];LegType = [0 0];%浮动LegReset = [4 4];FXRate = 1.1;名义= [10000000 8000000];USD_Dates = datemnth(确定,[1 3 6 12*[1 2 3 5 7 10 20 30]]]');USD_Zero = [0.03 0.06 0.08 0.13 0.36 0.76 1.63 2.29 2.88 3.64 3.89]'/100;Curve_USD = intenvset(StartDate可以的解决,“EndDates”USD_Dates,“利率”, USD_Zero);EUR_Dates = datemnth(确定,[3 6 12*[1 2 3 5 7 10 20 30]]]');EUR_Zero = [0.017 0.033 0.088 .27 .512 1.056 1.573 2.183 2.898 2.797]'/100;Curve_EUR = intenvset(StartDate可以的解决,“EndDates”EUR_Dates,“利率”, EUR_Zero);价格= swapbyzero([Curve_USD Curve_EUR],...优雅,稳重,成熟,“LegType”LegType,“LegReset”LegReset,“校长”名义上,...“FXRate”[1 FXRate],“ExchangeInitialPrincipal”假)
价格= 1.2002e+06

输入参数

全部折叠

利率结构,指定使用intenvset要创建RateSpec

RateSpec也可以是1——- - - - - -2输入变量RateSpecS和第二个RateSpec结构,其中包含一条或多条付款段的贴现曲线。如果只有一个RateSpec结构,然后是thisRateSpec用于折现两条腿。

数据类型:结构体

腿速率,指定为aNINST——- - - - - -2矩阵,其中每行定义为以下之一:

  • (CouponRate传播)(fixed-float)

  • (CouponRate传播)(float-fixed)

  • [CouponRate CouponRate](惯性)

  • (传播扩散)(float-float)

CouponRate是十进制的年利率。传播是基准利率上的基点数。第一列表示接收部分,而第二列表示支付部分。

数据类型:

结算日期,指定为标量或NINST——- - - - - -1向量,使用日期时间数组、字符串数组或具有相同值的日期字符向量,该值表示每个交换的结算日期。解决必须早于成熟

要支持金宝app现有代码,swapbyzero也接受序列号作为输入,但不建议使用。

到期日,指定为NINST——- - - - - -1向量,使用日期时间数组、字符串数组或日期字符向量表示每次交换的到期日期。

要支持金宝app现有代码,swapbyzero也接受序列号作为输入,但不建议使用。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:[Price,SwapRate,AI,RecCF,RecCFDates,PayCF,PayCFDates] = swapbyzero(RateSpec, leggrate,Settle,
成熟,LegType LegType, LatestFloatingRate, LatestFloatingRate, AdjustCashFlowsBasis,真的,
“BusinessDayConvention”、“modifiedfollow”)

香草掉期,摊销掉期,远期掉期

全部折叠

每年每次交换的重置频率,由逗号分隔的对组成“LegReset”和一个NINST——- - - - - -2向量。

数据类型:

表示每个分支的基础的日计数基础,指定为由逗号分隔的对组成“基础”和一个NINST——- - - - - -1数组(或NINST——- - - - - -2如果基础每条腿都是不同的)。

  • 0 = actual/实际的

  • 1 = 30/360 (sia)

  • 2 =实际/360

  • 3 =实际/365

  • 4 = 30/360 (psa)

  • 5 = 30/360 (isda)

  • 6 = 30/360(欧洲)

  • 7 =实际/365(日语)

  • 8 =实际/实际(ICMA)

  • 9 =实际/360 (ICMA)

  • 10 =实际/365 (ICMA)

  • 11 = 30/360e (icma)

  • 12 =实际/365 (ISDA)

  • 13 =总线/252

有关更多信息,请参见基础

数据类型:

名义本金金额或本金金额表,以逗号分隔的对表示,由“校长”和一个向量或单元格数组。

主要接受一个NINST——- - - - - -1向量或NINST——- - - - - -1单元格数组(或NINST——- - - - - -2如果主要名义本金金额或本金价值表的不同部分)。对于调度,单元格数组的每个元素都是aNumDates——- - - - - -2数组,其中第一列是日期,第二列是其关联的名义主值。日期表示主体值有效的最后一天。

数据类型:细胞|

分支类型,指定为逗号分隔的对,由“LegType”和一个NINST——- - - - - -2带值矩阵[1](惯性),[1 0](fixed-float),[0 1](float-fixed),或[0 0](float-float)。每一行代表一种乐器。每一列表示对应的支脚是否固定(1)或浮动(0).这个矩阵定义了输入值的解释LegRateLegType允许[1](惯性),[1 0](fixed-float),[0 1](float-fixed),或[0 0](float-float)互换

数据类型:

月末规则标志,用于生成日期成熟一个月的月底日期是否只有30天或更少,指定为逗号分隔的对,由“EndMonthRule”和一个非负整数[01用…NINST——- - - - - -1(或NINST——- - - - - -2如果EndMonthRule每条腿都是不同的)。

  • 0= Ignore规则,这意味着付款日期总是同一个数字日。

  • 1=设置规则,这意味着付款日期总是每月的最后一天。

数据类型:逻辑

标志,以根据实际期间天数计数调整现金流,指定为逗号分隔的对,由“AdjustCashFlowsBasis”和一个NINST——- - - - - -1(或NINST——- - - - - -2如果AdjustCashFlowsBasis是不同的每条腿)的逻辑值0(虚假的)或1(真正的)。

数据类型:逻辑

工作日约定,指定为逗号分隔的对,由“BusinessDayConvention”还有一个字符向量aN——- - - - - -1(或NINST——- - - - - -2如果BusinessDayConvention每个分支都不同)工作日惯例的字符向量单元格数组。营业日惯例的选择决定了如何对待非营业日。非营业日定义为周末加上任何其他不营业的日期(如法定假日)。值:

  • 实际-非工作日被有效忽略。非营业日的现金流假定在实际日期进行分配。

  • 遵循—非营业日的现金流假设在下一个营业日进行分配。

  • modifiedfollow—非营业日的现金流假设在下一个营业日进行分配。但是,如果下一个营业日在不同的月份,则采用前一个营业日。

  • 以前的-非营业日的现金流假设在前一个营业日进行分配。

  • modifiedprevious-非营业日的现金流假设在前一个营业日进行分配。但是,如果前一个营业日在不同的月份,则采用下一个营业日。

数据类型:字符|细胞

用于计算营业日的假日,指定为逗号分隔的对,由“假期”和MATLAB数据使用NHolidays——- - - - - -1向量。

数据类型:datetime

交换实际开始的日期,指定为逗号分隔的对,由StartDate可以的和一个NINST——- - - - - -1字符向量的向量或字符向量的单元格数组。

要支持金宝app现有代码,swapbyzero也接受序列号作为输入,但不建议使用。

下一次浮动付款的利率,设置在上一次重置日期,指定为逗号分隔的对,由“LatestFloatingRate”和一个标量数值。

LatestFloatingRate接受在上次重置日期设置的下一次浮动付款的利率。LatestFloatingRate是一个NINST——- - - - - -1(或NINST——- - - - - -2如果LatestFloatingRate每条腿都是不同的)。

数据类型:

用于产生掉期浮动部分现金流的利率曲线,由逗号分隔的对组成“ProjectionCurve”和一个RateSpec

如果指定固定浮动或浮动固定交换,则ProjectionCurve利率曲线用于产生掉期浮动部分的现金流。此结构必须使用intenvset

如果指定固定-固定或浮动-浮动交换,则ProjectionCurveNINST——- - - - - -2向量,因为每个浮动腿可能有不同的投影曲线。

数据类型:结构体

货币掉期

全部折叠

应用于现金流的外汇(FX)汇率,由逗号分隔的对组成“FXRate”和一个NINST——- - - - - -2双精度数组。由于外汇汇率既可以应用于支付方,也可以应用于接收方,因此输入数组中有两列,您必须指定哪个部分使用外汇。

数据类型:

标志表示if为初始值主要,指定为逗号分隔的对,由“ExchangeInitialPrincipal”和一个NINST——- - - - - -1逻辑数组。

数据类型:逻辑

标记,表示是否主要成熟,指定为逗号分隔的对,由“ExchangeMaturityPrincipal”和一个NINST——- - - - - -1逻辑数组。虽然在实践中,大多数单一货币掉期在到期时不交换本金,但为了保持向后兼容性,默认情况下是这样。

数据类型:逻辑

输出参数

全部折叠

互换价格,作为工具数量返回(NINST),按曲线数目计算(NUMCURVES)矩阵。每一列都源于一条零曲线。价格产出是肮脏的价格。若要计算净价,请减去应计利息(人工智能)从肮脏的价格。

适用于固定支腿的费率,作为NINST——- - - - - -NUMCURVES适用于固定支腿的利率矩阵,使得掉期在时间0时的值为零。这一利率用于计算掉期价格时指定的固定部分的利率LegRate.的SwapRate输出用对于那些乐器CouponRate未设置为

应计利息,作为利息返还NINST——- - - - - -NUMCURVES矩阵。

接收部分的现金流,作为报表返回NINST——- - - - - -NUMCURVES矩阵。

请注意

属性中指定的曲线多于一条RateSpec输入,然后是第一个NCURVES行对应第一个交换,第二个交换NCURVES行对应第二次交换,依此类推。

付款日期的接收腿,返回作为NINST——- - - - - -NUMCURVES矩阵。

支付部分的现金流,作为回报NINST——- - - - - -NUMCURVES矩阵。

付款段的付款日期,作为NINST——- - - - - -NUMCURVES矩阵。

更多关于

全部折叠

摊还期

在摊销掉期中,名义本金定期减少,因为它与本金余额下降(摊销)的基础金融工具相关联,例如抵押贷款。

远期互换

在未来某一固定日期订立利率掉期安排的协议。

货币互换

掉期的支付部分以不同的货币计价。

跨货币掉期与标准掉期的一个不同之处在于,本金的交换可能发生在掉期的开始和/或结束。初始本金的交换只会在开始时对跨货币掉期定价时起作用(换句话说,对现有的跨货币掉期定价将在现金流发生后发生)。此外,这些本金交换通常不会影响掉期的价值(因为两个部分的本金价值是根据货币汇率选择的),但会影响每个部分的现金流。

参考文献

[1]赫尔,J。期权、期货和其他衍生品第四版。普伦蒂斯·霍尔,2000年。

版本历史

R2006a之前介绍

全部展开