exponenta event banner

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

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.

См. также

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

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

Подробнее