• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Delta-Gamma Approximation

Joined
2/16/11
Messages
34
Points
16
Hi,

I have a problem with the Delta-Gamma approximation to calculate changes in value of a portfolio.
I think I got something wrong but at the moment I don't see the mistake.

My example portfolio is only consisting of an call option.
I calculate dV with the formula for the Delta-Gamma approximation.
Maturity T=0.5 , starting point is t=0 and the portfolio revaluation occurs in t=0.1. Furthermore r=0, K=100, S(0)=100, sigma=10% and I assume the stock price at t=0.1 to be 105.

To compare, I first calculate the Black-Scholes price in t=0 and then in t=0.1 . Then the difference should be the change in value, right?

My results were: dV=3 for the BS method and dV=2,486 for the Delta-Gamma-approx.
I don't think that the approximation should lead to such a huge error.

Hopefully, someone can help me out!

Thanks in advance.
 
What does this exactly mean?

My results were: dV=3 for the BS method and dV=2,486 for the Delta-Gamma-approx.

Do you mean (delta)BS in first dV? (the difference between BS(t=1,.,.,.,) - BS(t=0,.,.,.,.,)
 
Why do you approximate change for different t??? Delta is the first derivative of option price (BS) on the spot not time...

delta_formula.JPG


Change S(t) by small amount and observe the increment in that interval and compare with approximate change calculated by delta of an option.
Read this thread:

http://www.quantnet.com/forum/threads/binomial-tree.5834/#post-48577
 
Hi Tsotne,

yes, dV=3 was exactly the difference BS(t=1,S=105) - BS(t=0, S=100).
The delta-gamma approximation formula is:

dV = DELTA * dS + THETA *dt + (sigma²*S²)*(1/2)*GAMMA*dt

What you recommend is not to vary in time assuming that the time difference between the current stock price of 100 and the stock price of 105 is very small, right? Then dt=0.
In my example, I am assuming that there is a stock price increase of 5 after 0.1 .

However, I also tried with dt=0. If I do so, the difference between BS(S=105) and BS(S=100) should be exactly 5*DELTA. But again, the result of 5*DELTA is not exactly the same.
 
Did you consider also the volatility of your stock ? The difference might seem negligible ( 1/20 ), but you also need to consider volatility.

(I'm not talking about including vega here)
 
dV = DELTA * dS + THETA *dt + (sigma²*S²)*(1/2)*GAMMA*dt

Where does the sigma comes from in your gamma expression?
 
Hi Tsotne,

yes, dV=3 was exactly the difference BS(t=1,S=105) - BS(t=0, S=100).
The delta-gamma approximation formula is:

dV = DELTA * dS + THETA *dt + (sigma²*S²)*(1/2)*GAMMA*dt

What you recommend is not to vary in time assuming that the time difference between the current stock price of 100 and the stock price of 105 is very small, right? Then dt=0.
In my example, I am assuming that there is a stock price increase of 5 after 0.1 .

However, I also tried with dt=0. If I do so, the difference between BS(S=105) and BS(S=100) should be exactly 5*DELTA. But again, the result of 5*DELTA is not exactly the same.

Well going from t=0 to t=.1 on an option with maturity .5 at t=0 means going from a 6m option to a 4.8m option right? That's not a very small amount of time. Also going from 100 to 105 in spot is a 5% move in spot right? That's not a very small change in spot.
So you'll have a variety of issues here, all having to do with the fact that you've bumped your spot and time quite a bit. Let's first look at it as if you hadn't bumped time. Your approximation will be off because your gamma decreases as spot moves away from the strike, i.e. gamma isn't constant, which means your delta doesn't change with respect to one gamma number, and so on a 5% move you'll approximate the wrong delta and pnl if you just use the gamma number you had at spot 100. Now bump time just over 1 month. You now decay into different delta and gamma profiles. Specifically, you have a smaller delta at 105 that you did when it was a 6m option, and your gamma profile decays into more gamma ATM and less on the wings. Your gamma is probably actually be higher at 105 (i.e. still part of the ATM-ish portion of the profile where gamma increases with time) since it's not that wingy, but it's still different.
Also, the difference between BS(S=105) and BS(S=100) shouldn't be exactly 5*Delta at all. In fact it shouldn't really be all that close. The way to approximate what your pnl would be is to do the calculation 5 * Average(Delta now, Delta after spot move according to gamma now). But again that number will be off because gamma now is not gamma after spot move. What I suggest you do is first get your approximation working for a 1% move in spot without bumping time and then start bumping other parameters and further bumping spot.
 
Fixing time, you can interpret the option price (V) as a function of spot (S) and vol (\vega), arriving at the Taylor series approximation for changes:
(\Delta V \approx \frac{\partial V}{\partial S}\Delta S + \frac{1}{2} \frac{\partial^2 V}{\partial S^2}\Delta S^2 + \frac{\partial V}{\partial \sigma} \Delta \sigma + \frac{1}{2} \frac{\partial^2 V}{\partial \sigma^2} \Delta \sigma^2 + \frac{\partial^2 V}{\partial S \partial \sigma}\Delta S \Delta \sigma)
Or, in terms of option Greeks:
(\Delta V \approx delta\Delta S + \frac{1}{2} gamma\Delta S^2 + vega \Delta \sigma + \frac{1}{2} volga \Delta \sigma^2 + vanna \Delta S \Delta \sigma)
If you want to include the time changes to the same order, then you would need two derivatives with respect to time as well as cross-terms with spot and vol. But at least in my experience delta-gamma is used for simulating PL under instantaneous shocks (since it's only really good for relatively small changes--i.e., short time scales--anyway), so you ignore the time derivatives.

The missing element here is of course skew / smile, which can be used to drive the (\Delta \sigma) given (\Delta S) under whatever assumption of those dynamics you find sensible. The most convenient thing to do would be to assume that vols stick on moneyness, in which case with a bit of work I think all of those vol terms can be rewritten as functions of spot, strike, option Greeks, and two derivatives of the smile / skew with respect to moneyness. So in essence you can drive the spot and vol PLs with just changes in spot.
 
I have two different formulas for the delta-gamma-approximation:
dV = DELTA * dS + THETA *dt + (sigma²*S²)*(1/2)*GAMMA*dt
(from D. Stefanica - Primer for the....)

and
dV = THETA*dt + DELTA * dS + 1/2 * GAMMA * (dS)²
(from Glasserman - MC for FE)

At the moment, I don't know why Glasserman uses this formula. It would be great if anyone can explain it to me.

From what you stated above, can I conclude that:
1. My method of determining the change in value by using BS(S=105)-BS(S=100) is right?
2. The problem why my approximation fails is that both the change in stock price and the change in time I used were far too big to get a good approximation result?

EDIT:
I tried for another call option with the following parameters:
sigma=10%
r=0
T=1
K=100
S(0)=100
S(1)=100.5
T-t1=364/365 (one day after t=0)

My results here were:
BS(t=0)=3,99
BS(t=1)=4,25
=> diff_V=0,26

My approximation results were 0,0009 (D.S. formula) and -0,00447 (Glasserman formula), which also seem to be very bad approximations even for such small changes in stock price and time. Therefore I assume that I got something from with applying the formula.
 
I'm not too sure about the Stefanica formula, since I don't know the context in which it is derived, etc.

Look at @bob ' s post : it is pretty complete.

The delta gamma approximation is derived from bob's taylor expansion. (Ignoring the contribution of cross derivatives, time, vega,..)

Here are my results using your parameters. The first two results do not consider the change in time.

Analytical : 0.264937
Delta-Gamma : 0.264950

Analytical with Time : 0.259468
Delta-Gamma-Theta : 0.259492

*Code*

r=0;
Sigma=0.1;
K=100;
S0=100;
S1=100.5;
T=1;

%Analytical
fprintf('Analytical : %f\n',blsprice(S1,K,r,T,Sigma) - blsprice(S0,K,r,T,Sigma))
%Delta-Gamma
fprintf('Delta-Gamma : %f\n',blsdelta(S0,K,r,T,Sigma)*(S1-S0) + 0.5*(S1-S0)*(S1-S0)*blsgamma(S0,K,r,T,Sigma))

%With Time
fprintf('Analytical with Time : %f\n',blsprice(S1,K,r,T-(1/365),Sigma) - blsprice(S0,K,r,T,Sigma))
%Delta-Gamma
fprintf('Delta-Gamma-Theta : %f\n',blsdelta(S0,K,r,T,Sigma)*(S1-S0) + 0.5*(S1-S0)*(S1-S0)*blsgamma(S0,K,r,T,Sigma) + (1/365)*blstheta(S0,K,r,T,Sigma))
 
I don't know what I have done yesterday, but I tried again today and got exactly your results, Dibbs.
I think that I have mistyped over and over again while using my calculator. Strange... :D
 
Sure, :)

It'd also be great if anybody can provide some insight of the formula provided by Stefanica, or the context in which it is used / derived.
 
Taylor approximation of V(t,s) up to the order dt and dS, using the fact that
((dS)^2 \approx \frac{\sigma^2 S^2}{2} dt)
 
Back
Top