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