Инструмент ценового свопа из набора нулевых кривых и ценовых валютных свопов
[ цены своп инструмент. Вы можете использовать Price,SwapRate,AI,RecCF,RecCFDates,PayCF,PayCFDates] = swapbyzero(RateSpec,LegRate,Settle,Maturity)swapbyzero для расчета цен ванильных свопов, амортизирующих свопов и форвардных свопов. Все входы являются скалярами или NINSTоколо-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=1×2 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-Feb-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 сначала используется без, а затем с необязательным аргументом name-value input 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Определите ставки OIS и Libor.
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 для кривых OIS и Libor.
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 и платит фиксированный курс USD с годовой периодичностью.
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
Цена нового свопа, когда вы платите EUR float и получаете USD float.
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около-2 входная переменная RateSpecs, со вторым RateSpec структура, содержащая одну или несколько кривых дисконтирования для плательщика, если только одна RateSpec структура указана, то это RateSpec используется для дисконтирования обеих ветвей.
Типы данных: struct
LegRate - Скорость движения ногСкорость ноги, указанная как NINSTоколо-2 с каждой строкой, определенной как одна из следующих:
[CouponRate Spread] (фиксированный поплавок)
[Spread CouponRate] (поплавковый)
[CouponRate CouponRate] (фиксированный-фиксированный)
[Spread Spread] (поплавок-поплавок)
CouponRate - десятичная годовая ставка. Spread - количество базисных пунктов над эталонной скоростью. Первый столбец представляет принимающую ветвь, а второй столбец - платящую ветвь.
Типы данных: double
Settle - Дата расчетаДата расчета, указанная как скаляр или NINSTоколо-1 вектор серийных номеров дат или векторы символов дат того же значения, которые представляют дату балансирования для каждого свопа. Settle должно быть раньше, чем Maturity.
Типы данных: char | cell | double
Maturity - Дата погашенияДата погашения, указанная как NINSTоколо-1 вектор серийных номеров дат или векторы символов дат, представляющие дату погашения для каждого свопа.
Типы данных: char | cell | double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
[Price,SwapRate,AI,RecCF,RecCFDates,PayCF,PayCFDates] = swapbyzero(RateSpec,LegRate,Settle,
Maturity,'LegType',LegType,'LatestFloatingRate',LatestFloatingRate,'AdjustCashFlowsBasis',true,
'BusinessDayConvention','modifiedfollow')'LegReset' - Частота сброса в год для каждого свопа[1 1]
(по умолчанию) | векторЧастота сброса в год для каждого свопа, указанная как пара, разделенная запятыми, состоящая из 'LegReset' и NINSTоколо-2 вектор.
Типы данных: double
'Basis' - Дневная основа прибора0 (факт/факт) (по умолчанию) | целое число от 0 кому 13Базисный номер дня, представляющий базис для каждой ветви, определяемый как пара, разделенная запятыми, состоящая из 'Basis' и NINSTоколо-1 массив (или NINSTоколо-2 если Basis отличается для каждой ветви).
0 = факт/факт
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 = BUS/252
Дополнительные сведения см. в разделе Базис.
Типы данных: double
'Principal' - Условные суммы основной суммы или графики основной стоимости100
(по умолчанию) | вектор или массив ячеекУсловные суммы основного долга или графики основных значений, указанные как пара, разделенная запятыми, состоящая из 'Principal' и вектор или клеточный массив.
Principal принимает NINSTоколо-1 вектор или NINSTоколо-1 массив ячеек (или NINSTоколо-2 если Principal отличается для каждой ветви) условных сумм основной суммы или графиков основной стоимости. Для расписаний каждый элемент массива ячеек является NumDatesоколо-2 массив, где первый столбец - даты, а второй столбец - связанное с ним условное основное значение. Дата указывает последний день, когда действительным является основное значение.
Типы данных: cell | double
'LegType' - Тип ноги[1 0] для каждого прибора (по умолчанию) | матрица со значениями [1 1] (фиксированный-фиксированный), [1 0] (фиксированный поплавок), [0 1] (поплавковый), или [0 0] (поплавок-поплавок)Тип ножки, указанный как разделенная запятыми пара, состоящая из 'LegType' и NINSTоколо-2 матрица со значениями [1 1] (фиксированный-фиксированный), [1 0] (фиксированный поплавок), [0 1] (поплавковый), или [0 0] (поплавок-поплавок). Каждая строка представляет инструмент. Каждый столбец указывает, является ли соответствующая ветвь фиксированной (1) или плавающий (0). Эта матрица определяет интерпретацию значений, введенных в LegRate. LegType позволяет [1 1] (фиксированный-фиксированный), [1 0] (фиксированный поплавок), [0 1] (поплавковый), или [0 0] (float-float) свопы
Типы данных: double
'EndMonthRule' - флаг правила конца месяца для генерации дат, когда Maturity - дата окончания месяца, имеющего 30 или менее дней1 (в действии) (по умолчанию) | неотрицательное целое число [0,1]Флаг правила конца месяца для генерации дат при Maturity - дата окончания месяца, имеющая 30 или менее дней, указанная как пара, разделенная запятыми, состоящая из 'EndMonthRule' и неотрицательное целое число [0, 1] с использованием NINSTоколо-1 (или NINSTоколо-2 если EndMonthRule отличается для каждой ветви).
0 = Игнорировать правило, означающее, что дата платежа всегда совпадает с числовым днем месяца.
1 = Установите правило, означающее, что дата платежа всегда является последним фактическим днем месяца.
Типы данных: logical
'AdjustCashFlowsBasis' - Флажок для корректировки денежных потоков на основе фактического подсчета дней периодаfalse
(по умолчанию) | значение 0 (false) или 1 ПравдаФлажок для корректировки денежных потоков на основе фактического количества дней периода, указанного как пара, разделенная запятыми, состоящая из 'AdjustCashFlowsBasis' и NINSTоколо-1 (или NINSTоколо-2 если AdjustCashFlowsBasis отличается для каждой ветви) логики со значениями 0 (false) или 1 Правда.
Типы данных: logical
'BusinessDayConvention' - Соглашения по рабочим днямactual
(по умолчанию) | символьный вектор | массив ячеек символьных векторовСоглашения о рабочих днях, указанные как пара, разделенная запятыми, состоящая из 'BusinessDayConvention' и вектор символа или Nоколо-1 (или NINSTоколо-2 если BusinessDayConvention отличается для каждого участка) массив ячеек символьных векторов соглашений о рабочих днях. Выбор соглашения о рабочих днях определяет, как обрабатываются нерабочие дни. Нерабочие дни определяются как выходные дни плюс любая другая дата, когда предприятия не открыты (например, официальные праздники). Значения:
actual - Нерабочие дни фактически игнорируются. Предполагается, что денежные потоки, приходящиеся на нерабочие дни, распределяются на фактическую дату.
follow - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить на следующий рабочий день.
modifiedfollow - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить на следующий рабочий день. Однако если следующий рабочий день находится в другом месяце, вместо него используется предыдущий рабочий день.
previous - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить в предыдущий рабочий день.
modifiedprevious - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить в предыдущий рабочий день. Однако если предыдущий рабочий день находится в другом месяце, вместо него принимается следующий рабочий день.
Типы данных: char | cell
'Holidays' - Праздники, используемые в вычислительных рабочих дняхholidays.m
(по умолчанию) | Номера дат MATLAB ®Праздники, используемые в вычислительных рабочих днях, указанные как пара, разделенная запятыми, состоящая из 'Holidays' и номера дат MATLAB с использованием NHolidaysоколо-1 вектор.
Типы данных: double
'StartDate' - Даты фактического начала своповSettle
(по умолчанию) | серийный номер даты | символьный вектор | массив ячеек символьных векторовДаты фактического начала свопов, указанные как пара, разделенная запятыми, состоящая из 'StartDate' и NINSTоколо-1 вектор порядковых номеров дат, символьных векторов или массив ячеек символьных векторов.
Типы данных: char | cell | double
'LatestFloatingRate' - Ставка для следующего плавающего платежаRateSpec должен содержать эту информацию (по умолчанию) | скалярный числовойСтавка для следующего плавающего платежа, установленная на дату последнего сброса, указанная как пара, разделенная запятыми, состоящая из 'LatestFloatingRate' и скалярное числовое значение.
LatestFloatingRate принимает ставку для следующего плавающего платежа, установленную на дату последнего сброса. LatestFloatingRate является NINSTоколо-1 (или NINSTоколо-2 если LatestFloatingRate отличается для каждой ветви).
Типы данных: double
'ProjectionCurve' - Кривая ставки, используемая при генерации денежных потоков для плавающей ветви свопаProjectionCurve не указан, то RateSpec используется как для дисконтирования, так и для генерации денежных потоков для плавающего участка (по умолчанию) | RateSpec или векторКривая ставки, используемая при генерации денежных потоков для плавающей ветви свопа, определяемая как пара, разделенная запятыми, состоящая из 'ProjectionCurve' и RateSpec.
При указании фиксированного или фиксированного подкачки ProjectionCurve кривая ставки используется для генерации денежных потоков для плавающей ветви свопа. Эта структура должна быть создана с помощью intenvset.
Если задан фиксированный или плавающий своп, то ProjectionCurve является NINSTоколо-2 вектор, поскольку каждая плавающая ветвь может иметь различную проекционную кривую.
Типы данных: struct
'FXRate' - Валютный курс, применяемый к денежным потокамswapbyzero в одной валюте (по умолчанию) | массивВалютный курс, применяемый к денежным потокам, определяемый как пара, разделенная запятыми, состоящая из 'FXRate' и NINSTоколо-2 массив двойников. Поскольку валютный курс может быть применен к ветви плательщика или получателя, в массиве ввода имеется 2 столбца, и необходимо указать, какая трасса имеет иностранную валюту.
Типы данных: double
'ExchangeInitialPrincipal' - Флаг для указания начального Principal обменивается0 (false) (по умолчанию) | массивФлаг, указывающий, является ли он начальным Principal заменяется, указывается как пара, разделенная запятыми, состоящая из 'ExchangeInitialPrincipal' и NINSTоколо-1 массив логических данных.
Типы данных: logical
'ExchangeMaturityPrincipal' - Флаг, указывающий, Principal обменивается по адресу Maturity1 (true) (по умолчанию) | массивФлаг, указывающий, Principal обменивается по адресу Maturity, указанная как пара, разделенная запятыми, состоящая из 'ExchangeMaturityPrincipal' и NINSTоколо-1 массив логических данных. В то время как на практике большинство свопов в одной валюте не обменивают основную сумму на момент погашения, по умолчанию сохраняется обратная совместимость.
Типы данных: logical
Price - Цены свопаЦены свопа, возвращенные как количество инструментов (NINST) по количеству кривых (NUMCURVES) матрица. Каждый столбец возникает из одной из нулевых кривых. Price результат - грязная цена. Для вычисления чистой цены вычитайте начисленные проценты (AI) от грязной цены.
SwapRate - Ставки, применимые к фиксированной ветвиСтавки, применимые к фиксированной ветви, возвращаемые как NINSTоколо-NUMCURVES матрица ставок, применимых к фиксированной ветви, так что значения свопов равны нулю в момент времени 0. Эта ставка используется при расчете цен свопов, когда ставка указана для фиксированной трассы в LegRate является NaN. SwapRate вывод дополнен NaN для тех документов, в которых CouponRate не имеет значение NaN.
AI - Начисленные процентыНачисленные проценты, возвращенные как NINSTоколо-NUMCURVES матрица.
RecCF - Денежные потоки для этапа полученияДенежные потоки для участка-получателя, возвращенные как NINSTоколо-NUMCURVES матрица.
Примечание
При наличии нескольких кривых, указанных в RateSpec ввод, затем первый NCURVES строка соответствует первому свопу, вторая NCURVES строка соответствует второму свопу и так далее.
RecCFDates - Даты оплаты для этапа полученияДаты платежа для участка-получателя, возвращенные как NINSTоколо-NUMCURVES матрица.
PayCF - Денежные потоки для этапа оплатыДенежные потоки для этапа оплаты, возвращенные как NINSTоколо-NUMCURVES матрица.
PayCFDates - Даты оплаты для этапа оплатыДаты оплаты для этапа оплаты, возвращенные как NINSTоколо-NUMCURVES матрица.
В амортизирующем свопе условная основная сумма периодически уменьшается, поскольку она привязана к базовому финансовому инструменту с уменьшающимся (амортизирующим) основным балансом, таким как ипотека.
Соглашение о заключении соглашения о процентном свопе на фиксированную дату в будущем.
Свопы, в которых ветви платежа свопа номинированы в различных валютах.
Одно различие между валютными свопами и стандартными свопами заключается в том, что в начале и/или конце свопа может произойти обмен основной суммы. Обмен первоначальной основной суммы вступает в силу только в ценообразовании кросс-валютного свопа с момента его создания (другими словами, ценообразование существующего кросс-валютного свопа произойдет после того, как произойдет этот денежный поток). Кроме того, эти обмены основной суммы обычно не влияют на стоимость свопа (поскольку основные значения двух ветвей выбираются на основе валютного курса), а влияют на денежные потоки для каждой ветви.
[1] Халл, J. Опционы, фьючерсы и другие деривативы Четвертое издание. Прентис Холл, 2000.
bondbyzero | cfbyzero | fixedbyzero | floatbyzero | intenvset
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.