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

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.

См. также

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

Похожие примеры

Подробнее о