400 likes | 1.1k Views
FIN285a: Lecture 5.1a Fall 2008. Bonds and Swaps. Outline. Coupon bonds Currency swap Fixed/floating swaps. Software. bondvar.m bpswaphist.m bpswapbs.m fixfloat.m. Bond Pricing: Assumptions. Flat term structure Yields Geometric random walk Rate = Tbond + 5% (risk spread)
E N D
FIN285a: Lecture 5.1a Fall 2008 Bonds and Swaps
Outline • Coupon bonds • Currency swap • Fixed/floating swaps
Software • bondvar.m • bpswaphist.m • bpswapbs.m • fixfloat.m
Bond Pricing: Assumptions • Flat term structure • Yields • Geometric random walk • Rate = Tbond + 5% (risk spread) • Volatility = 1.75*tbond volatility
Bond Structure • Principal = 1000 • Coupon = 8% = 80 (starting in 1 year) • Maturity = 3 years • Problem: • Find VaR and ETL over 1 year period
Matlab Program • bondvar.m • Features • Government bond data file • Aggregate 12 months to get 1 year changes
Outline • Coupon bonds • Currency swaps • Fixed/floating swaps
Currency Swap • Foreign currency swap • Trade principal and interest in one currency for another • Borrow British pounds, lend US dollars • Structure • Long $ bond • Short BP bond
Simple Swap Example • 1 Year contract • Interest payments at 6 months and 1 year • BP principal = 20 million BP • Payback in 1 year • $ principal = 20 million BP ($/BP)
Coupon Payments • BP coupon : 6 months and 1 year • c(BP) • $ coupon : 6 months and 1 year • c($)
Cash Flow • Today • 20BP, -($/BP)20BP • 6 Month (coupons) • -c(BP) = Libor(BP) + 1% • +c($)=Libor($) + 2% • 12 Month • -20BP-c(BP), ($/BP)20BP+c($)
Cash Flow PictureLet X = $ notional = E($/BP)20Fixed today at current FX rateNote: now transactions neutralize +20 BP +c($) +c($)+X $ -c(BP) -X $ -c(BP)-20 BP 12 Months Now +6 Months
Find 1 Month VaR • Mark to market today (current FX and interest rates)V(t) • Find FX and interest rates 1 month in the future (t+1) • Use historical data and arithmetic returns • Mark to market in one month V(t+1) • Find VaR using P/L = V(t+1)-V(t)
Risk Factors • Exchange rate ($/BP) • r(BP): British interest rate • Flat term structure • r($): US interest rate • Flat term structure
Data Set bp.dat • Date (matlab format) • $/BP exchange rate • R(BP) = 1 Month interbank (London) • R($) = 1 Month eurorate (London) • Source: Datastream
Matlab Code • Historical VaR • bpswaphist.m • Note: impact of FX • Bootstrap values • bpswapbs.m
Multiple Risk Factors • X = % Change [FX r(BP) r($)] • Historical • Use matrix of changes • Keep changes in each component of X together in time
Multiple Risk Factors • X = % Change [FX r(BP) r($)] • Bootstrap • Use matrix of changes • Keep changes in each component of X together in time • Sample X together • Sample command does this (row by row)
Multiple Risk Factors • X = % Change [FX r(BP) r($)] • Bootstrap 2 • Assume independence • Sample separately • xbs = sample(x(:,1),n)
Multiple Risk Factors • X = % Change [FX r(BP) r($)] • Monte-carlo • Assume normality • Estimate mean vector • Estimate variance/covariance matrix • Simulate multivariate normals • Find valuations V(x(t+1))
Multiple Risk Factors • X = % Change [FX r(BP) r($)] • Delta normal • Assume normality • Estimate mean vector • Estimate variance/covariance matrix • Linearly approximate distribution of V(X)
Multi Factor Challenges • Which factors are important? • How do they move together? • Covariances??
Outline • Coupon bonds • Currency swaps • Fixed/floating swaps
Interest Rate Swaps • Pay fixed coupon payments • Receive floating coupon payment (Libor * notional amt.) • or the reverse • Floating rate locked 6 months before payment • Also, dealers arrange and take a spread
Swap Example • Structure • Receiving fixed payments • Paying floats • Semiannual payments • Units: semiannual compounding • 1 year to maturity • Payments in 6 and 12 months
Swap Valuation • Long a fixed rate bond • Valuation: easy • Short a floating rate bond • Valuation: a little tricky, but not bad • Swap value = PV(fixed) - PV(float)
Bond Specifics • Fixed: • Principal = 1000 • Coupon = 5% (semi-annual) • Maturity = 1 year • Float: • Principal = 1000 • Coupon = Libor (initial = 5%) semi-annual • Maturity = 1 year
Picture of the Float 6 Months 1000(1+r(6)/2) C=1000*r(0)/2 r(0) r(6) Right after coupon is paid PV at r(6)/2 = $1000 Valuation 1 month in the future is easy PV( 1000*r(0)/2 + 1000)
Picture of the Float 6 Months 1000(1+r(6)/2) C=1000*r(0)/2 r(0) r(6) Right after coupon is paid PV at r(1)/2 = $1000 Valuation 7 months in the future trickier. Need r(6) for coupon and r(7) for discount.
Matlab Code • fixfloatswap.m