www.gusucode.com > fininst 案例源码程序 matlab代码 > fininst/PricefloatbyhwCollarwithaFloatRateNoteExample.m
%% Price a Collar with a Floating-Rate Note % Price a collar with a floating-rate note using the |CapRate| and |FloorRate| % input argument to define the collar pricing. % Copyright 2015 The MathWorks, Inc. %% % Price two collared floating-rate notes using the following data: Rates = [0.0287; 0.03024; 0.03345; 0.03861; 0.04033]; ValuationDate = '1-April-2012'; StartDates = ValuationDate; EndDates = {'1-April-2013';'1-April-2014';'1-April-2015' ;... '1-April-2016';'1-April-2017'}; Compounding = 1; %% % Create the |RateSpec|. RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding); %% % Build the HW tree and assume the volatility to be 5%. VolDates = ['1-April-2013';'1-April-2014';'1-April-2015';... '1-April-2016';'1-April-2017';'1-April-2018']; VolCurve = 0.05; AlphaDates = '15-Nov-2018'; AlphaCurve = 0.1; HWVolSpec = hwvolspec(RateSpec.ValuationDate, VolDates, VolCurve,... AlphaDates, AlphaCurve); HWTimeSpec = hwtimespec(RateSpec.ValuationDate, VolDates, Compounding); HWT = hwtree(HWVolSpec, RateSpec, HWTimeSpec); %% % Create the floating-rate note instrument. Settle ='1-April-2012'; Maturity = '1-April-2016'; Spread = 10; Principal = 100; %% % Compute the price of a vanilla floater. Price = floatbyhw(HWT, Spread, Settle, Maturity) %% % Compute the price of the collared floating-rate notes. CapStrike = {{'1-April-2014' 0.045; '1-April-2015' 0.05;... '1-April-2016' 0.06}; 0.06}; FloorStrike = {{'1-April-2014' 0.035; '1-April-2015' 0.04;... '1-April-2016' 0.05}; 0.03}; PriceCollared = floatbyhw(HWT, Spread, Settle, Maturity,.... 'CapRate', CapStrike,'FloorRate', FloorStrike)