Serving the Quantitative Finance Community

 
User avatar
nymwhen
Topic Author
Posts: 0
Joined: August 5th, 2003, 12:53 pm

Ju & Zhong American model for Futures Options

November 23rd, 2004, 1:30 pm

Hi,I am trying to adapt the method by Ju & Zhong (1999) for pricing American Put options to be used for pricing options on commodities futures (cost of carry (b=0)).The article I am looking at can be found here:http://www.london.edu/IFA/Risk_Measurem ... 105a.pdfMy first question is: Can I adapt this model to price options on futures by simply setting r=q? I have done this and attached the resulting code below.My second question is:Can anyone tell me what I need to do to adapt this formula/code to price an American Call on options on futures?Thanks!'VB.NET code for JZ American Option'Note that iopt is used to attempt to value call versus put'I believe that my implementation below is incorrect.Public Shared Function JZAmer(ByVal enmCallPut As Models.GeneralEuroBS.CallPut, ByVal S As Double, ByVal X As Double, ByVal tyr As Double, ByVal r As Double, ByVal sigma As Double, ByVal e As Double, ByVal intMaxIter As Double, ByVal dblVolSlope As Double) As Double Try Dim atol, va, SStar, eqt, ht, alpha, gam, gamdash, c0, hA, Nd1, Nd2, Ndashd1, calca, calcb, calcc, dv, b, c, chi, iopt, dblBSD1 as Double 'Set iopt = 1 for call, 0 for put iopt = CallPutInt(enmCallPut) atol = e 'Get critical price SStar SStar = MBWSstar1(enmCallPut, S, X, r, tyr, sigma, e, intMaxIter, dblVolSlope) eqt = Exp(-r * tyr) ht = 1 - eqt alpha = 2 * r / (sigma ^ 2) gam = 0.5 * (1 + iopt * Sqrt(1 + 4 * alpha / ht)) gamdash = alpha / (ht ^ 2 * Sqrt(1 + 4 * alpha / ht)) c0 = 2 * gam - 1 'Using Black 76 european valuation for futures options hA = iopt * (SStar - X) - GeneralEuroBS.Black76(enmCallPut, SStar, X, tyr, r, sigma) 'Get D1 using standard formulat where b=0 dblBSD1 = Models.GeneralEuroBS.D1Fut(SStar, X, r, tyr, sigma) 'Distributions.nc is the Cumulative Normal Distribution Function Nd1 = Distributions.nc(iopt * dblBSD1) Nd2 = Distributions.nc(iopt * Models.GeneralEuroBS.D2(dblBSD1, sigma, tyr)) 'Distributions.ndf is the density function of a standard normal random variable Ndashd1 = Distributions.ndf(dblBSD1) calca = SStar * Ndashd1 * sigma / (2 * r * Sqrt(tyr)) calcb = SStar * Nd1 calcc = X * Nd2 dv = -iopt * (calca + calcb - calcc) b = -iopt * (1 - ht) * alpha * gamdash / (2 * c0) c = iopt * (1 - ht) * alpha * (dv / hA + 1 / ht + gamdash / c0) / c0 chi = b * (Log(S / SStar)) ^ 2 + c * Log(S / SStar) If enmCallPut = GeneralEuroBS.CallPut.Call_ Then If S < SStar Then Return GeneralEuroBS.Black76(enmCallPut, S, X, tyr, r, sigma) + hA * ((S / SStar) ^ (gam)) / (1 - chi) Else Return S - X End If Else If S > SStar Then Return GeneralEuroBS.Black76(enmCallPut, S, X, tyr, r, sigma) + hA * ((S / SStar) ^ (gam)) / (1 - chi) Else Return X - S End If End If Catch ex As Exception Return System.Double.NaN End Try End Function
 
User avatar
spursfan
Posts: 2
Joined: October 7th, 2001, 3:43 pm

Ju & Zhong American model for Futures Options

November 23rd, 2004, 2:00 pm

it would be nice to get some thanks for my VBA functionsetting r=q will do for futuresfor calls use put-call symmetry call(S,K,r,q) = put(K,S,q,r)
 
User avatar
nymwhen
Topic Author
Posts: 0
Joined: August 5th, 2003, 12:53 pm

Ju & Zhong American model for Futures Options

November 23rd, 2004, 2:38 pm

Thanks spursfan!!I've been looking for a more accurate replacement for MBW for some time now. Many of our markets have very high skews that seem to cause some problems for MBW for deep in-the-money puts as they approach excercise near expiration.I have tried Bjerksund-Stensland, but have found that for options on futures where b=0, this model seems to result in options 'jumping' suddenly to early exercise, especially as time to expiration increases. The JZ model is quite nice because it adds almost nothing to the calculation time of MBW while increasing accuracy.I have the "Advanced modelling in finance using Excel and VBA" book. (I assume that you wrote that as well?) Highly recommended!
 
User avatar
nikki
Posts: 0
Joined: May 5th, 2004, 6:59 am

Ju & Zhong American model for Futures Options

December 28th, 2004, 8:21 am

did somebody esle try Bjerksund-Stensland model to price options on index with low/zero dividends and long time to expiration. any problems? Is there any better model?thanks
 
User avatar
spursfan
Posts: 2
Joined: October 7th, 2001, 3:43 pm

Ju & Zhong American model for Futures Options

December 30th, 2004, 8:24 am

my hunch is that the jz model is better
 
User avatar
yuanche17
Posts: 0
Joined: August 8th, 2003, 3:34 am

Ju & Zhong American model for Futures Options

December 30th, 2004, 3:22 pm

I experienced the same problem with Stensland. Just want to point out the peril in using this model. If you are managing an option book that has alot of American option positions, it will be very dangerous to manage delta using this model. As the underlying moves around, and your positions move from at the money to out of the money, your overall delta will jump unreasonably, and you would have no idea what exactly your delta position is.
 
User avatar
apine
Posts: 3
Joined: July 14th, 2002, 3:00 am

Ju & Zhong American model for Futures Options

December 30th, 2004, 6:30 pm

i contacted B&S regarding that problem. although they were helpful with the problem i had with implementation, they did not offer any answer to the itm with 0% rates issue. it is an issue for both versions of their model. it is a real shame too, because it is so frickin' fast. since i need the speed for my application, i use bjs for the atm and otm options, then barond-adesi-whaley for the itm's.
 
User avatar
nikki
Posts: 0
Joined: May 5th, 2004, 6:59 am

Ju & Zhong American model for Futures Options

December 31st, 2004, 7:29 am

thanks a lot for your answers!You are right about instability of Stensland model when b->0, but there is another issue (even when i use b>0): a magnitude of american correction (american option price-european option price) for deep ITM put options calculated based on Slensland model is higher in comparison what I've got from "tree models" (ex. CRR one factor). and for ATM put options it's opposite. any explanations why?thanks.