Вычислите цену для инструмента процентной ставки с 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.