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

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. Значения автоматически завершенных свойств зависят от свойств, которые явным образом передаются. Рассмотрите, например, StartTimes и EndTimes векторы. Начиная с 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.

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

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

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

Больше о