Вычислите цену за инструмент акции с 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
содержит массивы вероятности. Каждый элемент массива ячеек содержит, середина и вероятности перехода вниз для каждого узла уровня.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.