Установите свойства структуры процентной ставки
создает структуру процентных ставок (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
и EndDates
min(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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.