Serving the Quantitative Finance Community

 
User avatar
gammashark
Topic Author
Posts: 0
Joined: August 10th, 2001, 12:34 am

Spread Option - Green's v MC

September 26th, 2002, 5:18 pm

Playing around with quick and very dirty VBA code for simple European spread options (Max (Asset1 - Asset2 - Strike, 0), I am sure I have an error here somewhere, but can't quite find it. The Green's output (via numerical integration) is consistently lower than one by Monte Carlo. I have checked with the strike equal to zero using Margrabe (78) as a reference - MC is within bounds, but Green's is still lower. Refining the ganularity of the integration (Q in the code) doesn't make up the difference. Any help is much appreciated in advance.CheersHere goes the VBA code:Function GreenEuroSpreadOption(Asset1, Asset2, Strike, Vol1, Vol2, Rho, riskfree, Expiry) As DoubleDim a, b, c, d, e, f, i, j, Q As DoubleDim m, n, p, oDim Sigma(1 To 2, 1 To 2) As Double For i = 1 To 2 Step 1 For j = 1 To 2 Step 1 If i = j Then Sigma(i, j) = 1 Else Sigma(i, j) = Rho End If Next j Next ib = WorksheetFunction.MDeterm(Sigma())m = WorksheetFunction.MInverse(Sigma())c = (Vol1 * Vol2) ^ -1a = Exp(-riskfree * Expiry) / (2 * Pi() * Expiry) * b * cDim alpha(1 To 2) As DoubleQ = 0.25e = 0For i = 0.0001 To 5 * Asset1 Step Q alpha(1) = (1 / (Vol1 * (Expiry) ^ 0.5)) * (Log(Asset1 / i) + (riskfree - 0.5 * Vol1 ^ 2) * Expiry) For j = 0.0001 To 5 * Asset2 Step Q alpha(2) = (1 / (Vol2 * (Expiry) ^ 0.5)) * (Log(Asset2 / j) + (riskfree - 0.5 * Vol2 ^ 2) * Expiry) n = WorksheetFunction.Transpose(alpha()) p = WorksheetFunction.MMult(alpha(), m) o = WorksheetFunction.MMult(p, n) d = (Max(i - j - Strike, 0) / (i * j)) * Exp(-0.5 * o(1)) * (Q ^ 2) e = e + d Next jNext iGreenEuroSpreadOption = a * eEnd FunctionNB All the variables declared as variants are used to check the matrix multiplication - I know it slows it down.
 
User avatar
Monk
Posts: 4
Joined: June 14th, 2002, 6:35 pm

Spread Option - Green's v MC

September 26th, 2002, 6:09 pm

QuoteMax (Asset1 - Asset2 - Strike, 0),I just don't have time to take a look at your code.But I have a suggestion.What if you set current price of Asset2 to be zero ? Then you can easily check if your mc is consistent with analytical BS formula.Or what about if you set Asset1=0, Strike to be negative, then you get nothing but Put option, which you can compare with BS easily.When you do above mentioned, you will have to increase Vol and TtM, trying to exerggarate the time value so that you can make sure if your implementation is OK or not.Hope it helps.Monk
 
User avatar
gammashark
Topic Author
Posts: 0
Joined: August 10th, 2001, 12:34 am

Spread Option - Green's v MC

September 27th, 2002, 8:28 am

Update - the Green's code seems to compare well with Margrabe only if correlation (rho) is set at zero, otherwise undervaluation increases as rho differs from zero, so it must be something in the matrix multiplication.
 
User avatar
gammashark
Topic Author
Posts: 0
Joined: August 10th, 2001, 12:34 am

Spread Option - Green's v MC

September 27th, 2002, 4:27 pm

Problem solved - missed sqrt after Det of Sigma matrix.Thank you monk
 
User avatar
number7
Posts: 1
Joined: June 6th, 2002, 10:51 am

Spread Option - Green's v MC

October 2nd, 2002, 4:40 pm

Last edited by number7 on October 10th, 2002, 10:00 pm, edited 1 time in total.
 
User avatar
Bazman2
Posts: 1
Joined: January 28th, 2004, 2:22 pm

Spread Option - Green's v MC

April 19th, 2004, 3:51 pm

1.) I was just wondering was the model based on a paper/book if so which one.2.) Have you tried extending the model to multiple assets, if so how successful was it?3.) Using the Greens methos how easy is it to get the greeks out?ThanksBaz
 
User avatar
gammashark
Topic Author
Posts: 0
Joined: August 10th, 2001, 12:34 am

Spread Option - Green's v MC

April 20th, 2004, 8:23 am

Baz,You can find the Green's function solution in a number of references, the most obvious being PWOQF.Yes you can extend it to many more than two assets, reasonably easily (calibration of covariances is another story, but you've got that problem anyway)Haven't played around with extracting the greeks - it's a numerical integration, so I guess you're going to have to solve for the greek you want, or just fiddle about with a difference and repeated solutions with different input values.
 
User avatar
AndreBeck
Posts: 0
Joined: February 19th, 2008, 4:40 pm

Spread Option - Green's v MC

December 2nd, 2008, 10:55 pm

Re. Greeks for spread options: is the sensitivity of a spread option to interest rates always negative like with a standard call? Thanks
 
User avatar
mandmay
Posts: 0
Joined: December 4th, 2008, 4:25 am

Spread Option - Green's v MC

December 4th, 2008, 2:01 pm

The sensitivity of the combined forward (asset1-asset2) to the interest rate is gonna be time(S1*exp(r-d1) - S2*exp(r-d2)), so basically the sensitivity of the combined forward will depend on whether the combined forward is positive or negative. An increased rate will always discount to a lower price, so that sensitivity is fixed in direction. But basically no, I don't think you will always be short interest rate.