Вычислите цену за инструмент акции с AssetTree калькулятор цен
[ вычисляет инструментальную цену акции и связанную информацию о ценах на основе объекта Price,PriceResult] = price(inpPricer,inpInstrument)inpPricer оценки и инструментальный объект inpInstrument.
[ добавляет дополнительный аргумент, чтобы задать чувствительность в дополнение к обязательным аргументам в предыдущем синтаксисе.Price,PriceResult] = price(___,inpSensitivity)
Этот пример показывает рабочий процесс, чтобы оценить Vanilla инструмент, когда вы используете BlackScholes модель и AssetTree метод ценообразования.
Создайте Vanilla Инструментальный объект
Используйте fininstrument создать Vanilla инструментальный объект.
VanillaOpt = fininstrument("Vanilla",'ExerciseDate',datetime(2019,5,1),'Strike',29,'OptionType',"put",'ExerciseStyle',"european",'Name',"vanilla_option")
VanillaOpt =
Vanilla with properties:
OptionType: "put"
ExerciseStyle: "european"
ExerciseDate: 01-May-2019
Strike: 29
Name: "vanilla_option"
Создайте BlackScholes Объект модели
Используйте finmodel создать BlackScholes объект модели.
BlackScholesModel = finmodel("BlackScholes",'Volatility',0.25)
BlackScholesModel =
BlackScholes with properties:
Volatility: 0.2500
Correlation: 1
Создайте ratecurve Объект
Создайте плоский ratecurve объект с помощью ratecurve.
Settle = datetime(2018,1,1); Maturity = datetime(2020,1,1); Rate = 0.035; myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',1)
myRC =
ratecurve with properties:
Type: "zero"
Compounding: -1
Basis: 1
Dates: 01-Jan-2020
Rates: 0.0350
Settle: 01-Jan-2018
InterpMethod: "linear"
ShortExtrapMethod: "next"
LongExtrapMethod: "previous"
Создайте AssetTree Объект калькулятора цен
Используйте finpricer создать AssetTree объект калькулятора цен для дерева акции LR и использования ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
LRPricer = finpricer("AssetTree",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',30,'PricingMethod',"LeisenReimer",'Maturity',datetime(2019,5,1),'NumPeriods',15)
LRPricer =
LRTree with properties:
InversionMethod: PP1
Strike: 30
Tree: [1x1 struct]
NumPeriods: 15
Model: [1x1 finmodel.BlackScholes]
DiscountCurve: [1x1 ratecurve]
SpotPrice: 30
DividendType: "continuous"
DividendValue: 0
TreeDates: [02-Feb-2018 08:00:00 06-Mar-2018 16:00:00 ... ]
Цена Vanilla Инструмент
Используйте price вычислить цену и чувствительность для Vanilla инструмент.
[Price, outPR] = price(LRPricer,VanillaOpt,"all")Price = 2.2542
outPR =
priceresult with properties:
Results: [1x7 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×7 table
Price Delta Gamma Vega Lambda Rho Theta
______ ________ ________ ______ ______ _______ ________
2.2542 -0.33628 0.044039 12.724 -4.469 -16.433 -0.76073
inpInstrument — Объект InstrumentVanilla возразите | Barrier возразите | Asian возразите | Lookback объектОбъект Instrument в виде скаляра или вектора из ранее созданных инструментальных объектов. Создайте инструментальное использование объектов fininstrument. Следующие инструментальные объекты поддерживаются:
Типы данных: object
inpSensitivity — Список чувствительности, чтобы вычислить[ ]
(значение по умолчанию) | массив строк со значениями "Price"\delta\Gamma, "Vega", "Theta"\rho\lambda, и "All" | массив ячеек из символьных векторов со значениями 'Price'\delta\Gamma, 'Vega', 'Theta'\rho\lambda, и 'All'(Необязательно) Список чувствительности, чтобы вычислить в виде NOUT- 1 или 1- NOUT массив ячеек из символьных векторов или массив строк с возможными значениями 'Price'\delta\Gamma, 'Vega', 'Theta'\rho\lambda, и 'All'.
inpSensitivity = {'All'} или inpSensitivity = ["All"] указывает, что выходом является 'Delta'\Gamma, 'Vega', 'Theta'\rho\lambda, и 'Price'. Используя этот синтаксис совпадает с определением inpSensitivity включать каждую чувствительность.
| inpInstrument | Поддерживаемая чувствительность |
|---|---|
Asian | {'delta','gamma','vega','theta','rho','lambda','price'} |
Barrier | {'delta','gamma','vega','theta','rho','lambda','price'} |
Lookback | {'delta','gamma','vega','theta','rho','lambda','price'} |
Vanilla | {'delta','gamma','vega','theta','rho','lambda','price'} |
Примечание
Чувствительность вычисляется на основе сдвигов выражения 1 пункта, где ShiftValue = 1/10000. Вся чувствительность возвращена как долларовая чувствительность. Чтобы найти чувствительность на доллар, разделите чувствительность на их соответствующую инструментальную цену.
Пример: inpSensitivity = {'delta','gamma','vega','price'}
Типы данных: string | cell
Price — Инструментальная ценаИнструментальная цена, возвращенная как числовое.
PriceResult — Ценовой результатPriceResult объектЦеновой результат, возвращенный как PriceResult объект. Объект имеет следующие поля:
PriceResult.Results — Таблица результатов, которая включает чувствительность (если вы задаете inpSensitivity)
PriceResult.PricerData — Структура для данных о калькуляторе цен, которые зависят от инструмента, который оценивается
Asian и Lookback имейте пустое ([]) PricerData поле, потому что функции оценки для этих инструментов не могут однозначно присвоить цену никакому узлу, но корневому узлу.
Vanilla и Barrier имейте следующие разделяемые поля для PriceResult.PricerData.PriceTree:
PTree содержит чистые цены.
ExTree содержит массивы индикатора осуществления. Каждым элементом массива ячеек является массив где 1 указывает, что опция осуществлена и 0 указывает, что опция не осуществлена.
dObs содержит дату каждого уровня дерева.
tObs содержит времена наблюдения.
Probs содержит массивы вероятности. Каждый элемент массива ячеек содержит, середина и вероятности перехода вниз для каждого узла уровня.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.