MATLAB®
Options
структура предоставляет дополнительный вход большинству функций оценки. Options
структура
Говорит функции оценки, как использовать дерево процентной ставки, чтобы вычислить цены на инструменты.
Определяет, какую дополнительную информацию Командное окно отображает наряду с ценами на инструменты.
Говорит функции оценки который метод использовать в оценке барьерных опционов.
Структура опций оценки, в основном, используется в оценке основанных на процентной ставке финансовых производных. Однако BarrierMethod
поле в структуре позволяет вам использовать его в оценке барьерных опционов акции также.
Вы предоставляете оценивать возможности в дополнительном Options
аргумент передал функции оценки. (См., например, bondbyhjm
, bdtprice
, barrierbycrr
, barrierbyeqp
, или barrierbyitt
.)
Если вы не задаете Options
аргумент в вызове функции оценки, функция использует структуру по умолчанию. Чтобы наблюдать структуру по умолчанию, использовать derivset
без любых аргументов.
Options = derivset
Options = Diagnostics: 'off' Warnings: 'on' ConstRate: 'on' BarrierMethod: 'unenhanced'
Options
структура имеет четыре поля: Diagnostics
, Warnings
, ConstRate
, и BarrierMethod
.
Diagnostics
указывает, отображена ли дополнительная информация, если дерево изменяется. Значением по умолчанию для этой опции является 'off'
. Если Diagnostics
установлен в 'on'
и ConstRate
установлен в 'off'
, оценка функционирует информация об отображении, такая как количество узлов на последнем уровне дерева, сгенерированного для оценки целей.
Warnings
указывает, отобразить ли предупреждающие сообщения, когда входное дерево не достаточно для того, чтобы точно оценить инструменты. Значением по умолчанию для этой опции является 'on'
. Если оба ConstRate
и Warnings
'on'
, предупреждение выведено, если какой-либо из инструментов во входном портфеле имеет дату потока наличности между древовидными датами. Если ConstRate
'off'
, и Warnings
'on'
, предупреждение выведено, если дерево изменяется, чтобы совпадать с датами потока наличности на инструментах в портфеле.
ConstRate
указывает, должны ли процентные ставки быть приняты постоянные между древовидными датами. По умолчанию этой опцией является 'on'
, который не является предположением без арбитражей. Таким образом, функции оценки возвращают аппроксимированную цену за инструменты, показывающие потоки наличности между древовидными датами. Инструменты, показывающие потоки наличности только на древовидных узлах, не затронуты этой опцией и возвращают точные цены (без арбитражей). Когда ConstRate
'off'
, функция оценки находит даты потока наличности всех инструментов в портфеле. Если эти потоки наличности не выравниваются точно с древовидными датами, новое дерево генерируется и используется для оценки. Это новое дерево показывает ту же энергозависимость и первоначальные технические требования уровня входного дерева, но содержит древовидные узлы для каждой даты, на которой по крайней мере один инструмент в портфеле имеет поток наличности. Следует иметь в виду, что количество узлов в дереве растет экспоненциально с количеством древовидных дат. Так, установка ConstRate
'off'
существенно увеличивает память и требования процессора на компьютер.
При использовании биномиальных деревьев, чтобы оценить барьерные опционы, это может потребовать, чтобы много деревьев продвинулись, чтобы достигнуть точного результата, когда древовидные узлы не выравниваются с уровнем барьера. С BarrierMethod
поле, тулбокс предоставляет метод улучшения, который улучшает точность результатов, не имея необходимость использовать большие деревья.
BarrierMethod
поле может быть установлено в 'unenhanced'
(значение по умолчанию) или 'interp'
. Если вы задаете 'unenhanced'
, никакое вычисление коррекции не используется. В противном случае, если вы задаете 'interp'
, тулбокс обеспечивает расширенную оценку путем интерполяции между узлами на контурах барьера.
Вы задаете метод барьера в последнем входном параметре, Options
, из функций barrierbycrr
, barrierbyeqp
, barrierbyitt
, crrprice
, eqpprice
, ittprice
, crrsens
, eqpsens
, или ittsens
Опции
структура, которую вы создаете с функцией derivset
. Используя derivset
, вы задаете, использовать ли расширенное или нерасширенный метод.
Для получения дополнительной информации об этом алгоритме, смотрите Дермена, E. i. Kani, Д. Эрдженер и я. Bardhan, “Улучшенные Численные методы для Опций с Барьерами”, Журнал Финансовых аналитиков, (ноябрь - декабрь 1995), стр 65–74.
Настройте Структуру опций передающим именем свойства / пары значения свойства к derivset
функция.
Как пример, рассмотрите Структуру опций с ConstRate
'off'
и Diagnostics
'on'
.
Options = derivset('ConstRate', 'off', 'Diagnostics', 'on')
Options = Diagnostics: 'on' Warnings: 'on' ConstRate: 'off' BarrierMethod: 'unenhanced'
Чтобы получить значение определенного свойства от Структуры опций, использовать derivget
.
CR = derivget(Options, 'ConstRate')
CR = Off
Примечание
Использование derivset
и derivget
создать Структуру опций. Эти функции, как гарантируют, останутся неизменными, в то время как реализация самой структуры может быть изменена в будущем.
Теперь наблюдайте эффекты установки ConstRate
'off'
. Получите древовидные даты из дерева HJM.
TreeDates = [HJMTree.TimeSpec.ValuationDate;... HJMTree.TimeSpec.Maturity]
TreeDates = 730486 730852 731217 731582 731947
datedisp(TreeDates)
01-Jan-2000 01-Jan-2001 01-Jan-2002 01-Jan-2003 01-Jan-2004
Все инструменты в HJMInstSet
обоснуйтесь 1 января 2000, и у всех есть потоки наличности один раз в год, за исключением второй связи, которая показывает период 2. Эта связь имеет потоки наличности два раза в год с любым потоком наличности, следовательно, падающим между древовидными датами. Можно извлечь эту связь из портфеля, чтобы выдержать сравнение, как его цена отличается установкой ConstRate
к 'on'
и 'off'
.
BondPort = instselect(HJMInstSet, 'Index', 2);
instdisp(BondPort)
Index Type CouponRate Settle Maturity Period Basis... 1 Bond 0.04 01-Jan-2000 01-Jan-2004 2 NaN...
Первая цена связь с ConstRate
'on'
(значение по умолчанию).
format long
[BondPrice, BondPriceTree] = hjmprice(HJMTree, BondPort)
Warning: Not all cash flows are aligned with the tree. Result will be approximated. BondPrice = 97.52801411736377 BondPriceTree = FinObj: 'HJMPriceTree' PBush: {1x5 cell} AIBush: {[0] [1x1x2 double] ... [1x4x2 double] [1x8 double]} tObs: [0 1 2 3 4]
Теперь повторно вычислите цену установки ConstRate
связи
'off'
.
OptionsNoCR = derivset('ConstR', 'off')
OptionsNoCR = Diagnostics: 'off' Warnings: 'on' ConstRate: 'off'
[BondPriceNoCR, BondPriceTreeNoCR] = hjmprice(HJMTree,... BondPort, OptionsNoCR)
Warning: Not all cash flows are aligned with the tree. Rebuilding tree. BondPriceNoCR = 97.53342361674437 BondPriceTreeNoCR = FinObj: 'HJMPriceTree' PBush: {1x9 cell} AIBush: {1x9 cell} tObs: [0 0.5000 1 1.5000 2 2.5000 3 3.5000 4]
Как обозначено в последнем предупреждении, потому что потоки наличности связи не выровнялись с древовидными датами, новое дерево было сгенерировано для оценки связи. Этот метод ценообразования возвращает более точные результаты, поскольку он гарантирует, что процесс без арбитражей. Это также занимает больше времени, чтобы вычислить и требует большей памяти. tObs
поле ценовой древовидной структуры указывает на увеличенное использование памяти. BondPriceTree.tObs
имеет только пять элементов, в то время как BondPriceTreeNoCR.tObs
имеет девять. В то время как это не может походить на значительные различия, они имеют сильное воздействие на количестве состояний в последнем узле.
size(BondPriceTree.PBush{end})
ans = 1 8
size(BondPriceTreeNoCR.PBush{end})
ans = 1 128
Различия становятся более очевидными путем исследования ценовых деревьев с treeviewer
.
treeviewer(BondPriceTree, BondPort)
treeviewer(BondPriceTreeNoCR, BondPort)
All = [Delta ./ Price, Gamma ./ Price, Vega ./ Price, Price]
All = -2.76 10.43 0.00 98.72 -3.56 16.64 -0.00 97.53 -166.18 13235.59 700.96 0.05 -2.76 10.43 0.00 98.72 -0.01 0.03 0 100.55 46.95 1090.63 14.91 6.28 -969.85 173969.77 1926.72 0.05 -76.39 287.00 0.00 3.690
instasian
| instbarrier
| instcompound
| instlookback
| instoptstock