Установите свойства структуры процентной ставки
создает структуру термина процентной ставки (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'
— Уровень, на котором входные нулевые уровни были составлены, когда пересчитано на год
(значение по умолчанию) | целое число со значением 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
и EndDates
min(StartDates)
(значение по умолчанию) | последовательный номер даты | дата вектора символовдата наблюдения инвестиционных горизонтов вводится в StartDates
и EndDates
В виде разделенной запятой пары, состоящей из 'ValuationDate'
и заданное как скалярный последовательный номер даты или вектор символов даты.
Типы данных: double |
char
'Basis'
— Основание дневного количества
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
Основание дневного количества в виде разделенной запятой пары, состоящей из '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
'EndMonthRule'
— Флаг правила конца месяца
(в действительности) (значение по умолчанию) | неотрицательное целое число со значениями 0
или 1
Правило конца месяца отмечает в виде разделенной запятой пары, состоящей из 'EndMonthRule'
и скалярное целое число со значением 0
или 1
. Это правило применяется только когда EndDates
дата конца месяца в течение месяца, имея 30 или меньше дней.
0 = Проигнорируйте правило, подразумевая, что платежный день облигационного купона всегда является тем же числовым днем месяца.
1 = Установите правило о, подразумевая, что платежный день облигационного купона всегда является прошлым фактическим днем месяца.
Типы данных: double
RateSpec
— Спецификация процентной ставки для начальной кривой уровняСпецификация процентной ставки для начальной кривой уровня, возвращенной как структура.
RateSpecOld
— Свойства структуры процентной ставки перед изменениями, введенными вызовом intenvset
Свойства структуры процентной ставки перед изменениями, введенными вызовом intenvset
, возвращенный как структура.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.