Добавьте инструмент в портфель инструментов
добавляет инструмент outPort
= addInstrument(inPort
,inInst
)inInst
к портфелю inPort
из инструментов ранее созданное использование finportfolio
.
добавляет инструмент outPort
= addInstrument(inPort
,inInst
,inPricer
)inInst
и связанный калькулятор цен inPricer
к портфелю inPort
из инструментов ранее созданное использование finportfolio
.
Используйте finportfolio
создать пустой портфель и затем использовать addInstrument
добавить инструменты в портфель.
Создайте FixedBond
Инструментальные объекты
Используйте fininstrument
создать два FixedBond
инструментальные объекты.
FixB1 = fininstrument("FixedBond", 'Maturity',datetime(2022,9,15),'CouponRate',0.045,'Name',"fixed_bond1")
FixB1 = FixedBond with properties: CouponRate: 0.0450 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_bond1"
FixB2 = fininstrument("FixedBond", 'Maturity',datetime(2022,9,15),'CouponRate',0.035,'Name',"fixed_bond2")
FixB2 = FixedBond with properties: CouponRate: 0.0350 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_bond2"
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
.
Settle = datetime(2018,9,15); 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: 15-Sep-2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте Discount
Объект калькулятора цен для FixedBond
Инструменты
Используйте finpricer
создать Discount
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
DiscountPricer = finpricer("Discount", 'DiscountCurve',myRC)
DiscountPricer = Discount with properties: DiscountCurve: [1x1 ratecurve]
Добавьте инструменты в finportfolio
Объект
Создайте пустой finportfolio
объект с помощью finportfolio
и затем используйте addInstrument
помещать FixedBond
инструменты в портфель.
f1 = finportfolio; f1 = addInstrument(f1,FixB1)
f1 = finportfolio with properties: Instruments: [1x1 fininstrument.FixedBond] Pricers: [0x1 finpricer.FinPricer] PricerIndex: NaN Quantity: 1
f1 = addInstrument(f1,FixB2)
f1 = finportfolio with properties: Instruments: [2x1 fininstrument.FixedBond] Pricers: [0x1 finpricer.FinPricer] PricerIndex: [2x1 double] Quantity: [2x1 double]
Установите калькулятор цен для портфеля
Используйте setPricer
установить калькулятор цен для портфеля и затем использовать pricePortfolio
вычислить цену и чувствительность для инструментов в портфеле.
f1 = setPricer(f1,DiscountPricer,[1,2])
f1 = finportfolio with properties: Instruments: [2x1 fininstrument.FixedBond] Pricers: [1x1 finpricer.Discount] PricerIndex: [2x1 double] Quantity: [2x1 double]
[PortPrice,InstPrice,PortSens,InstSens] = pricePortfolio(f1)
PortPrice = 224.0834
InstPrice = 2×1
114.0085
110.0749
PortSens=1×2 table
Price DV01
______ ________
224.08 0.084139
InstSens=2×2 table
Price DV01
______ ________
fixed_bond1 114.01 0.04251
fixed_bond2 110.07 0.041629
Используйте finportfolio
создать пустой портфель и затем использовать addInstrument
добавить несколько инструментов в портфель.
Создайте FixedBond
Инструментальные объекты
Используйте fininstrument
создать два FixedBond
инструмент возражает каждому с двумя инструментами.
FixB1 = fininstrument("FixedBond", 'Maturity',datetime([2022,9,15 ; 2022,10,15]),'CouponRate',0.045,'Name',"fixed_bond1")
FixB1=2×1 object
2x1 FixedBond array with properties:
CouponRate
Period
Basis
EndMonthRule
Principal
DaycountAdjustedCashFlow
BusinessDayConvention
Holidays
IssueDate
FirstCouponDate
LastCouponDate
StartDate
Maturity
Name
FixB2 = fininstrument("FixedBond", 'Maturity',datetime([2022,11,15 ; 2022,12,15]),'CouponRate',0.035,'Name',"fixed_bond2")
FixB2=2×1 object
2x1 FixedBond array with properties:
CouponRate
Period
Basis
EndMonthRule
Principal
DaycountAdjustedCashFlow
BusinessDayConvention
Holidays
IssueDate
FirstCouponDate
LastCouponDate
StartDate
Maturity
Name
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
.
Settle = datetime(2020,9,15); 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: 15-Sep-2020 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте Discount
Объект калькулятора цен для FixedBond
Инструменты
Используйте finpricer
создать Discount
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
DiscountPricer = finpricer("Discount", 'DiscountCurve',myRC)
DiscountPricer = Discount with properties: DiscountCurve: [1x1 ratecurve]
Добавьте инструменты в finportfolio
Объект
Создайте пустой finportfolio
объект с помощью finportfolio
и затем используйте addInstrument
помещать FixedBond
инструменты в портфель.
f1 = finportfolio; f1 = addInstrument(f1,FixB1(1))
f1 = finportfolio with properties: Instruments: [1x1 fininstrument.FixedBond] Pricers: [0x1 finpricer.FinPricer] PricerIndex: NaN Quantity: 1
f1 = addInstrument(f1,FixB1(2))
f1 = finportfolio with properties: Instruments: [2x1 fininstrument.FixedBond] Pricers: [0x1 finpricer.FinPricer] PricerIndex: [2x1 double] Quantity: [2x1 double]
f1 = addInstrument(f1,FixB2(1))
f1 = finportfolio with properties: Instruments: [3x1 fininstrument.FixedBond] Pricers: [0x1 finpricer.FinPricer] PricerIndex: [3x1 double] Quantity: [3x1 double]
f1 = addInstrument(f1,FixB2(2))
f1 = finportfolio with properties: Instruments: [4x1 fininstrument.FixedBond] Pricers: [0x1 finpricer.FinPricer] PricerIndex: [4x1 double] Quantity: [4x1 double]
Установите калькулятор цен для портфеля
Используйте setPricer
установить калькулятор цен для портфеля и затем использовать pricePortfolio
вычислить цены и чувствительность для инструментов в портфеле.
f1 = setPricer(f1,DiscountPricer,[1,2,3,4])
f1 = finportfolio with properties: Instruments: [4x1 fininstrument.FixedBond] Pricers: [1x1 finpricer.Discount] PricerIndex: [4x1 double] Quantity: [4x1 double]
[PortPrice,InstPrice,PortSens,InstSens] = pricePortfolio(f1)
PortPrice = 428.2788
InstPrice = 4×1
107.7226
108.0156
106.1642
106.3765
PortSens=1×2 table
Price DV01
______ ________
428.28 0.088272
InstSens=4×2 table
Price DV01
______ ________
fixed_bond1 107.72 0.020871
fixed_bond1_1 108.02 0.021761
fixed_bond2 106.16 0.022387
fixed_bond2_1 106.38 0.023253
inPort
— finportfolio
объектfinportfolio
объектfinportfolio
объект в виде скалярного finportfolio
объект.
Типы данных: object
inInst
— Объект Instrument добавить к портфелюОбъект Instrument добавить к портфелю в виде скалярного инструментального объекта, который ранее создается с помощью fininstrument
.
Примечание
Если инструмент возражает для inInst
вектор из инструментов, необходимо использовать addInstrument
добавить каждый инструмент отдельно.
Типы данных: object
inPricer
— Объект Pricer сопоставлен с добавленным инструментальным объектомОбъект Pricer сопоставил с добавленным инструментальным объектом в виде скалярного объекта калькулятора цен или массива объектов калькулятора цен, которые ранее создаются с помощью finpricer
.
Типы данных: object
inQuant
— Количество добавленных инструментов
(значение по умолчанию) | положительный или отрицательный числовойКоличество инструментов в виде числового скаляра. Используйте положительное значение для длинной позиции и отрицательную величину для короткой позиции.
Типы данных: double
outPort
— Обновленный finportfolio
объектfinportfolio
объектОбновленный finportfolio
, возвращенный как finportfolio
объект.
fininstrument
| removeInstrument
| pricePortfolio
| setPricer
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.