Моделирование структуры термина процентной ставки

Financial Instruments Toolbox™ включает набор функций, чтобы инкапсулировать информацию о термине процентной ставки в одну структуру. Эти функции представляют удобный способ группировать всю информацию, связанную с условиями процентной ставки в распространенный формат и разрешить взаимозависимости, когда один или несколько параметров изменяется. Для получения информации см.:

Создание или изменение (intenvset)

Основной функцией, чтобы создать или изменить структуру термина процентной ставки RateSpec (спецификация уровней) является intenvset. Если первым аргументом к этой функции является ранее созданный RateSpec, функция изменяет существующую спецификацию уровня и возвращает новую. В противном случае это создает RateSpec.

При использовании RateSpec, чтобы задать структуру термина уровня, чтобы оценить инструменты на основе урожаев (уровни нулевого купона) или форвардные курсы, задайте нулевые уровни или форвардные курсы как входной параметр. Однако структура RateSpec не ограничивается или не характерна для этой проблемной области. RateSpec является инкапсуляцией отношений времен уровней; intenvset действует или как конструктор или как модификатор и intenvget как средство доступа. Модели процентной ставки, поддержанные программным обеспечением Financial Instruments Toolbox, работают или с уровнями нулевого купона или с форвардными курсами.

Другие аргументы intenvset являются парами "имя-значение". Аргументы пары "имя-значение", которые могут быть заданы или изменены:

  • Basis

  • Compounding

  • Disc

  • EndDates

  • EndMonthRule

  • Rates

  • StartDates

  • ValuationDate

Для получения дополнительной информации о Basis смотрите основание.

Рассмотрите снова исходную таблицу процентных ставок (см. Вычисление Коэффициентов дисконтирования от Уровней).

От

К

Уровень

15 февраля 2000

15 августа 2000

0.05

15 февраля 2000

15 февраля 2001

0.056

15 февраля 2000

15 августа 2001

0.06

15 февраля 2000

15 февраля 2002

0.065

15 февраля 2000

15 августа 2002

0.075

Используйте информацию в этой таблице, чтобы заполнить структуру RateSpec.

StartDates = ['15-Feb-2000'];
EndDates =   ['15-Aug-2000';
              '15-Feb-2001'; 
              '15-Aug-2001';
              '15-Feb-2002';
              '15-Aug-2002'];
Compounding = 2;
ValuationDate = ['15-Feb-2000'];
Rates = [0.05; 0.056; 0.06; 0.065; 0.075];

rs = intenvset('Compounding',Compounding,'StartDates',... 
StartDates, 'EndDates', EndDates, 'Rates', Rates,... 
'ValuationDate', ValuationDate)
rs = 

       FinObj:	'RateSpec'
  Compounding:	2
         Disc:	[5x1 double]
        Rates:	[5x1 double]
     EndTimes:	[5x1 double]
   StartTimes:	[5x1 double]
     EndDates:	[5x1 double]
   StartDates:	730531
ValuationDate:	730531
        Basis: 0
 EndMonthRule: 1

Некоторые свойства заполнили структуру, не были переданы явным образом в вызове RateSpec. Значения автоматически завершенных свойств зависят от свойств, которые явным образом передаются. Рассмотрите, например, векторы EndTimes и StartTimes. Поскольку StartDates и векторы EndDates передаются в, и ValuationDate, intenvset имеет всю информацию, запрошенную, чтобы вычислить StartTimes и EndTimes. Следовательно, эти два свойства только для чтения.

Получение определенных свойств (intenvget)

Дополнительной функцией к intenvset является intenvget, который получает функционально-специализированные свойства от структуры термина процентной ставки. Его синтаксис:

ParameterValue = intenvget(RateSpec, 'ParameterName')

Получить векторный EndTimes из структуры RateSpec, введите:

EndTimes = intenvget(rs, 'EndTimes')
EndTimes =

     1
     2
     3
     4
     5

Чтобы получить Disc, значения для коэффициентов дисконтирования, которые были вычислены автоматически intenvset, введите:

Disc = intenvget(rs, 'Disc')
Disc =

    0.9756
    0.9463
    0.9151
    0.8799
    0.8319

Эти коэффициенты дисконтирования соответствуют периодам, начинающим с StartDates и заканчивающимся в EndDates.

Внимание

Несмотря на то, что можно непосредственно получить доступ к этим полям в структуре вместо того, чтобы использовать intenvget, рекомендуется не сделать так. Формат структуры термина процентной ставки мог измениться в будущих версиях тулбокса. Если это происходит, любой код, получающий доступ к полям RateSpec непосредственно, прекратил бы работать.

Теперь используйте структуру RateSpec с ее функциями, чтобы исследовать, как изменения в определенных свойствах структуры термина процентной ставки влияют на тех в зависимости от нее. Как осуществление, измените значение Compounding от 2 (полугодовой) к 1 (ежегоднику).

rs = intenvset(rs, 'Compounding', 1);

Поскольку StartTimes и EndTimes измеряются в модулях периодической скидки, изменение в Compounding от 2 до 1 переопределяет основную единицу от полугодового до ежегодника. Это означает, что период шести месяцев представлен со значением 0.5, и период одного года представлен 1. Получить векторы StartTimes и EndTimes, введите:

StartTimes = intenvget(rs, 'StartTimes');
EndTimes = intenvget(rs, 'EndTimes');
Times = [StartTimes, EndTimes]
Times =

         0    0.5000
         0    1.0000
         0    1.5000
         0    2.0000
         0    2.5000

Поскольку все значения в StartDates совпадают с датой оценки, все значения StartTimes 0. С другой стороны, значения в векторе EndDates являются датами, разделенными шестимесячными периодами. Поскольку переопределенное значение соединения равняется 1, EndTimes становится последовательностью чисел, разделенной шагом 0,5.

Смотрите также

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Связанные примеры

Больше о