Структура опций ценообразования

Введение

MATLAB® Options структура обеспечивает дополнительные входы для большинства функций ценообразования. The Options структура

  • Описывает функции ценообразования, как использовать дерево процентных ставок для вычисления цен инструмента.

  • Определяет, какая дополнительная информация отображается в Командном окне вместе с ценами на приборы.

  • Сообщает функциям ценообразования, какой метод использовать в опциях барьера ценообразования.

Структура опций ценообразования в основном используется в ценообразовании финансовых производных на основе процентных ставок. Однако BarrierMethod поле в структуре позволяет использовать его и в ценовом барьере опций а также.

Вы предоставляете опции ценообразования в необязательном Options аргумент передан в функцию ценообразования. (См., например, bondbyhjm, bdtprice, barrierbycrr, barrierbyeqp, или barrierbyitt.)

Структура по умолчанию

Если вы не задаете Options аргумент в вызове функции ценообразования, функция использует структуру по умолчанию. Чтобы наблюдать структуру по умолчанию, используйте derivset без аргументов.

Options = derivset
 
Options = 
 
    Diagnostics: 'off'
       Warnings: 'on'
      ConstRate: 'on'
  BarrierMethod: 'unenhanced'

The Options структура имеет четыре поля: Diagnostics, Warnings, ConstRate, и BarrierMethod.

Поле диагностики

Diagnostics указывает, отображается ли дополнительная информация, если дерево изменено. Значение по умолчанию для этой опции 'off'. Если Diagnostics установлено в 'on' и ConstRate установлено в 'off'функции расчета цены отображают информацию, такую как число узлов на последнем уровне дерева, сгенерированного для целей расчета цены.

Поле предупреждений

Warnings указывает, отображать ли предупреждающие сообщения, когда дерево входа недостаточно для точной оценки инструментов. Значение по умолчанию для этой опции 'on'. Если оба ConstRate и Warnings являются 'on'предупреждение отображается, если у любого из инструментов в вход портфеле есть дата денежного потока между древовидными датами. Если ConstRate является 'off', и Warnings является 'on'предупреждение отображается, если дерево изменено так, чтобы оно совпадало с датами денежного потока в инструментах портфеля.

Поле ConstRate

ConstRate указывает, следует ли принимать процентные ставки постоянными между древовидными датами. По умолчанию эта опция 'on', что не является произвольным предположением. Таким образом, функции ценообразования возвращают приблизительную цену для инструментов с денежными потоками между древовидными датами. Инструменты, показывающие денежные потоки только на узлах дерева, не затронуты этой опцией и возвращают точные (без арбитража) цены. Когда ConstRate является 'off'Функция ценообразования находит даты денежного потока для всех инструментов в портфеле. Если эти денежные потоки не совпадают точно с древовидными датами, создается новое дерево, которое используется для расчета цены. Это новое дерево имеет те же спецификации волатильности и начальной скорости дерева входа, но содержит узлы дерева для каждой даты, в которой по крайней мере один инструмент в портфеле имеет денежный поток. Следует иметь в виду, что число узлов в дереве растет экспоненциально с количеством древовидных дат. Итак, настройка ConstRate 'off' значительно увеличивает потребности компьютера в памяти и процессорах.

Поле BarrierMethod

При использовании биномиальных деревьев для ценового барьера опций это может потребовать многих шагов дерева для достижения точного результата, когда узлы дерева не совпадают с уровнем барьера. С BarrierMethod Тулбокс обеспечивает способ улучшения, который повышает точность результатов без необходимости использования больших деревьев.

The BarrierMethod для поля может быть задано значение 'unenhanced' (по умолчанию) или 'interp'. Если вы задаете 'unenhanced'Вычисление коррекции не используется. В противном случае, если вы задаете 'interp'тулбокс обеспечивает расширенную оценку путем интерполяции между узлами на контурах барьера.

Вы задаете метод барьера в последнем входном параметре, Options, функций barrierbycrr, barrierbyeqp, barrierbyitt, crrprice, eqpprice, ittprice, crrsens, eqpsens, или ittsens. Options - структура, которую вы создаете с функцией derivset. Использование derivset, вы задаете, использовать ли расширенный или незавершенный метод.

Для получения дополнительной информации об этом алгоритме см. Derman, E., I. Kani, D. Ergener и I. Bardhan, «Расширенные численные методы для опций с барьерами», Financial Analysts Journal, (Nov. - Dec. 1995), pp. 65-74.

Настройка структуры

Настройте структуру Options, передав пары имя/значение свойства в 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]

Как указано в последнем предупреждении, поскольку денежные потоки облигации не совпадали с древовидными датами, для ценообразования облигации было создано новое дерево. Этот метод ценообразования возвращает более точные результаты, поскольку он гарантирует, что процесс свободен от арбитража. Это также занимает больше времени, чтобы вычислить и требует больше памяти. The 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

См. также

| | | |

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

Подробнее о