Функции расчета цен портфеля crrprice, eqpprice, и ittprice рассчитать цену любого набора поддерживаемых инструментов на основе двоичного дерева цен акций, подразумеваемого триномиального дерева цен или стандартного триномиального дерева. Эти функции позволяют рассчитать цены на следующие виды инструментов:
Синтаксис вызова функции crrprice является:
[Price, PriceTree] = crrprice(CRRTree, InstSet, Options)
Синтаксис для eqpprice является:
[Price, PriceTree] = eqpprice(EQPTree, InstSet, Options)
Синтаксис для ittprice является:
Price = ittprice(ITTTree, ITTInstSet, Options)
Синтаксис для sttprice является:
[Price, PriceTree] = sttprice(STTTree, InstSet, Name, Value)
Эти функции требуют двух входных аргументов: дерево цен акций и набор инструментов, InstSetи разрешить третий необязательный аргумент.
CRRTree - дерево цен акций CRR, созданное с помощью crrtree. EQPTree - дерево равных вероятностей цен акций, созданное с помощью eqptree. ITTTree - дерево цен акций ITT, созданное с помощью itttree. STTTree является стандартным триномиальным деревом цен акций, созданным с помощью stttree. Сведения о создании этих структур см. в разделах Создание двоичных деревьев Equity и Создание подразумеваемых триномиальных деревьев.
InstSet - структура, представляющая набор инструментов, которые должны оцениваться независимо с использованием модели.
Можно ввести третий необязательный аргумент, Options, используется при ценообразовании опционов барьера. Дополнительные сведения см. в разделе Структура вариантов ценообразования.
Эти функции расчета цен внутренне классифицируют инструменты и вызывают соответствующую отдельную функцию расчета цен инструментов для каждого из видов инструментов. Функции расчета цены CRR: asianbycrr, barrierbycrr, compoundbycrr, lookbackbycrr, и optstockbycrr. Аналогичный набор функций существует для ценообразования EQP, ITT и STT. Эти функции также можно использовать непосредственно для вычисления цены наборов инструментов одного типа. Для получения дополнительной информации см. справочные страницы по этим отдельным функциям.
Рассмотрим следующий пример, в котором используются данные портфеля и цены акций в MAT-файле. deriv.mat включен в набор инструментов. Загрузите данные в рабочую область MATLAB ®.
load deriv.mat
Использование MATLAB whos для отображения списка переменных, загруженных из MAT-файла.
Name Size Bytes Class Attributes BDTInstSet 1x1 27344 struct BDTTree 1x1 7322 struct BKInstSet 1x1 27334 struct BKTree 1x1 8532 struct CRRInstSet 1x1 21066 struct CRRTree 1x1 7086 struct EQPInstSet 1x1 21066 struct EQPTree 1x1 7086 struct HJMInstSet 1x1 27336 struct HJMTree 1x1 8334 struct HWInstSet 1x1 27334 struct HWTree 1x1 8532 struct ITTInstSet 1x1 21070 struct ITTTree 1x1 12660 struct STTInstSet 1x1 21070 struct STTTree 1x1 7782 struct ZeroInstSet 1x1 17458 struct ZeroRateSpec 1x1 2152 struct
CRRTree и CRRInstSet являются необходимыми входными аргументами для вызова функции crrprice.
Использовать instdisp для изучения набора инструментов, содержащихся в переменной CRRInstSet.
instdisp(CRRInstSet)
Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 1 OptStock call 105 01-Jan-2003 01-Jan-2005 1 Call1 10 2 OptStock put 105 01-Jan-2003 01-Jan-2006 0 Put1 5 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt BarrierSpec Barrier Rebate Name Quantity 3 Barrier call 105 01-Jan-2003 01-Jan-2006 1 ui 102 0 Barrier1 1 Index Type UOptSpec UStrike USettle UExerciseDates UAmericanOpt COptSpec CStrike CSettle CExerciseDates CAmericanOpt Name Quantity 4 Compound call 130 01-Jan-2003 01-Jan-2006 1 put 5 01-Jan-2003 01-Jan-2005 1 Compound1 3 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 5 Lookback call 115 01-Jan-2003 01-Jan-2006 0 Lookback1 7 6 Lookback call 115 01-Jan-2003 01-Jan-2007 0 Lookback2 9 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt AvgType AvgPrice AvgDate Name Quantity 7 Asian put 110 01-Jan-2003 01-Jan-2006 0 arithmetic NaN NaN Asian1 4 8 Asian put 110 01-Jan-2003 01-Jan-2007 0 arithmetic NaN NaN Asian2 6
Примечание
Из-за соображений пространства, составная опция выше (Index 4) был сжат в соответствии со страницей. instdisp отображает все составные поля опций на экране компьютера.
Набор приборов содержит восемь приборов:
Два варианта ванили (Call1, Put1)
Один вариант барьера (Barrier1)
Один составной вариант (Compound1)
Два варианта обратного просмотра (Lookback1, Lookback2)
Два азиатских варианта (Asian1, Asian2)
Каждый инструмент имеет соответствующий индекс, который определяет цены инструмента в векторе цен, возвращаемом crrprice.
Теперь используйте crrprice для расчета цены каждого инструмента в наборе инструментов.
Price = crrprice(CRRTree, CRRInstSet)
Price =
8.2863
2.5016
12.1272
3.3241
7.6015
11.7772
4.1797
3.4219
Загрузите данные в рабочую область MATLAB.
load deriv.mat
Использование MATLAB whos для отображения списка переменных, загруженных из MAT-файла.
Name Size Bytes Class Attributes BDTInstSet 1x1 27344 struct BDTTree 1x1 7322 struct BKInstSet 1x1 27334 struct BKTree 1x1 8532 struct CRRInstSet 1x1 21066 struct CRRTree 1x1 7086 struct EQPInstSet 1x1 21066 struct EQPTree 1x1 7086 struct HJMInstSet 1x1 27336 struct HJMTree 1x1 8334 struct HWInstSet 1x1 27334 struct HWTree 1x1 8532 struct ITTInstSet 1x1 21070 struct ITTTree 1x1 12660 struct STTInstSet 1x1 21070 struct STTTree 1x1 7782 struct ZeroInstSet 1x1 17458 struct ZeroRateSpec 1x1 2152 struct
EQPTree и EQPInstSet являются входными аргументами, необходимыми для вызова функции eqpprice.
Используйте команду instdisp для изучения набора инструментов, содержащихся в переменной EQPInstSet.
instdisp(EQPInstSet)
Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 1 OptStock call 105 01-Jan-2003 01-Jan-2005 1 Call1 10 2 OptStock put 105 01-Jan-2003 01-Jan-2006 0 Put1 5 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt BarrierSpec Barrier Rebate Name Quantity 3 Barrier call 105 01-Jan-2003 01-Jan-2006 1 ui 102 0 Barrier1 1 Index Type UOptSpec UStrike USettle UExerciseDates UAmericanOpt COptSpec CStrike CSettle CExerciseDates CAmericanOpt Name Quantity 4 Compound call 130 01-Jan-2003 01-Jan-2006 1 put 5 01-Jan-2003 01-Jan-2005 1 Compound1 3 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 5 Lookback call 115 01-Jan-2003 01-Jan-2006 0 Lookback1 7 6 Lookback call 115 01-Jan-2003 01-Jan-2007 0 Lookback2 9 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt AvgType AvgPrice AvgDate Name Quantity 7 Asian put 110 01-Jan-2003 01-Jan-2006 0 arithmetic NaN NaN Asian1 4 8 Asian put 110 01-Jan-2003 01-Jan-2007 0 arithmetic NaN NaN Asian2 6 >> instdisp(EQPInstSet) Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 1 OptStock call 105 01-Jan-2003 01-Jan-2005 1 Call1 10 2 OptStock put 105 01-Jan-2003 01-Jan-2006 0 Put1 5 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt BarrierSpec Barrier Rebate Name Quantity 3 Barrier call 105 01-Jan-2003 01-Jan-2006 1 ui 102 0 Barrier1 1 Index Type UOptSpec UStrike USettle UExerciseDates UAmericanOpt COptSpec CStrike CSettle CExerciseDates CAmericanOpt Name Quantity 4 Compound call 130 01-Jan-2003 01-Jan-2006 1 put 5 01-Jan-2003 01-Jan-2005 1 Compound1 3 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 5 Lookback call 115 01-Jan-2003 01-Jan-2006 0 Lookback1 7 6 Lookback call 115 01-Jan-2003 01-Jan-2007 0 Lookback2 9 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt AvgType AvgPrice AvgDate Name Quantity 7 Asian put 110 01-Jan-2003 01-Jan-2006 0 arithmetic NaN NaN Asian1 4 8 Asian put 110 01-Jan-2003 01-Jan-2007 0 arithmetic NaN NaN Asian2 6
Примечание
Из-за соображений пространства, составная опция выше (Index 4) был сжат в соответствии со страницей. instdisp отображает все составные поля опций на экране компьютера.
Набор приборов содержит восемь приборов:
Два варианта ванили (Call1, Put1)
Один вариант барьера (Barrier1)
Один составной вариант (Compound1)
Два варианта обратного просмотра (Lookback1, Lookback2)
Два азиатских варианта (Asian1, Asian2)
Каждый инструмент имеет соответствующий индекс, который определяет цены инструмента в векторе цен, возвращаемом eqpprice.
Теперь используйте eqpprice для расчета цены каждого инструмента в наборе инструментов.
Price = eqpprice(EQPTree, EQPInstSet)
Price =
8.4791
2.6375
12.2632
3.5091
8.7941
12.9577
4.7444
3.9178Рассмотрим следующий пример, в котором используются данные портфеля и цены акций в MAT-файле. deriv.mat включен в набор инструментов. Загрузите данные в рабочую область MATLAB.
load deriv.mat
Использование MATLAB whos для отображения списка переменных, загруженных из MAT-файла.
Name Size Bytes Class Attributes BDTInstSet 1x1 27344 struct BDTTree 1x1 7322 struct BKInstSet 1x1 27334 struct BKTree 1x1 8532 struct CRRInstSet 1x1 21066 struct CRRTree 1x1 7086 struct EQPInstSet 1x1 21066 struct EQPTree 1x1 7086 struct HJMInstSet 1x1 27336 struct HJMTree 1x1 8334 struct HWInstSet 1x1 27334 struct HWTree 1x1 8532 struct ITTInstSet 1x1 21070 struct ITTTree 1x1 12660 struct STTInstSet 1x1 21070 struct STTTree 1x1 7782 struct ZeroInstSet 1x1 17458 struct ZeroRateSpec 1x1 2152 struct
ITTTree и ITTInstSet являются входными аргументами, необходимыми для вызова функции ittprice. Используйте команду instdisp для изучения набора инструментов, содержащихся в переменной ITTInstSet.
instdisp(ITTInstSet)
Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 1 OptStock call 95 01-Jan-2006 31-Dec-2008 1 Call1 10 2 OptStock put 80 01-Jan-2006 01-Jan-2010 0 Put1 4 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt BarrierSpec Barrier Rebate Name Quantity 3 Barrier call 85 01-Jan-2006 31-Dec-2008 1 ui 115 0 Barrier1 1 Index Type UOptSpec UStrike USettle UExerciseDates UAmericanOpt COptSpec CStrike CSettle CExerciseDates CAmericanOpt Name Quantity 4 Compound call 99 01-Jan-2006 01-Jan-2010 1 put 5 01-Jan-2006 01-Jan-2010 1 Compound1 3 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 5 Lookback call 85 01-Jan-2006 01-Jan-2008 0 Lookback1 7 6 Lookback call 85 01-Jan-2006 01-Jan-2010 0 Lookback2 9 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt AvgType AvgPrice AvgDate Name Quantity 7 Asian call 55 01-Jan-2006 01-Jan-2008 0 arithmetic NaN NaN Asian1 5 8 Asian call 55 01-Jan-2006 01-Jan-2010 0 arithmetic NaN NaN Asian2 7
Набор приборов содержит восемь приборов:
Два варианта ванили (Call1, Put1)
Один вариант барьера (Barrier1)
Один составной вариант (Compound1)
Два варианта обратного просмотра (Lookback1, Lookback2)
Два азиатских варианта (Asian1, Asian2)
Каждый инструмент имеет соответствующий индекс, который определяет цены инструмента в векторе цен, возвращаемом ittprice.
Теперь используйте ittprice для расчета цены каждого инструмента в наборе инструментов.
Price = ittprice(ITTTree, ITTInstSet)
Price =
1.6506
10.6832
2.4074
3.2294
0.5426
6.1845
3.2052
6.6074Рассмотрим следующий пример, в котором используются данные портфеля и цены акций в MAT-файле. deriv.mat включен в набор инструментов. Загрузите данные в рабочую область MATLAB.
load deriv.mat
Использование MATLAB whos для отображения списка переменных, загруженных из MAT-файла.
Name Size Bytes Class Attributes BDTInstSet 1x1 27344 struct BDTTree 1x1 7322 struct BKInstSet 1x1 27334 struct BKTree 1x1 8532 struct CRRInstSet 1x1 21066 struct CRRTree 1x1 7086 struct EQPInstSet 1x1 21066 struct EQPTree 1x1 7086 struct HJMInstSet 1x1 27336 struct HJMTree 1x1 8334 struct HWInstSet 1x1 27334 struct HWTree 1x1 8532 struct ITTInstSet 1x1 21070 struct ITTTree 1x1 12660 struct STTInstSet 1x1 21070 struct STTTree 1x1 7782 struct ZeroInstSet 1x1 17458 struct ZeroRateSpec 1x1 2152 struct
STTTree и STTInstSet являются входными аргументами, необходимыми для вызова функции sttprice. Используйте команду instdisp для изучения набора инструментов, содержащихся в переменной STTInstSet.
instdisp(STTInstSet)
Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 1 OptStock call 100 01-Jan-2009 01-Jan-2011 1 Call1 10 2 OptStock put 80 01-Jan-2009 01-Jan-2012 0 Put1 5 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt BarrierSpec Barrier Rebate Name Quantity 3 Barrier call 105 01-Jan-2009 01-Jan-2012 1 ui 115 0 Barrier1 1 Index Type UOptSpec UStrike USettle UExerciseDates UAmericanOpt COptSpec CStrike CSettle CExerciseDates CAmericanOpt Name Quantity 4 Compound call 95 01-Jan-2009 01-Jan-2012 1 put 5 01-Jan-2009 01-Jan-2011 1 Compound1 3 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt Name Quantity 5 Lookback call 90 01-Jan-2009 01-Jan-2012 0 Lookback1 7 6 Lookback call 95 01-Jan-2009 01-Jan-2013 0 Lookback2 9 Index Type OptSpec Strike Settle ExerciseDates AmericanOpt AvgType AvgPrice AvgDate Name Quantity 7 Asian call 100 01-Jan-2009 01-Jan-2012 0 arithmetic NaN NaN Asian1 4 8 Asian call 100 01-Jan-2009 01-Jan-2013 0 arithmetic NaN NaN Asian2 6
Набор приборов содержит восемь приборов:
Два варианта ванили (Call1, Put1)
Один вариант барьера (Barrier1)
Один составной вариант (Compound1)
Два варианта обратного просмотра (Lookback1, Lookback2)
Два азиатских варианта (Asian1, Asian2)
Каждый инструмент имеет соответствующий индекс, который определяет цены инструмента в векторе цен, возвращаемом sttprice.
Теперь используйте sttprice для расчета цены каждого инструмента в наборе инструментов.
Price = sttprice(STTTree, STTInstSet)
Price =
4.5025
3.0603
3.7977
1.7090
11.7296
12.9120
1.6905
2.6203Цены в векторе выпуска Price соответствуют ценам в нулевое время наблюдения (tObs = 0), которая определяется как дата оценки дерева акций. Индексация прибора в пределах Price совпадает с индексацией в пределах InstSet.
В примере CRR цены в Price вектор соответствует приборам в этом порядке.
InstNames = instget(CRRInstSet, 'FieldName','Name')
InstNames = Call1 Put1 Barrier1 Compound1 Lookback1 Lookback2 Asian1 Asian2
Итак, в Price вектор, четвертый элемент, 3.3241, представляет собой цену четвертого инструмента (Compound1) и шестой элемент, 11.7772, представляет собой цену шестого инструмента (Lookback2).
В примере ITT цены в Price вектор соответствует приборам в этом порядке.
InstNames = instget(ITTInstSet, 'FieldName','Name')
InstNames = Call1 Put1 Barrier1 Compound1 Lookback1 Lookback2 Asian1 Asian2
Итак, в Price вектор, первый элемент, 1.650, представляет цену первого инструмента (Call1), а восьмой элемент, 6,607, представляет цену восьмого инструмента (Asian2).
Если вызывается функция расчета цены с двумя аргументами вывода, например:
[Price, PriceTree] = crrprice(CRRTree, CRRInstSet)
создается древовидная структура цен вместе с информацией о ценах.
Эта структура дерева цен PriceTree содержит всю информацию о ценах.
PriceTree =
FinObj: 'BinPriceTree'
PTree: {[8x1 double] [8x2 double] [8x3 double] [8x4 double] [8x5 double]}
tObs: [0 1 2 3 4]
dObs: [731582 731947 732313 732678 733043]Первое поле этой структуры, FinObjуказывает, что эта структура представляет дерево цен. Второе поле, PTree, - дерево, держащее цены на инструменты в каждом узле дерева. Наконец, третье и четвертое поля, tObs и dObs, представляют время наблюдения и дату каждого уровня PTree, с tObs использование единиц в терминах периодов компаундирования.
С помощью интерфейса командной строки можно выполнить непосредственную проверку PriceTree.PTree, поле в пределах PriceTree структура, содержащая дерево цен с векторами цен в каждом штате. Первый узел представляет tObs = 0, соответствующее дате оценки.
PriceTree.PTree{1}ans = 8.2863 2.5016 12.1272 3.3241 7.6015 11.7772 4.1797 3.4219
С помощью этого интерфейса можно наблюдать цены для всех инструментов в портфеле в определенное время.
Функция eqpprice также возвращает дерево цен, которое можно проверить таким же образом.
Если вызывается функция расчета цены с двумя аргументами вывода, например:
[Price, PriceTree] = ittprice(ITTTree, ITTInstSet)
создается древовидная структура цен вместе с информацией о ценах.
Эта структура дерева цен PriceTree содержит всю информацию о ценах.
PriceTree =
FinObj: 'TrinPriceTree'
PTree: {[8x1 double] [8x3 double] [8x5 double] [8x7 double] [8x9 double]}
tObs: [0 1 2 3 4]
dObs: [732678 733043 733408 733773 734139]Первое поле этой структуры, FinObjуказывает, что эта структура представляет триномиальное дерево цен. Второе поле, PTree - дерево, в котором хранятся цены на инструменты в каждом узле дерева. Наконец, третье и четвертое поля, tObs и dObs, представляют время наблюдения и дату каждого уровня PTree, с tObs использование единиц в терминах периодов компаундирования.
С помощью интерфейса командной строки можно выполнить непосредственную проверку PriceTree.PTree, поле в пределах PriceTree структура, содержащая дерево цен с векторами цен в каждом штате. Первый узел представляет tObs = 0, соответствующее дате оценки.
PriceTree.PTree{1}ans =
1.6506
10.6832
2.4074
3.2294
0.5426
6.1845
3.2052
6.6074С помощью этого интерфейса можно наблюдать цены для всех инструментов в портфеле в определенное время.
Параметры поиска и азиатские параметры зависят от пути, и, таким образом, для любого узла, кроме корневого, не существует уникальных цен. Таким образом, соответствующие значения для опции поиска и азиатской опции в дереве цен устанавливаются как NaN, единственным исключением является корневой узел. Это становится очевидным, если изучить цены во втором узле (tobs = 1) дерева цен CRR:
PriceTree.PTree{2}ans =
11.9176 0
0.9508 7.1914
16.4600 2.6672
2.5896 5.0000
NaN NaN
NaN NaN
NaN NaN
NaN NaN
Изучение цен во втором узле (tobs = 1) дерева цен ITT отображает:
PriceTree.PTree{2} ans =
3.9022 0 0
6.3736 13.3743 22.1915
5.6914 0 0
2.7663 3.8594 5.0000
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
NaN NaN NaNМожно использовать функцию treeviewer для отображения графического представления дерева, позволяющего интерактивно анализировать цены и ставки на узлах дерева до наступления срока погашения. Графические представления деревьев CRR, EQP и LR эквивалентны деревьям Black-Derman-Toy (BDT), учитывая, что все они являются двоичными рекомбинирующими деревьями. Графические представления деревьев ITT и STT эквивалентны деревьям Hull-White (HW), учитывая, что все они являются триномиальными рекомбинирующими деревьями. Обзор использования дерева см. в разделе Графическое представление деревьев treeviewer с деревьями CRR, деревьями EQP, деревьями LR, деревьями ITT и деревьями STT и соответствующими деревьями цен опционов. Следуйте инструкциям для деревьев BDT.
asianbycrr | asianbyeqp | asianbyitt | asianbystt | barrierbycrr | barrierbyeqp | barrierbyitt | barrierbystt | compoundbycrr | compoundbyeqp | compoundbyitt | compoundbystt | crrprice | crrsens | crrtimespec | crrtree | eqpprice | eqpsens | eqptimespec | eqptree | instasian | instbarrier | instcompound | instlookback | instoptstock | ittprice | ittsens | itttimespec | itttree | lookbackbycrr | lookbackbyeqp | lookbackbyitt | lookbackbystt | lrtimespec | lrtree | optstockbycrr | optstockbyeqp | optstockbyitt | optstockbylr | optstockbystt | optstocksensbylr | stockspec | sttprice | sttsens | treepath | trintreepath