intenvset

Установите свойства структуры процентной ставки

Описание

пример

RateSpec = intenvset(Name,Value) создает структуру термина процентной ставки (RateSpec) где список входных параметров задан как пары "имя-значение".

Примечание

При создании нового RateSpec, набор аргументов передал intenvset должен включать StartDates, EndDates, и любой Rates или Disc.

В качестве альтернативы можно создать RateSpec использование среды объекта Financial Instruments Toolbox™, чтобы создать ratecurve объект. Для получения дополнительной информации о преобразовании RateSpec возразите против ratecurve возразите, смотрите, Преобразуют RateSpec в Объект ratecurve.

пример

[RateSpec,RateSpecOld] = intenvset(RateSpec,Name,Value) создает структуру термина процентной ставки (RateSpec) где список входных параметров задан как пары "имя-значение" наряду с дополнительным аргументом RateSpec. Если дополнительный аргумент RateSpec задан, intenvset изменяет существующую структуру термина процентной ставки RateSpec путем изменения параметра, передаваемого по имени в заданные значения и перевычисления аргументов, зависящих от новых значений.

пример

[RateSpec,RateSpecOld] = intenvset создает структуру термина процентной ставки RateSpec со всем полевым набором к [ ].

Примеры

свернуть все

Используйте 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 полученный ранее из intenvset или toRateSpec для IRDataCurve или toRateSpec для IRFunctionCurve.

Типы данных: struct

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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' и скалярное целочисленное значение. 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

Модульные цены облигаций на инвестиционных интервалах от StartDates (когда поток наличности оценен) к EndDates (когда поток наличности получен) в виде разделенной запятой пары, состоящей из 'Disc' и ряд вопросов (NPOINTS) количеством кривых (NCURVES) матрица.

Типы данных: double

Процентные ставки в виде разделенной запятой пары, состоящей из 'Rates' и ряд вопросов (NPOINTS) количеством кривых (NCURVES) матрица десятичных значений. Rates может только содержать отрицательные десятичные значения если получившийся RateSpec используется с моделью Normal (Bachelier), переключенной моделью Black или переключенной моделью SABR.

Типы данных: double

Даты погашения, заканчивающие интервал, чтобы обесценить в виде разделенной запятой пары, состоящей из 'EndDates' и скаляр или NPOINTS- 1 вектор из последовательных чисел даты или векторов символов даты.

Типы данных: double | char | cell

Даты, начинающие интервал, чтобы обесценить в виде разделенной запятой пары, состоящей из 'StartDates' и скаляр или NPOINTS- 1 вектор из последовательных чисел даты или векторов символов даты. StartDates должен быть ранее, чем EndDates.

Типы данных: double | char | cell

дата наблюдения инвестиционных горизонтов вводится в StartDates и EndDatesВ виде разделенной запятой пары, состоящей из 'ValuationDate' и заданное как скалярный последовательный номер даты или вектор символов даты.

Типы данных: double | char

Базис дневного количества в виде разделенной запятой пары, состоящей из '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. Это правило применяется только когда EndDates дата конца месяца в течение месяца, имея 30 или меньше дней.

  • 0 = Проигнорируйте правило, подразумевая, что платежный день облигационного купона всегда является тем же числовым днем месяца.

  • 1 = Установите правило о, подразумевая, что платежный день облигационного купона всегда является прошлым фактическим днем месяца.

Типы данных: double

Выходные аргументы

свернуть все

Спецификация процентной ставки для начальной кривой уровня, возвращенной как структура.

Свойства структуры процентной ставки перед изменениями, введенными вызовом intenvset, возвращенный как структура.

Представлено до R2006a