Задать свойства структуры процентных ставок
создает структуру срока процентной ставки (RateSpec = intenvset(Name,Value)RateSpec), где входной список аргументов указан как пары имя-значение.
Примечание
При создании нового RateSpec, набор аргументов, переданных intenvset должен включать StartDates, EndDatesи либо Rates или Disc.
[ создает структуру срока процентной ставки (RateSpec,RateSpecOld] = intenvset(RateSpec,Name,Value)RateSpec), где входной список аргументов указывается как пары имя-значение вместе с необязательным аргументом RateSpec. Если необязательный аргумент RateSpec указывается, intenvset изменяет существующую структуру условий процентной ставки RateSpec изменяя именованный аргумент на указанные значения и пересчитывая аргументы в зависимости от новых значений.
[ создает структуру условий процентной ставки RateSpec,RateSpecOld] = intenvsetRateSpec со всеми полями, имеющими значение [ ].
Использовать intenvset для создания RateSpec для нулевой кривой.
RateSpec = intenvset('Rates', 0.05, 'StartDates',... '20-Jan-2000', 'EndDates', '20-Jan-2001')
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 2
Disc: 0.9518
Rates: 0.0500
EndTimes: 2
StartTimes: 0
EndDates: 730871
StartDates: 730505
ValuationDate: 730505
Basis: 0
EndMonthRule: 1
Теперь измените Compounding аргумент для 1 (ежегодно).
RateSpec = intenvset(RateSpec, 'Compounding', 1)RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: 0.9518
Rates: 0.0506
EndTimes: 1
StartTimes: 0
EndDates: 730871
StartDates: 730505
ValuationDate: 730505
Basis: 0
EndMonthRule: 1
Запрос intenvset без входных или выходных аргументов отображает список имен аргументов и возможных значений.
intenvset
Compounding: [ 0 | 1 | {2} | 3 | 4 | 6 | 12 | 365 | -1 ]
Disc: [ scalar | vector (NPOINTS x 1) ]
Rates: [ scalar | vector (NPOINTS x 1) ]
EndDates: [ scalar | vector (NPOINTS x 1) ]
StartDates: [ scalar | vector (NPOINTS x 1) ]
ValuationDate: [ scalar ]
Basis: [ {0} | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 ]
EndMonthRule: [ 0 | {1} ]
Использовать intenvset для создания RateSpec для прямой кривой.
RateSpec = intenvset('Rates', 0.05, 'StartDates',... '20-Jan-2001', 'EndDates', '20-Jan-2002', 'ValuationDate','20-Jan-2000')
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 2
Disc: 0.9518
Rates: 0.0500
EndTimes: 4
StartTimes: 2
EndDates: 731236
StartDates: 730871
ValuationDate: 730505
Basis: 0
EndMonthRule: 1
Теперь измените Compounding аргумент для 1 (ежегодно).
RateSpec = intenvset(RateSpec, 'Compounding', 1)RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: 0.9518
Rates: 0.0506
EndTimes: 2
StartTimes: 1
EndDates: 731236
StartDates: 730871
ValuationDate: 730505
Basis: 0
EndMonthRule: 1
Определение данных для структуры и использования срока процентной ставки intenvset для создания RateSpec.
StartDates = '01-Oct-2011'; EndDates = ['01-Oct-2012'; '01-Oct-2013';'01-Oct-2014';'01-Oct-2015']; Rates = [[0.0356;0.041185;0.04489;0.047741],[0.0325;0.0423;0.0437;0.0465]]; 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: 734777
ValuationDate: 734777
Basis: 0
EndMonthRule: 1
Чтобы посмотреть на Rates для двух кривых процентных ставок:
RateSpec.Rates
ans = 4×2
0.0356 0.0325
0.0412 0.0423
0.0449 0.0437
0.0477 0.0465
Оценить следующие многоступенчатые купонные облигации, используя следующие данные:
Rates = [0.035; 0.042147; 0.047345; 0.052707]; ValuationDate = 'Jan-1-2010'; StartDates = ValuationDate; EndDates = {'Jan-1-2011'; 'Jan-1-2012'; 'Jan-1-2013'; 'Jan-1-2014'}; Compounding = 1; % Create RateSpec using intenvset RS = intenvset('ValuationDate', ValuationDate, 'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding); % Create a portfolio of stepped coupon bonds with different maturities Settle = '01-Jan-2010'; Maturity = {'01-Jan-2011';'01-Jan-2012';'01-Jan-2013';'01-Jan-2014'}; CouponRate = {{'01-Jan-2011' .042;'01-Jan-2012' .05; '01-Jan-2013' .06; '01-Jan-2014' .07}}; % Display the instrument portfolio ISet = instbond(CouponRate, Settle, Maturity, 1); instdisp(ISet)
Index Type CouponRate Settle Maturity Period Basis EndMonthRule IssueDate FirstCouponDate LastCouponDate StartDate Face 1 Bond [Cell] 01-Jan-2010 01-Jan-2011 1 0 1 NaN NaN NaN NaN 100 2 Bond [Cell] 01-Jan-2010 01-Jan-2012 1 0 1 NaN NaN NaN NaN 100 3 Bond [Cell] 01-Jan-2010 01-Jan-2013 1 0 1 NaN NaN NaN NaN 100 4 Bond [Cell] 01-Jan-2010 01-Jan-2014 1 0 1 NaN NaN NaN NaN 100
Построить BDTTree чтобы оценить ступенчатые купонные облигации. Предположим, волатильность составит 10%
Sigma = 0.1;
BDTTimeSpec = bdttimespec(ValuationDate, EndDates, Compounding);
BDTVolSpec = bdtvolspec(ValuationDate, EndDates, Sigma*ones(1, length(EndDates))');
BDTT = bdttree(BDTVolSpec, RS, BDTTimeSpec);
% Compute the price of the stepped coupon bonds
PBDT = bdtprice(BDTT, ISet)PBDT = 4×1
100.6763
100.7368
100.9266
101.0115
RateSpec - Спецификация процентной ставки для кривой начальной безрисковой ставки(Необязательно) Спецификация процентной ставки для кривой начальной ставки, указанной RateSpec полученные ранее от intenvset или toRateSpec для IRDataCurve или toRateSpec для IRFunctionCurve.
Типы данных: struct
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
RateSpec = intenvset('Rates',0.05,'StartDates','20-Jan-2001','EndDates','20-Jan-2002','ValuationDate','20-Jan-2000')'Compounding' - Ставка, при которой входные нулевые ставки были скомпонованы в годовом исчислении2 (по умолчанию) | целое число со значением 0,1, 2, 3, 4, 6, 12, 365, или -1Скорость, с которой входные нулевые скорости были скомпонованы при ежегодной оценке, указанная как пара, разделенная запятыми, состоящая из 'Compounding' и скалярное целое значение. Compounding аргумент определяет формулу для коэффициентов дисконтирования (Disc):
Compounding = 0 для простых процентов
Disc = 1/(1 + Z * T), где T время в годах, и простой интерес предполагает годовое время F = 1.
Compounding = 1, 2, 3, 4, 6, 12
Disc = (1 + Z/F)^(-T), где F - частота компаундирования, Z - нулевая скорость, и T - время в периодических единицах, например, T = F составляет один год.
Compounding = 365
Disc = (1 + Z/F)^(-T), где F - количество дней в базисном году и T - количество дней, вычисленных по базису.
Compounding = -1
Disc = exp(-T*Z), где T это время в годах.
Типы данных: double
'Disc' - Удельные цены облигаций на протяжении инвестиционных интервалов[ ]
(по умолчанию) | матрицаУдельные цены облигаций на протяжении инвестиционных интервалов от StartDates (когда денежный поток оценен) EndDates (при получении денежного потока), определяемого как разделенная запятыми пара, состоящая из 'Disc' и ряд моментов (NPOINTS) по количеству кривых (NCURVES) матрица.
Типы данных: double
'Rates' - Процентные ставкиПроцентные ставки, указанные как пара, разделенная запятыми, состоящая из 'Rates' и ряд моментов (NPOINTS) по количеству кривых (NCURVES) матрица десятичных значений. Rates может содержать только отрицательные десятичные значения, если результат RateSpec используется с моделью Normal (Bachelier), сдвинутой моделью Black или сдвинутой моделью SABR.
Типы данных: double
'EndDates' - Даты погашения, заканчивающиеся интервалом дисконтированияДаты погашения, заканчивающиеся интервалом дисконтирования, указанные как пара, разделенная запятыми, состоящая из 'EndDates' и скаляр или NPOINTSоколо-1 вектор серийных номеров дат или векторы символов дат.
Типы данных: double | char | cell
'StartDates' - Даты начала интервала дисконтированияДаты начала интервала дисконтирования, указанного как пара, разделенная запятыми, состоящая из 'StartDates' и скаляр или NPOINTSоколо-1 вектор серийных номеров дат или векторы символов дат. StartDates должно быть раньше, чем EndDates.
Типы данных: double | char | cell
'ValuationDate' - Дата наблюдения горизонтов инвестиций, введенных в StartDates и EndDatesmin(StartDates)
(по умолчанию) | серийный номер даты | дата символьного векторадата наблюдения за горизонтами инвестиций, введенными в StartDates и EndDates, указанная как пара, разделенная запятыми, состоящая из 'ValuationDate' и указанный как скалярный порядковый номер даты или вектор символов даты.
Типы данных: double | char
'Basis' - Количество дней0 (факт/факт) (по умолчанию) | целое число от 0 кому 13Базисное число дней, указанное как пара, разделенная запятыми, состоящая из '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
'EndMonthRule' - Флаг правила на конец месяца1 (в действии) (по умолчанию) | неотрицательное целое число со значениями 0 или 1Флаг правила конца месяца, заданный как пара, разделенная запятыми, состоящая из 'EndMonthRule' и скалярное целое число со значением 0 или 1. Это правило применяется только в том случае, если EndDates - дата окончания месяца, имеющая 30 или менее дней.
0 = Игнорировать правило, означающее, что дата выплаты бонусного купона всегда совпадает с числовым днем месяца.
1 = Установить правило, означающее, что дата выплаты бонусного купона всегда является последним фактическим днем месяца.
Типы данных: double
RateSpec - Спецификация процентной ставки для кривой начальной ставкиСпецификация процентной ставки для кривой начальной ставки, возвращаемой в виде структуры.
RateSpecOld - Свойства структуры процентных ставок до изменений, вносимых вызовом intenvsetСвойства структуры процентных ставок до изменений, вносимых вызовом intenvset, возвращено как структура.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.