Установите свойства структуры процентной ставки
создает структуру процентных ставок (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' и скаляр целое число значения. The 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-by- 1 вектор серийных номеров дат или векторов символов дат.
Типы данных: double | char | cell
'StartDates' - Даты начала интервала для скидкиДаты начала интервала для скидки, заданные как разделенная разделенными запятой парами, состоящая из 'StartDates' и скаляр или NPOINTS-by- 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.