Financial Instruments Toolbox™ включает набор функций, чтобы инкапсулировать информацию о термине процентной ставки в одну структуру. Эти функции представляют удобный способ группировать всю информацию, связанную с терминами процентной ставки в распространенный формат и разрешить взаимозависимости, когда один или несколько параметров изменяется. Для получения информации см.:
Создание или Изменение (intenvset) для обсуждения того, как создать или изменить процентную ставку, называют структуру (RateSpec
) использование intenvset
функция
Obtaining Specific Properties (intenvget) для обсуждения того, как извлечь определенные свойства из RateSpec
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.
instbond
| instcap
| instcf
| instfixed
| instfloat
| instfloor
| instoptbnd
| instoptembnd
| instoptfloat
| instoptemfloat
| instrangefloat
| instswap
| instswaption
| intenvset
| bondbyzero
| cfbyzero
| fixedbyzero
| floatbyzero
| intenvprice
| intenvsens
| swapbyzero
| floatmargin
| floatdiscmargin
| hjmtimespec
| hjmtree
| hjmvolspec
| bondbyhjm
| capbyhjm
| cfbyhjm
| fixedbyhjm
| floatbyhjm
| floorbyhjm
| hjmprice
| hjmsens
| mmktbyhjm
| oasbyhjm
| optbndbyhjm
| optfloatbyhjm
| optembndbyhjm
| optemfloatbyhjm
| rangefloatbyhjm
| swapbyhjm
| swaptionbyhjm
| bdttimespec
| bdttree
| bdtvolspec
| bdtprice
| bdtsens
| bondbybdt
| capbybdt
| cfbybdt
| fixedbybdt
| floatbybdt
| floorbybdt
| mmktbybdt
| oasbybdt
| optbndbybdt
| optfloatbybdt
| optembndbybdt
| optemfloatbybdt
| rangefloatbybdt
| swapbybdt
| swaptionbybdt
| hwtimespec
| hwtree
| hwvolspec
| bondbyhw
| capbyhw
| cfbyhw
| fixedbyhw
| floatbyhw
| floorbyhw
| hwcalbycap
| hwcalbyfloor
| hwprice
| hwsens
| oasbyhw
| optbndbyhw
| optfloatbyhw
| optembndbyhw
| optemfloatbyhw
| rangefloatbyhw
| swapbyhw
| swaptionbyhw
| bktimespec
| bktree
| bkvolspec
| bkprice
| bksens
| bondbybk
| capbybk
| cfbybk
| fixedbybk
| floatbybk
| floorbybk
| oasbybk
| optbndbybk
| optfloatbybk
| optembndbybk
| optemfloatbybk
| rangefloatbybk
| swapbybk
| swaptionbybk
| capbyblk
| floorbyblk
| swaptionbyblk