Вычислите цену за инструмент процентной ставки с IRMonteCarlo
калькулятор цен
[
вычисляет инструментальную цену процентной ставки и связанную информацию о ценах на основе объекта Price
,PriceResult
] = price(inpPricer
,inpInstrument
)inpPricer
оценки и инструментальный объект
inpInstrument
.
[
добавляет дополнительный аргумент, чтобы задать чувствительность. Используйте этот синтаксис с комбинацией входных аргументов в предыдущем синтаксисе.Price
,PriceResult
] = price(___,inpSensitivity
)
Этот пример показывает рабочий процесс, чтобы оценить FixedBond
инструмент при использовании HullWhite
модель и IRMonteCarlo
метод ценообразования.
Создайте FixedBond
Инструментальный объект
Используйте fininstrument
создать FixedBond
инструментальный объект.
FixB = fininstrument("FixedBond","Maturity",datetime(2022,9,15),"CouponRate",0.05,'Name',"fixed_bond")
FixB = FixedBond with properties: CouponRate: 0.0500 Period: 2 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 15-Sep-2022 Name: "fixed_bond"
Создайте HullWhite
Объект модели
Используйте finmodel
создать HullWhite
объект модели.
HullWhiteModel = finmodel("HullWhite",'Alpha',0.32,'Sigma',0.49)
HullWhiteModel = HullWhite with properties: Alpha: 0.3200 Sigma: 0.4900
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
.
Settle = datetime(2019,1,1); Type = 'zero'; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = ratecurve with properties: Type: "zero" Compounding: -1 Basis: 0 Dates: [10x1 datetime] Rates: [10x1 double] Settle: 01-Jan-2019 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте IRMonteCarlo
Объект калькулятора цен
Используйте finpricer
создать IRMonteCarlo
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("IRMonteCarlo",'Model',HullWhiteModel,'DiscountCurve',myRC,'SimulationDates',ZeroDates)
outPricer = HWMonteCarlo with properties: NumTrials: 1000 RandomNumbers: [] DiscountCurve: [1x1 ratecurve] SimulationDates: [01-Jul-2019 01-Jan-2020 01-Jan-2021 ... ] Model: [1x1 finmodel.HullWhite]
Цена FixedBond
Инструмент
Используйте price
вычислить цену и чувствительность для FixedBond
инструмент.
[Price,outPR] = price(outPricer,FixB,["all"])
Price = 115.0303
outPR = priceresult with properties: Results: [1x4 table] PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Delta Gamma Vega
______ _______ ______ ____
115.03 -397.13 1430.4 0
inpPricer
— Объект PricerIRMonteCarlo
объектОбъект Pricer в виде ранее созданного IRMonteCarlo
объект калькулятора цен. Создайте использование объекта калькулятора цен finpricer
.
Типы данных: object
inpInstrument
— Объект InstrumentCap
возразите | Floor
возразите | Swaption
возразите | Swap
возразите | FixedBond
возразите | OptionEmbeddedFixedBond
возразите | OptionEmbeddedFloatBond
возразите | FixedBondOption
возразите | FloatBond
возразите | FloatBondOption
объектОбъект Instrument в виде скаляра или вектора из ранее созданных инструментальных объектов. Создайте инструментальное использование объектов fininstrument
. Следующие инструментальные объекты поддерживаются:
Типы данных: object
inpSensitivity
— Список чувствительности, чтобы вычислить[ ]
(значение по умолчанию) | массив строк со значениями, зависящими от калькулятора цен, возражает | массив ячеек из символьных векторов со значениями, зависящими от объекта калькулятора цен (Необязательно) Список чувствительности, чтобы вычислить в виде NOUT
- 1
или 1
- NOUT
массив ячеек из символьных векторов или массив строк.
Поддерживаемая чувствительность зависит от метода ценообразования.
inpInstrument | Поддерживаемая чувствительность |
---|---|
Cap | {'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.) |
Floor | {'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.) |
Swap | {'delta','gamma','vega','price'} |
Swaption | {'delta','gamma','vega','price'} |
FixedBond | {'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.) |
OptionEmbeddedFixedBond | {'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.) |
FixedBondOption | {'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.) |
FloatBond | {'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.) |
FloatBondOption | {'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.) |
OptionEmbeddedFloatBond | {'delta','gamma','vega','price'} ('vega' не поддерживаемый при использовании SABRBraceGatarekMusiela модель с IRMonteCarlo калькулятор цен.) |
inpSensitivity = 'All'
или inpSensitivity = "All"
указывает, что вся чувствительность для метода ценообразования возвращена. Это совпадает с определением inpSensitivity
включать каждую чувствительность.
Пример: inpSensitivity = ["delta","gamma","vega","price"]
Типы данных: cell
| string
Price
— Инструментальная ценаИнструментальная цена, возвращенная как числовое.
PriceResult
— Ценовой результатPriceResult
объектЦеновой результат, возвращенный как PriceResult
объект. Объект имеет следующие поля:
PriceResult.Results
— Таблица результатов, которая включает чувствительность (если вы задаете inpSensitivity
)
PriceResult.PricerData
— Структура для данных о калькуляторе цен
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.