Вычислите цену для инструмента процентной ставки с IRTree
калькулятор цен
[
вычисляет цену инструмента и соответствующую информацию о ценах на основе объекта ценообразования Price
,PriceResult
] = price(inpPricer
,inpInstrument
)inpPricer
и объект прибора inpInstrument
.
[
добавляет необязательный аргумент для задания чувствительности.Price
,PriceResult
] = price(___,inpSensitivity
)
Этот пример показывает рабочий процесс, чтобы оценить FixedBondOption
инструмент, когда вы используете HullWhite
модель и IRTree
метод ценообразования.
Создание FixedBond
Объект прибора
Использование fininstrument
для создания FixedBond
объект инструмента как базовая связь.
BondInst = fininstrument("FixedBond",'Maturity',datetime(2029,9,15),'CouponRate',0.025,'Period', 1,'Name',"fixed_bond_instrument")
BondInst = FixedBond with properties: CouponRate: 0.0250 Period: 1 Basis: 0 EndMonthRule: 1 Principal: 100 DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT IssueDate: NaT FirstCouponDate: NaT LastCouponDate: NaT StartDate: NaT Maturity: 15-Sep-2029 Name: "fixed_bond_instrument"
Создание FixedBondOption
Объект прибора
Использование fininstrument
для создания FixedBondOption
объект прибора.
FixedBOption = fininstrument("FixedBondOption",'ExerciseDate',datetime(2025,9,15),'Strike',98,'Bond',BondInst,'Name',"fixed_bond_option_instrument")
FixedBOption = FixedBondOption with properties: OptionType: "call" ExerciseStyle: "european" ExerciseDate: 15-Sep-2025 Strike: 98 Bond: [1x1 fininstrument.FixedBond] Name: "fixed_bond_option_instrument"
Создание ratecurve
Объект
Создайте ratecurve
объект, использующий ratecurve
.
Settle = datetime(2019,9,15); Type = 'zero'; ZeroTimes = [calyears([1:10])]'; ZeroRates = [0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307 0.0310]'; 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: 15-Sep-2019 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создание HullWhite
Объект модели
Использование finmodel
для создания HullWhite
объект модели.
HullWhiteModel = finmodel("HullWhite",'Alpha',0.01,'Sigma',0.05)
HullWhiteModel = HullWhite with properties: Alpha: 0.0100 Sigma: 0.0500
Создание IRTree
Объект прейскуранта
Использование finpricer
для создания IRTree
и используйте объект pricer ratecurve
объект со 'DiscountCurve'
аргумент пары "имя-значение".
HWTreePricer = finpricer("irtree",'Model',HullWhiteModel,'DiscountCurve',myRC,'TreeDates',ZeroDates)
HWTreePricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [10x1 datetime] Model: [1x1 finmodel.HullWhite] DiscountCurve: [1x1 ratecurve]
HWTreePricer.Tree
ans = struct with fields:
tObs: [0 1 1.9973 2.9945 3.9918 4.9918 5.9891 6.9863 7.9836 8.9836]
dObs: [1x10 datetime]
CFlowT: {1x10 cell}
Probs: {1x9 cell}
Connect: {1x9 cell}
FwdTree: {1x10 cell}
RateTree: {1x10 cell}
Ценовые FixedBondOption
Инструмент
Использование price
вычислить цену и чувствительность для FixedBondOption
прибора.
[Price, outPR] = price(HWTreePricer,FixedBOption,["all"])
Price = 11.1739
outPR = priceresult with properties: Results: [1x4 table] PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
______ ______ ______ _______
11.174 243.09 3667.6 -272.19
inpInstrument
- Объект КИПиАFixedBond
| объекта OptionEmbeddedFixedBond
| объекта FixedBondOption
| объекта FloatBond
объектОбъект инструмента, заданный как скаляр или вектор ранее созданных объектов инструмента. Создайте объекты прибора используя fininstrument
. Поддерживаются следующие объекты прибора:
Типы данных: object
inpSensitivity
- Список чувствительности к вычислениям[ ]
(по умолчанию) | строковые массивы со значениями "Price"
, "Delta"
, "Gamma"
, "Vega"
, и "All"
| массив ячеек векторов символов со значениями 'Price'
, 'Delta'
, 'Gamma'
, 'Vega'
, и 'All'
(Необязательно) Список чувствительности для вычисления, заданный как NOUT
-by- 1
или 1
-by- NOUT
массив ячеек из векторов символов или строковых массивов с возможными значениями 'Price'
, 'Delta'
, 'Gamma'
, 'Vega'
, и 'All'
.
inpSensitivity = {'All'}
или inpSensitivity = ["All"]
указывает, что выход 'Delta'
, 'Gamma'
, 'Vega'
, и 'Price'
. Это то же самое, что и установка inpSensitivity
включать каждую чувствительность.
Поддерживаемые чувствительности зависят от inpInstrument
.
inpInstrument | Поддерживаемые чувствительности |
---|---|
Cap | {'delta','gamma','vega','price'} |
Floor | {'delta','gamma','vega','price'} |
Swaption | {'delta','gamma','vega','price'} |
FixedBond | {'delta','gamma','vega','price'} |
OptionEmbeddedFixedBond | {'delta','gamma','vega','price'} |
FixedBondOption | {'delta','gamma','vega','price'} |
FloatBond | {'delta','gamma','vega','price'} |
FloatBondOption | {'delta','gamma','vega','price'} |
OptionEmbeddedFloatBond | {'delta','gamma','vega','price'} |
Примечание
Чувствительности вычисляются на основе сдвигов выражения 1 базисной точки, где ShiftValue = 1/10000. Все чувствительности возвращаются как долларовые чувствительности. Чтобы найти чувствительность за доллар, разделите чувствительность на соответствующие цены инструмента.
Пример: inpSensitivity = {'delta','gamma','vega','price'}
Типы данных: string
| cell
Price
- Цена КИПиАЦена инструмента, возвращенная в виде числа.
PriceResult
- Результат ценыPriceResult
объектРезультат цены, возвращенный как PriceResult
объект. Объект имеет следующие поля:
PriceResult.Results
- Таблица результатов, которая включает чувствительности (если вы задаете inpSensitivity
)
PriceResult.PricerData
- Структура для ценовых данных, которая зависит от инструмента, который оценивается
FixedBond
, FloatBond
, FixedBondOption
, и OptionEmbeddedFixedBond
иметь следующие общие поля для PriceResult.PricerData.PriceTree
:
tObs
содержит время наблюдения.
Connect
содержит векторы связности. Каждый элемент массива ячеек описывает, как узлы на этом уровне соединяются с следующим. Для заданного уровня дерева существуют NumNodes
элементы в векторе, и они содержат индекс узла на следующем уровне, с которым соединяется средняя ветвь. Вычитание 1 из этого значения указывает, где соединяется восходящая ветвь, и сложение 1 указывает, где соединяется нисходящая ветвь.
Следующие дополнительные поля для PriceResult.PricerData.PriceTree
зависят от типа прибора:
PTree
содержит чистые цены.
AITree
содержит начисленные проценты.
Probs
содержит массивы вероятностей. Каждый элемент массива ячеек содержит вероятности перехода вверх, посередине и вниз для каждого узла уровня.
dObs
содержит дату каждого уровня дерева.
CFlowT
- массив ячеек с таким же количеством элементов, как и уровни дерева. Каждый элемент массива ячеек содержит временные множители (tObs
) соответствует своему уровню дерева и тем уровням, которые его опережают.
FwdTree
содержит прямую спотовую скорость от одного узла к следующему. Спот-ставка форвардов определяется как обратная величина коэффициента дисконтирования.
ExTree
содержит массивы индикаторов упражнений. Каждый элемент массива ячеек является массивом, содержащим 1
где используется опция и 0
там, где нет.
ProbTree
содержит вероятность достижения каждого узла из корневого узла.
ExProbTree
содержит вероятности упражнений. Каждый элемент массива ячеек является массивом, содержащим 0
где нет упражнений или вероятность достижения этого узла, где выполняются упражнения.
ExProbsByTreeLevel
является массивом с каждой строкой, держащей вероятность упражнения для заданной опции во время наблюдения дерева.
A FixedBond
инструмент имеет эти дополнительные поля в PriceResult.PricerData.PriceTree
:
PTree
AITree
Probs
.
A FloatBond
инструмент имеет эти дополнительные поля в PriceResult.PricerData.PriceTree
:
dObs
CFlowT
Probs
FwdTree
A FixedBondOption
инструмент имеет эти дополнительные поля в PriceResult.PricerData.PriceTree
:
PTree
Probs
ExTree
A OptionEmbeddedFixedBond
инструмент имеет эти дополнительные поля в PriceResult.PricerData.PriceTree
:
PTree
ExTree
ProbTree
ExProbTree
ExProbsByTreeLevel
В следующей таблице показаны PriceResult.PricerData.PriceTree
полей, относящихся к каждому прибору.
PriceResult.PricerData.PriceTree Области | FixedBond | FloatBond | FixedBondOption | OptionEmbeddedFixedBond |
---|---|---|---|---|
tObs | ✓ | ✓ | ✓ | ✓ |
Connect | ✓ | ✓ | ✓ | ✓ |
PTree | ✓ | Нет | ✓ | ✓ |
AITree | ✓ | Нет | Нет | Нет |
Probs | ✓ | ✓ | ✓ | Нет |
dObs | Нет | ✓ | Нет | Нет |
CFlowT | Нет | ✓ | Нет | Нет |
FwdTree | Нет | ✓ | ✓ | ✓ |
ExTree | Нет | Нет | ✓ | ✓ |
ProbTree | Нет | Нет | Нет | ✓ |
ExProbTree | Нет | Нет | Нет | ✓ |
ExProbsByTreeLevel | Нет | Нет | Нет | ✓ |
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.