exponenta event banner

intenvset

Задать свойства структуры процентных ставок

Описание

пример

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

Примечание

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

пример

[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 должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как 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 (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' и скалярное целое число со значением 0 или 1. Это правило применяется только в том случае, если EndDates - дата окончания месяца, имеющая 30 или менее дней.

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

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

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

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

свернуть все

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

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

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