/* ** Version 01 ** Date : 20/07/2001 ** -------------------------------------------------------------------------- ** Copyright K.Cuthbertson and D. Nitzsche ** "Financial Engineering:Derivatives and Risk Manangement" - J. Wiley 2001 ** ** Calculates Futures Price FTSE100 (with continuous 'dividend yield') and ** hedge position ** see p.43 and Table 3.3 (Stock index futures) and p.85 chp 4 (Currency Futures) ** */ new ; cls ; format /m1/rd 10,4 ; output on ; screen on; /* " ----------------------------------------------------------------------------------- " ; ** " Variables " ; ** " ----------------------------------------------------------------------------------- " ; ** " Fs = futures price (on commodity, stock, or currency=dom/foreign) " ; ** " s = price of underlying (eg. stock price or exchge rate = dom/foreign) " ; ** " tau = time to maturity(years, T-t) " ; ** " r = domestic interest rate (also for FX futures),contin. comp. propn.(p.a.) " ; ** " g = storeage cost,contin. compounded, propn.(p.a.) - for commodity futures " ; ** " nu = convenience yield,contin. compounded, propn.(p.a.)- for commodity futures " ; ** " dyld = dividend yield (or foreign interest rate for FX forward/futures) " ; ** ** " TVS = $ value of spot (cash) market position " ; ** " z = value of index point (on Stock index) or size of contract (forn. currncy.) " ; ** " FVF = Face value of one futures contract (on stock index) " ; ** " beta = beta of stock portfolio " ; ** " Nf = Number of futures contracts for the hedge (stock portfolio) " ; ** " ----------------------------------------------------------------------------------- " ; */ @ -------------------------------- USER INPUTS - see Table 3.3 --------------------------- @ s0 = 6400 ; @ FTSE100 index @ tau = 180/360 ; r = 0.10 ; dyld = 0.04 ; g = 0.0 ; nu = 0.0 ; TVS = 1000000 ; @ 1 million, GBP @ z = 10 ; @ value of index point, GBP @ beta = 1.5 ; @ ------------------------------ END USER INPUTS ----------------------------------------- @ @ --------------------------- Stock index futures - Table 3.3 ---------------------------- @ {Fs0} = Fut(s0,tau,r,dyld,g,nu) ; @ aCTIVATE the procedure - see below @ FVF = z.*Fs0 ; @ Face value of one futures contract @ Nf = - (TVS/FVF).*beta ; @ Number of SIFutures contracts in the hedge @ @ ------------------------- Foreign Currency Futures - p.85 ------------------------------ @ ss0 = 0.666666667 ; @ GBP per USD @ r0 = 0.11 ; @ simple rate @ r0 = ln(1+r0) ; @ contin. comp. rate @ dyld0 = 0.10 ; @ 'dyld' = foreign interest rate - simple rate @ dyld0 = ln(1+dyld0) ; @ contin. comp. rate @ tau = 1.0 ; g = 0.0 ; nu = 0.0 ; {Fss0} = Fut(ss0,tau,r0,dyld0,g,nu) ; @ ACTIVATE the procedure - see below @ @ ---------------------------- Data for a Stock index futures graph --------------------- @ s = seqa(s0,1,20) ; @ vector of s values for graph @ {Fs} = Fut(s,tau,r,dyld,g,nu) ; @ ACTIVATE the procedure - see below @ ?; " ----------------------------------------------------------------------------------------------- " ; " OUTPUTS " ; " ----------------------------------------------------------------------------------------------- " ; ?; " Fs = futures price (FTSE100) " Fs0 ; ?; " s = price of underlying (eg. stock price or exchge rate = dom/foreign) " s0 ; ?; " tau = time to maturity(years, T-t) " tau ; ?; " r = domestic interest rate (also for FX futures),contin. comp. propn.(p.a.) " r ; ?; " g = storeage cost,contin. compounded, propn.(p.a.) - for commodity futures " g ; ?; " nu = convenience yield,contin. compounded, propn.(p.a.)- for commodity futures " nu ; ?; " dyld = dividend yield (or foreign interest rate for FX forward/futures) " dyld; ?; " ------------------------------------------------------------------------------------------------ " ; ?; " TVS = $ value of spot (cash) market position " TVS ; ?; " z = value of index point (on Stock index) " z ; ?; " FVF = Face value of one futures contract (on stock index) " FVF ; ?; " beta = beta of stock portfolio " beta ; ?; " Nf = Number of futures contracts for the hedge (stock portfolio) " Nf ; ?; " Fs = futures price (on foreign currency=dom/foreign = GBP per USD) " Fss0 ; ?; " Futures price and Underlying(FTSE100) "; Fs~s ; ?; " ------------------------------------------------------------------------------------------------ " ; /* ---------------------------------------------------------------------------- Graph the Futures and Underlying -------------------------------------------------------------------------- */ library gauss pgraph ; graphset ; title("Futures and Spot on FTSE100 ") ; xlabel("Underlying Asset"); ylabel("Futures Price"); xy (s, Fs ) ; @ ---------------------------------------- END OF PROGRAM ----------------------------------------------- @ /* --------------------------------------------------------------------------------- ** Procedures to follow ** Futures with contin comp. dividends ** --------------------------------------------------------------------------------- */ proc Fut(s,tau,r,dyld,g,nu); local Fs ; Fs = S.*exp( ( r - dyld + g - nu).*tau ) ; retp(Fs); endp; end ;