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