Ценовой инструмент подкачки от набора кривых нулевой ширины и ценовых валютных свопов
[Price,SwapRate,AI,RecCF,RecCFDates,PayCF,PayCFDates]
= swapbyzero(RateSpec,LegRate,Settle,Maturity)
[Price,SwapRate,AI,RecCF,RecCFDates,PayCF,PayCFDates]
= swapbyzero(RateSpec,LegRate,Settle,Maturity,Name,Value)
[
оценивает инструмент подкачки. Можно использовать Price
,SwapRate
,AI
,RecCF
,RecCFDates
,PayCF
,PayCFDates
]
= swapbyzero(RateSpec
,LegRate
,Settle
,Maturity
)swapbyzero
, чтобы вычислить цены подкачек ванили, амортизируя подкачки и прямые подкачки. Все входные параметры являются или скалярами или NINST
-by-1
векторы, если в противном случае не задано. Любая дата может быть последовательным номером даты или вектором символов даты. Дополнительный аргумент может быть передан как пустой матричный []
.
[
оценивает инструмент подкачки с дополнительными опциями, заданными одним или несколькими аргументами пары Price
,SwapRate
,AI
,RecCF
,RecCFDates
,PayCF
,PayCFDates
]
= swapbyzero(RateSpec
,LegRate
,Settle
,Maturity
,Name,Value
)Name,Value
. Можно использовать swapbyzero
, чтобы вычислить цены подкачек ванили, амортизируя подкачки, передать подкачки и валютные свопы. Для получения дополнительной информации о парах "имя-значение" для подкачек ванили, амортизируя подкачки и прямые подкачки, смотрите Подкачки Ванили, Амортизируя Подкачки, Прямые Подкачки.
А именно, можно использовать пары "имя-значение" для FXRate
, ExchangeInitialPrincipal
и ExchangeMaturityPrincipal
, чтобы вычислить цену за валютные свопы. Для получения дополнительной информации о парах "имя-значение" для валютных свопов смотрите Валютные свопы.
Оцените подкачку процентной ставки с фиксированным участком получения и плавающим участком оплаты. Платежи осуществлены один раз в год, и отвлеченная основная сумма составляет 100$. Значения для остающихся аргументов:
Купонная ставка для фиксированного участка: 0.06 (6%)
Распространитесь для плавания участка: 20 пунктов
Расчетный день подкачки: 01 января 2000
Дата погашения подкачки: 01 января 2003
На основе информации выше, устанавливает обязательные аргументы и создают LegRate
, LegType
и матрицы LegReset
:
Settle = '01-Jan-2000'; Maturity = '01-Jan-2003'; Basis = 0; Principal = 100; LegRate = [0.06 20]; % [CouponRate Spread] LegType = [1 0]; % [Fixed Float] LegReset = [1 1]; % Payments once per year
Загрузите файл deriv.mat
, который обеспечивает ZeroRateSpec
, структура термина процентной ставки должна была оценить связь.
load deriv.mat;
Используйте swapbyzero
, чтобы вычислить цену подкачки.
Price = swapbyzero(ZeroRateSpec, LegRate, Settle, Maturity,... LegReset, Basis, Principal, LegType)
Price = 3.6923
Используя предыдущие данные, вычислите уровень подкачки, который является купонной ставкой для фиксированного участка, такого, что цена подкачки во время = 0 является нулем.
LegRate = [NaN 20];
[Price, SwapRate] = swapbyzero(ZeroRateSpec, LegRate, Settle,...
Maturity, LegReset, Basis, Principal, LegType)
Price = 0
SwapRate = 0.0466
В swapbyzero
, если Settle
не находится в дату сброса (и 'StartDate'
не задан), дата вступления в силу принята, чтобы быть предыдущей датой сброса перед Settle
в порядке вычислить начисленные проценты и грязную цену. В этом примере дата вступления в силу ('15-Sep-2009'
), который является предыдущей датой сброса перед ('08-Jun-2010'
) дата Settle
.
Используйте swapbyzero
с аргументами пары "имя-значение" для LegRate
, LegType
, LatestFloatingRate
, AdjustCashFlowsBasis
и BusinessDayConvention
, чтобы вычислить вывод для Price
, SwapRate
, AI
, RecCF
, RecCFDates
, PayCF
и PayCFDates
:
Settle = datenum('08-Jun-2010'); RateSpec = intenvset('Rates', [.005 .0075 .01 .014 .02 .025 .03]',... 'StartDates',Settle, 'EndDates',{'08-Dec-2010','08-Jun-2011',... '08-Jun-2012','08-Jun-2013','08-Jun-2015','08-Jun-2017','08-Jun-2020'}'); Maturity = datenum('15-Sep-2020'); LegRate = [.025 50]; LegType = [1 0]; % fixed/floating LatestFloatingRate = .005; [Price, SwapRate, AI, RecCF, RecCFDates, PayCF,PayCFDates] = ... swapbyzero(RateSpec, LegRate, Settle, Maturity,'LegType',LegType,... 'LatestFloatingRate',LatestFloatingRate,'AdjustCashFlowsBasis',true,... 'BusinessDayConvention','modifiedfollow')
Price = -6.7259
SwapRate = NaN
AI = 1.4575
RecCF = 1×12
-1.8219 2.5000 2.5000 2.5137 2.4932 2.4932 2.5000 2.5000 2.5000 2.5137 2.4932 102.4932
RecCFDates = 1×12
734297 734396 734761 735129 735493 735857 736222 736588 736953 737320 737684 738049
PayCF = 1×12
-0.3644 0.5000 1.4048 1.9961 2.8379 3.2760 3.8218 4.1733 4.5164 4.4920 4.7950 104.6608
PayCFDates = 1×12
734297 734396 734761 735129 735493 735857 736222 736588 736953 737320 737684 738049
Цена три подкачки с помощью двух кривых процентной ставки. Во-первых, задайте данные для структуры термина процентной ставки:
StartDates = '01-May-2012'; EndDates = {'01-May-2013'; '01-May-2014';'01-May-2015';'01-May-2016'}; Rates = [[0.0356;0.041185;0.04489;0.047741],[0.0366;0.04218;0.04589;0.04974]];
Создайте RateSpec
с помощью intenvset
.
RateSpec = intenvset('Rates', Rates, 'StartDates',StartDates,... 'EndDates', EndDates, 'Compounding', 1)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [4x2 double]
Rates: [4x2 double]
EndTimes: [4x1 double]
StartTimes: [4x1 double]
EndDates: [4x1 double]
StartDates: 734990
ValuationDate: 734990
Basis: 0
EndMonthRule: 1
Посмотрите на Rates
для двух кривых процентной ставки.
RateSpec.Rates
ans = 4×2
0.0356 0.0366
0.0412 0.0422
0.0449 0.0459
0.0477 0.0497
Задайте инструменты подкачки.
Settle = '01-May-2012'; Maturity = '01-May-2015'; LegRate = [0.06 10]; Principal = [100;50;100]; % Three notional amounts
Цена три подкачки с помощью двух кривых.
Price = swapbyzero(RateSpec, LegRate, Settle, Maturity, 'Principal', Principal)
Price = 3×2
3.9688 3.6869
1.9844 1.8434
3.9688 3.6869
RateSpec
Оцените подкачку с помощью двух кривых процентной ставки. Во-первых, задайте данные для двух структур термина процентной ставки:
StartDates = '01-May-2012'; EndDates = {'01-May-2013'; '01-May-2014';'01-May-2015';'01-May-2016'}; Rates1 = [0.0356;0.041185;0.04489;0.047741]; Rates2 = [0.0366;0.04218;0.04589;0.04974];
Создайте RateSpec
с помощью intenvset
.
RateSpecReceiving = intenvset('Rates', Rates1, 'StartDates',StartDates,... 'EndDates', EndDates, 'Compounding', 1); RateSpecPaying= intenvset('Rates', Rates2, 'StartDates',StartDates,... 'EndDates', EndDates, 'Compounding', 1); RateSpec=[RateSpecReceiving RateSpecPaying]
RateSpec = 1x2 struct array with fields:
FinObj
Compounding
Disc
Rates
EndTimes
StartTimes
EndDates
StartDates
ValuationDate
Basis
EndMonthRule
Задайте инструменты подкачки.
Settle = '01-May-2012'; Maturity = '01-May-2015'; LegRate = [0.06 10]; Principal = [100;50;100];
Цена три подкачки с помощью двух кривых.
Price = swapbyzero(RateSpec, LegRate, Settle, Maturity, 'Principal', Principal)
Price = 3×1
3.9693
1.9846
3.9693
Чтобы вычислить прямой уровень подкачки паритета, установите параметр StartDate
на будущую дату и установите фиксированную купонную ставку во входе LegRate
к NaN
.
Задайте данные о кривой нулевой ширины и создайте кривую нулевой ширины с помощью IRDataCurve
.
ZeroRates = [2.09 2.47 2.71 3.12 3.43 3.85 4.57]'/100; Settle = datenum('1-Jan-2012'); EndDates = datemnth(Settle,12*[1 2 3 5 7 10 20]'); Compounding = 1; ZeroCurve = IRDataCurve('Zero',Settle,EndDates,ZeroRates,'Compounding',Compounding)
ZeroCurve = Type: Zero Settle: 734869 (01-Jan-2012) Compounding: 1 Basis: 0 (actual/actual) InterpMethod: linear Dates: [7x1 double] Data: [7x1 double]
Создайте структуру RateSpec
с помощью toRateSpec
метода.
RateSpec = ZeroCurve.toRateSpec(EndDates)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [7x1 double]
Rates: [7x1 double]
EndTimes: [7x1 double]
StartTimes: [7x1 double]
EndDates: [7x1 double]
StartDates: 734869
ValuationDate: 734869
Basis: 0
EndMonthRule: 1
Вычислите прямой уровень подкачки (купонная ставка для фиксированного участка), такой, что прямая цена подкачки во время = 0
является нулем. Прямая подкачка запускается через месяц (1 февраля 2012) и назревает через 10 лет (1 февраля 2022).
StartDate = datenum('1-Feb-2012'); Maturity = datenum('1-Feb-2022'); LegRate = [NaN 0]; [Price, SwapRate] = swapbyzero(RateSpec, LegRate, Settle, Maturity,... 'StartDate', StartDate)
Price = 0
SwapRate = 0.0378
BusinessDayConvention
Функция swapbyzero
генерирует даты потока наличности на основе Settle
и даты Maturity
при использовании даты Maturity
в качестве даты "привязки", с которой можно считать в обратном направлении в равных интервалах. По умолчанию swapbyzero
не отличает нерабочие дни с рабочих дней. Чтобы заставить swapbyzero
переместить нерабочие дни в следующие рабочие дни, вы можете, можно установить дополнительный входной параметр значения имени BusinessDayConvention
со значением follow
.
Задайте данные о кривой нулевой ширины и создайте кривую нулевой ширины с помощью IRDataCurve
.
ZeroRates = [2.09 2.47 2.71 3.12 3.43 3.85 4.57]'/100; Settle = datenum('5-Jan-2012'); EndDates = datemnth(Settle,12*[1 2 3 5 7 10 20]'); Compounding = 1; ZeroCurve = IRDataCurve('Zero',Settle,EndDates,ZeroRates,'Compounding',Compounding); RateSpec = ZeroCurve.toRateSpec(EndDates); StartDate = datenum('5-Feb-2012'); Maturity = datenum('5-Feb-2022'); LegRate = [NaN 0];
Чтобы продемонстрировать дополнительный вход BusinessDayConvention
, swapbyzero
сначала используется без и затем с дополнительным входным параметром значения имени BusinessDayConvention
. Заметьте, что при использовании BusinessDayConvention
, все дни являются рабочими днями.
[Price1,SwapRate1,~,~,RecCFDates1,~,PayCFDates1] = swapbyzero(RateSpec,LegRate,Settle,Maturity,... 'StartDate',StartDate); datestr(RecCFDates1)
ans = 11x11 char array
'05-Jan-2012'
'05-Feb-2013'
'05-Feb-2014'
'05-Feb-2015'
'05-Feb-2016'
'05-Feb-2017'
'05-Feb-2018'
'05-Feb-2019'
'05-Feb-2020'
'05-Feb-2021'
'05-Feb-2022'
isbusday(RecCFDates1)
ans = 11x1 logical array
1
1
1
1
1
0
1
1
1
1
⋮
[Price2,SwapRate2,~,~,RecCFDates2,~,PayCFDates2] = swapbyzero(RateSpec,LegRate,Settle,Maturity,... 'StartDate',StartDate,'BusinessDayConvention','follow'); datestr(RecCFDates2)
ans = 12x11 char array
'05-Jan-2012'
'06-Feb-2012'
'05-Feb-2013'
'05-Feb-2014'
'05-Feb-2015'
'05-Feb-2016'
'06-Feb-2017'
'05-Feb-2018'
'05-Feb-2019'
'05-Feb-2020'
'05-Feb-2021'
'07-Feb-2022'
isbusday(RecCFDates2)
ans = 12x1 logical array
1
1
1
1
1
1
1
1
1
1
⋮
Оцените подкачку амортизации с помощью входного параметра Principal
, чтобы задать расписание амортизации.
Создайте RateSpec
.
Rates = 0.035; ValuationDate = '1-Jan-2011'; StartDates = ValuationDate; EndDates = '1-Jan-2017'; Compounding = 1; RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding);
Создайте инструмент подкачки с помощью следующих данных:
Settle ='1-Jan-2011'; Maturity = '1-Jan-2017'; LegRate = [0.04 10];
Задайте расписание амортизации подкачки.
Principal ={{'1-Jan-2013' 100;'1-Jan-2014' 80;'1-Jan-2015' 60;'1-Jan-2016' 40; '1-Jan-2017' 20}};
Вычислите цену подкачки амортизации.
Price = swapbyzero(RateSpec, LegRate, Settle, Maturity, 'Principal' , Principal)
Price = 1.4574
Оцените прямую подкачку с помощью входного параметра StartDate
, чтобы задать будущий срок начала работы подкачки.
Создайте RateSpec
.
Rates = 0.0325; ValuationDate = '1-Jan-2012'; StartDates = ValuationDate; EndDates = '1-Jan-2018'; Compounding = 1; RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: 0.8254
Rates: 0.0325
EndTimes: 6
StartTimes: 0
EndDates: 737061
StartDates: 734869
ValuationDate: 734869
Basis: 0
EndMonthRule: 1
Вычислите цену прямой подкачки, которая запускается через год (1 января 2013) и назревает за три года с прямым уровнем подкачки 4,27%.
Settle ='1-Jan-2012'; StartDate = '1-Jan-2013'; Maturity = '1-Jan-2016'; LegRate = [0.0427 10]; Price = swapbyzero(RateSpec, LegRate, Settle, Maturity, 'StartDate' , StartDate)
Price = 2.5083
Используя предыдущие данные, вычислите прямой уровень подкачки, купонную ставку для фиксированного участка, такого, что прямая цена подкачки во время = 0 является нулем.
LegRate = [NaN 10]; [Price, SwapRate] = swapbyzero(RateSpec, LegRate, Settle, Maturity,... 'StartDate' , StartDate)
Price = 0
SwapRate = 0.0335
RateSpec
Если Settle
не находится в дату сброса долгового обязательства с плавающей ставкой, swapbyzero
пытается получить последний плавающий курс перед Settle
от RateSpec
или параметра LatestFloatingRate
. Когда дата сброса этого уровня вне области значений RateSpec
(и LatestFloatingRate
не задан), swapbyzero
не удается получить уровень для той даты и генерирует ошибку. Этот пример показывает, как использовать параметр входа LatestFloatingRate
, чтобы избежать ошибки.
Создайте состояние ошибки, когда инструмент подкачки StartDate
не сможет быть определен от RateSpec
.
Settle = '01-Jan-2000'; Maturity = '01-Dec-2003'; Basis = 0; Principal = 100; LegRate = [0.06 20]; % [CouponRate Spread] LegType = [1 0]; % [Fixed Float] LegReset = [1 1]; % Payments once per year load deriv.mat; Price = swapbyzero(ZeroRateSpec,LegRate,Settle,Maturity,... 'LegReset',LegReset,'Basis',Basis,'Principal',Principal, ... 'LegType',LegType)
Error using floatbyzero (line 256) The rate at the instrument starting date cannot be obtained from RateSpec. Its reset date (01-Dec-1999) is out of the range of dates contained in RateSpec. This rate is required to calculate cash flows at the instrument starting date. Consider specifying this rate with the 'LatestFloatingRate' input parameter. Error in swapbyzero (line 289) [FloatFullPrice, FloatPrice,FloatCF,FloatCFDates] = floatbyzero(FloatRateSpec, Spreads, Settle,...
Здесь, датой сброса уровня в Settle
был 01-Dec-1999
, который был ранее, чем дата оценки ZeroRateSpec
(01-Jan-2000
). Этой ошибки можно избежать путем определения уровня в сроке начала работы инструмента подкачки с помощью параметра входа LatestFloatingRate
.
Задайте LatestFloatingRate
и вычислите цену с плавающей ставкой.
Price = swapbyzero(ZeroRateSpec,LegRate,Settle,Maturity,... 'LegReset',LegReset,'Basis',Basis,'Principal',Principal, ... 'LegType',LegType,'LatestFloatingRate',0.03)
Price = 4.7594
Задайте уровни LIBOR и OIS.
Settle = datenum('15-Mar-2013');
CurveDates = daysadd(Settle,360*[1/12 2/12 3/12 6/12 1 2 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]';
Постройте двойные кривые.
figure,plot(CurveDates,OISRates,'r');hold on;plot(CurveDates,LiborRates,'b') datetick legend({'OIS Curve', 'Libor Curve'})
Создайте связанный RateSpec
для кривых LIBOR и OIS.
OISCurve = intenvset('Rates',OISRates,'StartDate',Settle,'EndDates',CurveDates); LiborCurve = intenvset('Rates',LiborRates,'StartDate',Settle,'EndDates',CurveDates);
Задайте подкачку.
Maturity = datenum('15-Mar-2018'); % Five year swap FloatSpread = 0; FixedRate = .025; LegRate = [FixedRate FloatSpread];
Вычислите цену инструмента подкачки. Структура термина LiborCurve
будет использоваться, чтобы сгенерировать потоки наличности плавающего участка. Структура термина OISCurve
будет использоваться для дисконтирования потоков наличности.
Price = swapbyzero(OISCurve, LegRate, Settle,... Maturity,'ProjectionCurve',LiborCurve)
Price = -0.3697
Сравните результаты, когда структура термина OISCurve
будет использоваться и для дисконтирования и также сгенерировать потоки наличности плавающего участка.
PriceSwap = swapbyzero(OISCurve, LegRate, Settle, Maturity)
PriceSwap = 2.0517
Оцените существующий валютный своп, который получает фиксированную процентную ставку JPY и платит фиксированную процентную ставку доллара США на ежегодной частоте.
Settle = datenum('15-Aug-2015'); Maturity = datenum('15-Aug-2018'); Reset = 1; LegType = [1 1]; % Fixed-Fixed 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',Settle,'EndDate', Maturity,'Rates',r_USD,'Compounding',-1); RateSpec_JPY = intenvset('StartDate',Settle,'EndDate', Maturity,'Rates', r_JPY,'Compounding',-1); Price = swapbyzero([RateSpec_JPY RateSpec_USD], [FixedRate_JPY FixedRate_USD],... Settle, Maturity,'Principal',[Principal_JPY Principal_USD],'FXRate',[S 1], 'LegType',LegType)
Price = 1.5430e+06
Оцените новую подкачку, где вы платите, евро пускают в ход и получают долларовое плавание.
Settle = datenum('22-Dec-2015'); Maturity = datenum('15-Aug-2018'); LegRate = [0 -50/10000]; LegType = [0 0]; % Float Float LegReset = [4 4]; FXRate = 1.1; Notional = [10000000 8000000]; USD_Dates = datemnth(Settle,[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',Settle,'EndDates',USD_Dates,'Rates',USD_Zero); EUR_Dates = datemnth(Settle,[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',Settle,'EndDates',EUR_Dates,'Rates',EUR_Zero); Price = swapbyzero([Curve_USD Curve_EUR], ... LegRate, Settle, Maturity,'LegType',LegType,'LegReset',LegReset,'Principal',Notional,... 'FXRate',[1 FXRate],'ExchangeInitialPrincipal',false)
Price = 1.2002e+06
RateSpec
— Структура процентной ставкиСтруктура процентной ставки, заданное использование intenvset
, чтобы создать RateSpec
.
RateSpec
может также быть 1
-by-2
входная переменная RateSpec
s со второй структурой RateSpec
, содержащей одну или несколько дисконтных кривых для участка оплаты. Если только одна структура RateSpec
задана, то этот RateSpec
используется, чтобы обесценить оба участка.
Типы данных: struct
LegRate
— Уровень участкаУровень участка, заданный как NINST
-by-2
матрица, с каждой строкой, заданной как одно из следующего:
[CouponRate Spread]
(фиксированное плавание)
[Spread CouponRate]
(зафиксирован плаванием)
[CouponRate CouponRate]
(фиксировано зафиксирован)
[Spread Spread]
(плавание плавающее)
CouponRate
является десятичным годовым показателем. Spread
является количеством пунктов по ссылочному уровню. Первый столбец представляет участок получения, в то время как второй столбец представляет участок оплаты.
Типы данных: double
Settle
— Расчетный деньРасчетный день, заданный или как скаляр или как NINST
-by-1
вектор последовательных чисел даты или векторы символов даты того же значения, которые представляют расчетный день для каждой подкачки. Settle
должен быть ранее, чем Maturity
.
Типы данных: char
| cell
| double
Maturity
— Дата погашенияДата погашения, заданная как NINST
-by-1
вектор последовательных чисел даты или векторов символов даты, представляющих дату погашения для каждой подкачки.
Типы данных: char
| cell
| double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
[Цена, SwapRate, AI, RecCF, RecCFDates, PayCF, PayCFDates] = swapbyzero (RateSpec, LegRate, Обосновываются,
Зрелость, 'LegType', LegType, 'LatestFloatingRate', LatestFloatingRate, 'AdjustCashFlowsBasis', верный,
'BusinessDayConvention', 'modifiedfollow')
'LegReset'
— Сбросьте частоту в год для каждой подкачки[1 1]
(значение по умолчанию) | векторСбросьте частоту в год для каждой подкачки, заданной как пара, разделенная запятой, состоящая из 'LegReset'
и NINST
-by-2
вектор.
Типы данных: double
'Basis'
— Основание дневного количества инструмента0
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
до 13
Основание дневного количества, представляющее основание для каждого участка, заданного как пара, разделенная запятой, состоящая из 'Basis'
и NINST
-by-1
массив (или NINST
-by-2
, если Basis
отличается для каждого участка).
0 = фактический/фактический
1 = 30/360 (СИА)
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
Для получения дополнительной информации смотрите основание.
Типы данных: double
'Principal'
— Отвлеченные основные суммы или основные расписания значения100
(значение по умолчанию) | векторный массив или массив ячеекОтвлеченные основные суммы или основные расписания значения, заданные как пара, разделенная запятой, состоящая из 'Principal'
и векторного массива или массива ячеек.
Principal
принимает NINST
-by-1
вектор или NINST
-by-1
массив ячеек (или NINST
-by-2
, если Principal
отличается для каждого участка) отвлеченных основных сумм или основных расписаний значения. Для расписаний каждым элементом массива ячеек является NumDates
-by-2
массив, где первый столбец является датами, и второй столбец является своим связанным отвлеченным основным значением. Дата указывает в последний день, что основное значение допустимо.
Типы данных: cell
| double
'LegType'
— Тип участка[1 0]
для каждого инструмента (значение по умолчанию) | матрица со значениями (фиксировано зафиксированный) [1 1]
, [1 0]
(фиксированное плавание), [0 1]
(зафиксированный плаванием), или [0 0]
(плавание плавающее)Тип участка, заданный как пара, разделенная запятой, состоящая из 'LegType'
и NINST
-by-2
матрица со значениями (фиксировано зафиксированный) [1 1]
, [1 0]
(фиксированное плавание), [0 1]
(зафиксированный плаванием), или [0 0]
(плавание плавающее). Каждая строка представляет инструмент. Каждый столбец указывает, фиксируется ли соответствующий участок (1
) или плавающий (0
). Эта матрица задает интерпретацию значений, вводимых в LegRate
. LegType
позволяет (фиксировано зафиксированный) [1 1]
, [1 0]
(фиксированное плавание), [0 1]
(зафиксированный плаванием), или [0 0]
подкачки (плавающие плавающие)
Типы данных: double
'EndMonthRule'
— Правило конца месяца отмечает для генерации дат, когда Maturity
является датой конца месяца в течение месяца, имея 30 или меньше дней1
(в действительности) (значение по умолчанию) | неотрицательный целочисленный [0,1]
Правило конца месяца отмечает для генерации дат, когда Maturity
является датой конца месяца в течение месяца, имея 30 или меньше дней, заданных как пара, разделенная запятой, состоящая из 'EndMonthRule'
и неотрицательного целого числа [0
, 1
] использование NINST
-by-1
(или NINST
-by-2
, если EndMonthRule
отличается для каждого участка).
0
= Игнорирует правило, означая, что платежный день всегда является тем же числовым днем месяца.
1
= Установленное правило о, означая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
'AdjustCashFlowsBasis'
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение (FALSE) 0
или (TRUE) 1
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, заданного как пара, разделенная запятой, состоящая из 'AdjustCashFlowsBasis'
и NINST
-by-1
(или NINST
-by-2
, если AdjustCashFlowsBasis
отличается для каждого участка) logicals со значениями (FALSE) 0
или (TRUE) 1
.
Типы данных: логический
'BusinessDayConvention'
— Соглашения рабочего дняactual
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовСоглашения рабочего дня, заданные как пара, разделенная запятой, состоящая из 'BusinessDayConvention'
и вектора символов или N
-by-1
(или NINST
-by-2
, если BusinessDayConvention
отличается для каждого участка), массив ячеек из символьных векторов соглашений рабочего дня. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:
actual
— Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.
follow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.
modifiedfollow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.
previous
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.
modifiedprevious
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.
Типы данных: char | cell
'Holidays'
— Праздники используются в вычислении рабочих днейholidays.m
(значение по умолчанию) | числа даты MATLAB®Праздники используются в вычислении рабочих дней, заданных как пара, разделенная запятой, состоящая из 'Holidays'
и чисел даты MATLAB с помощью NHolidays
-by-1
вектор.
Типы данных: double
'StartDate'
— Даты, когда подкачки на самом деле запускаютсяSettle
(значение по умолчанию) | последовательный номер даты | вектор символов | массив ячеек из символьных векторовДаты, когда подкачки на самом деле запускаются, заданный как пара, разделенная запятой, состоящая из 'StartDate'
и NINST
-by-1
вектор последовательных чисел даты, векторов символов или массива ячеек из символьных векторов.
Типы данных: char
| cell
| double
'LatestFloatingRate'
— Уровень для следующей плавающей оплатыRateSpec
должен содержать эту информацию (значение по умолчанию) | числовой скалярУровень для следующей плавающей оплаты, установленной в последнюю дату сброса, заданную как пара, разделенная запятой, состоящая из 'LatestFloatingRate'
и скалярного числового значения.
LatestFloatingRate
принимает Уровень для следующей плавающей оплаты, установленной в последнюю дату сброса. LatestFloatingRate
является NINST
-by-1
(или NINST
-by-2
, если LatestFloatingRate
отличается для каждого участка).
Типы данных: double
'ProjectionCurve'
— Кривая уровня используется в генерации потоков наличности для плавающего участка подкачкиProjectionCurve
не задан, то RateSpec
используется и для дисконтирования и для генерации потоков наличности для плавающего участка (значение по умолчанию) | RateSpec
или векторКривая уровня, используемая в генерации потоков наличности для плавающего участка подкачки, заданной как пара, разделенная запятой, состоящая из 'ProjectionCurve'
и RateSpec
.
При определении фиксированного плавания или зафиксированной плаванием подкачки, кривая уровня ProjectionCurve
используется в генерации потоков наличности для плавающего участка подкачки. Эта структура должна быть создана с помощью intenvset
.
При определении фиксировано зафиксированного или подкачки плавающей плавающей, затем ProjectionCurve
является NINST
-by-2
вектор, потому что каждый плавающий участок мог иметь различную кривую проекции.
Типы данных: struct
'FXRate'
— Иностранная валюта (FX) уровень применилась к потокам наличностиswapbyzero
находятся в той же валюте (значение по умолчанию) | массивИностранная валюта (FX), из которого уровень применился к потокам наличности, заданным как пара, разделенная запятой, состоящая из 'FXRate'
и NINST
-by-2
массив, удваивается. Поскольку обменный курс валюты мог быть применен или к плательщику или к участку получателя, существует 2 столбца во входном массиве, и необходимо задать, какой участок имеет иностранную валюту.
Типы данных: double
'ExchangeInitialPrincipal'
— Отметьте, чтобы указать, обмениваются ли начальным Principal
0
(FALSE) (значение по умолчанию) | массивОтметьте, чтобы указать, обмениваются ли начальным Principal
, задают как пара, разделенная запятой, состоящая из 'ExchangeInitialPrincipal'
и NINST
-by-1
массив logicals.
Типы данных: логический
'ExchangeMaturityPrincipal'
— Отметьте, чтобы указать, обменивался ли Principal
в Maturity
1
(TRUE) (значение по умолчанию) | массивОтметьте, чтобы указать, обмениваются ли Principal
в Maturity
, заданном как пара, разделенная запятой, состоящая из 'ExchangeMaturityPrincipal'
и NINST
-by-1
массив logicals. В то время как на практике большинство подкачек единой валюты не обменивается принципалом в зрелости, значение по умолчанию верно, чтобы поддержать обратную совместимость.
Типы данных: логический
Price
— Подкачайте ценыПодкачайте цены, возвращенные как количество инструментов (NINST
) количеством кривых (NUMCURVES
) матрица. Каждый столбец является результатом одной из кривых нулевой ширины. Price
вывод является грязной ценой. Чтобы вычислить чистую цену, вычтите начисленные проценты (AI
) из грязной цены.
SwapRate
— Уровни, применимые к фиксированному участкуУровни, применимые к фиксированному участку, возвращенному как NINST
-by-NUMCURVES
матрица уровней, применимых к фиксированному участку, таким образом, что значения подкачек являются нулем во время 0. Этот уровень используется в вычислении цен подкачек, когда уровнем, заданным для фиксированного участка в LegRate
, является NaN
. Вывод SwapRate
дополнен NaN
для тех инструментов, в которых CouponRate
не установлен в NaN
.
AI
— Начисленные процентыНачисленные проценты, возвращенные как NINST
-by-NUMCURVES
матрица.
RecCF
— Потоки наличности для получения участкаПотоки наличности для участка получения, возвращенного как NINST
-by-NUMCURVES
матрица.
Если существует больше чем одна кривая, заданная во входе RateSpec
, то первая строка NCURVES
соответствует первой подкачке, вторая строка NCURVES
соответствуют второй подкачке, и так далее.
RecCFDates
— Платежные дни получения участкаПлатежные дни участка получения, возвращенного как NINST
-by-NUMCURVES
матрица.
PayCF
— Потоки наличности для оплаты участкаПотоки наличности для участка оплаты, возвращенного как NINST
-by-NUMCURVES
матрица.
PayCFDates
— Платежные дни оплаты участкаПлатежные дни участка оплаты, возвращенного как NINST
-by-NUMCURVES
матрица.
В подкачке амортизации отвлеченный принципал периодически уменьшается, потому что он связывается к базовому финансовому инструменту со снижением (амортизирующим) основной баланс, такой как ипотека.
Соглашение ввести в процентную ставку подкачивает расположение относительно установленной даты в будущем.
Подкачки, где платежные участки подкачки называются в различных валютах.
Одно различие между валютными свопами и стандартными подкачками - то, что обмен принципалом может произойти вначале и/или конец подкачки. Обмен начальным принципалом будет только играть роль в оценке валютного свопа в начале (другими словами, оценивание существующего валютного свопа произойдет после того, как этот поток наличности произошел). Кроме того, эти обмены принципалом обычно не влияют на значение подкачки (поскольку основные значения этих двух участков выбраны на основе курса обмена валюты), но влияйте на потоки наличности для каждого участка.
[1] Оболочка, J. Опции, фьючерсы и другие производные четвертый выпуск. Prentice Hall, 2000.
bondbyzero
| cfbyzero
| fixedbyzero
| floatbyzero
| intenvset
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.