Вычислите цену за инструмент акции с FiniteDifference
калькулятор цен
[
вычисляет инструментальную цену и связанную информацию о ценах на основе объекта Price
,PriceResult
] = price(inpPricer
,inpInstrument
)inpPricer
оценки и инструментальный объект
inpInstrument
.
[
добавляет дополнительный аргумент, чтобы задать чувствительность.Price
,PriceResult
] = price(___,inpSensitivity
)
Этот пример показывает рабочий процесс, чтобы оценить Barrier
инструмент, когда вы используете BlackScholes
модель и FiniteDifference
метод ценообразования.
Создайте Barrier
Инструментальный объект
Используйте fininstrument
создать Barrier
инструментальный объект.
BarrierOpt = fininstrument("Barrier",'Strike',105,'ExerciseDate',datetime(2019,1,1),'OptionType',"call",'ExerciseStyle',"american",'BarrierType',"DO",'BarrierValue',40,'Name',"barrier_option")
BarrierOpt = Barrier with properties: OptionType: "call" Strike: 105 BarrierType: "do" BarrierValue: 40 Rebate: 0 ExerciseStyle: "american" ExerciseDate: 01-Jan-2019 Name: "barrier_option"
Создайте BlackScholes
Объект модели
Используйте finmodel
создать BlackScholes
объект модели.
BlackScholesModel = finmodel("BlackScholes",'Volatility',0.30)
BlackScholesModel = BlackScholes with properties: Volatility: 0.3000 Correlation: 1
Создайте ratecurve
Объект
Создайте плоский ratecurve
объект с помощью ratecurve
.
Settle = datetime(2018,1,1); Maturity = datetime(2023,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-2023 Rates: 0.0350 Settle: 01-Jan-2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте FiniteDifference
Объект калькулятора цен
Используйте finpricer
создать FiniteDifference
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("FiniteDifference",'Model',BlackScholesModel,'DiscountCurve',myRC,'SpotPrice',100)
outPricer = FiniteDifference with properties: DiscountCurve: [1x1 ratecurve] Model: [1x1 finmodel.BlackScholes] SpotPrice: 100 GridProperties: [1x1 struct] DividendType: "continuous" DividendValue: 0
Цена Barrier
Инструмент
Используйте price
вычислить цену и чувствительность для Barrier
инструмент.
[Price, outPR] = price(outPricer,BarrierOpt,["all"])
Price = 11.3230
outPR = priceresult with properties: Results: [1x7 table] PricerData: [1x1 struct]
outPR.Results
ans=1×7 table
Price Delta Gamma Lambda Theta Rho Vega
______ _______ ______ ______ _______ ______ ______
11.323 0.54126 0.0132 4.7802 -7.4408 42.766 39.627
inpPricer
— Объект PricerFiniteDifference
объектОбъект Pricer в виде скалярного FiniteDifference
объект калькулятора цен. Использование finpricer
создать FiniteDifference
объект калькулятора цен.
Типы данных: object
inpInstrument
— Объект InstrumentVanilla
возразите | Barrier
возразите | DoubleBarrier
возразите | ConvertibleBond
объектОбъект Instrument в виде скаляра или вектора из Vanilla
, Barrier
, DoubleBarrier
, или ConvertibleBond
инструментальные объекты. Использование fininstrument
создать Vanilla
, Barrier
, DoubleBarrier
, или ConvertibleBond
инструментальные объекты.
Типы данных: object
inpSensitivity
— Список чувствительности, чтобы вычислить[ ]
(значение по умолчанию) | массив строк со значениями "Price"
\delta
\Gamma
, "Vega"
\rho
, "Theta"
\lambda
, "Vegalt"
, и "All"
| массив ячеек из символьных векторов со значениями 'Price'
\delta
\Gamma
\lambda
, 'Vegalt'
, 'Vega'
\rho
, 'Theta'
, и 'All'
(Необязательно) Список чувствительности, чтобы вычислить в виде NOUT
- 1
или 1
- NOUT
массив ячеек из символьных векторов или массив строк с поддерживаемыми значениями.
inpSensitivity = {'All'}
или inpSensitivity = ["All"]
указывает, что выходом является 'Delta'
\Gamma
, 'Vega'
, 'Vegalt'
\lambda
\rho
, 'Theta'
, и 'Price'
. Это совпадает с определением inpSensitivity
включать каждую чувствительность.
Примечание
Когда вы оцениваете Barrier
или ConvertibleBond
инструменты с помощью BlackScholes
модель, 'Vegalt'
не поддерживается.
Пример: inpSensitivity = {'delta','gamma','vega','vegalt','rho','lambda','theta','price'}
Поддерживаемая чувствительность зависит от inpInstrument
.
inpInstrument | Поддерживаемая чувствительность |
---|---|
Vanilla , | 'delta','gamma','vega','vegalt','rho','lambda','theta','price' |
Barrier | 'delta','gamma','vega','rho','lambda','theta','price' |
DoubleBarrier | 'delta','gamma','vega','vegalt','rho','lambda','theta','price' |
ConvertibleBond | 'delta','gamma','vega','rho','lambda','theta','price' |
Типы данных: string
| cell
Price
— Инструментальная ценаИнструментальная цена, возвращенная как числовое.
PriceResult
— Ценовой результатPriceResult
объектЦеновой результат, возвращенный как PriceResult
объект. Объект имеет следующие поля:
PriceResult.Results
— Таблица результатов, которая включает чувствительность (если вы задаете inpSensitivity
)
PriceResult.PricerData
— Структура для данных о калькуляторе цен
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.