IRDataCurve
и IRFunctionCurve
возражают для преобразования поддержки кривых процентной ставки в:
Структура RateSpec
. RateSpec
, сгенерированный от объекта IRDataCurve
или IRFunctionCurve
, с помощью метода toRateSpec
, идентичен структуре RateSpec
, созданной с intenvset
с помощью программного обеспечения Financial Instruments Toolbox™.
Вектор дат и данных из объекта IRDataCurve
, приемлемого для prbyzero
, bkcall
, bkput
, tfutbyprice
, и tfutbyyield
или любой функции, которая требует структуры термина процентных ставок.
Чтобы преобразовать объект IRDataCurve
или IRFunctionCurve
в структуру RateSpec
, необходимо сначала создать объект кривой процентной ставки. Затем используйте метод toRateSpec
для объекта IRDataCurve
или thetoRateSpec
метод для объекта IRFunctionCurve
.
Создайте вектор данных из следующих данных: https://www.ustreas.gov/offices/domestic-finance/debt-management/
:
interest-rate/yield.shtml
Data = [1.85 1.84 1.91 2.09 2.47 2.71 3.12 3.43 3.85 4.57 4.58]/100; Dates = daysadd(today,[30 90 180 360 2*360 3*360 5*360 7*360 10*360 20*360 30*360],2); scatter(Dates,Data) datetick
Создайте объект кривой процентной ставки IRDataCurve
:
rr = IRDataCurve('Zero',today,Dates,Data);
Преобразуйте в RateSpec
:
toRateSpec(rr, today+30:30:today+365)
ans = FinObj: 'RateSpec' Compounding: 2 Disc: [12x1 double] Rates: [12x1 double] EndTimes: [12x1 double] StartTimes: [12x1 double] EndDates: [12x1 double] StartDates: 733569 ValuationDate: 733569 Basis: 0 EndMonthRule: 1
Можно использовать метод getZeroRates
для объекта IRDataCurve
со свойством Dates
создать вектор дат и данных, приемлемых для prbyzero
в программном обеспечении Financial Toolbox™ и bkcall
, bkput
, tfutbyprice
и tfutbyyield
в программном обеспечении Financial Instruments Toolbox.
Это - пример использования метода IRDataCurve
getZeroRates
с prbyzero
:
Data = [2.09 2.47 2.71 3.12 3.43 3.85 4.57 4.58]/100; Dates = daysadd(today,[360 2*360 3*360 5*360 7*360 10*360 20*360 30*360],1); irdc = IRDataCurve('Zero',today,Dates,Data,'InterpMethod','pchip'); Maturity = daysadd(today,8*360,1); CouponRate = .055; ZeroDates = daysadd(today,180:180:8*360,1); ZeroRates = getZeroRates(irdc, ZeroDates); BondPrice = prbyzero([Maturity CouponRate], today, ZeroRates, ZeroDates)
BondPrice = 113.9250
IRBootstrapOptions
| IRDataCurve
| IRFitOptions
| IRFunctionCurve