Page 1 of 1
why my delta is not 100
Posted: April 3rd, 2009, 7:11 pm
by quantcook
i'm using black scholes to calculate my european option price.strange enough, whenever there's a interest rate > 0, my delta never sum up to 100.here is the vba code : d1 = NormSDist((Log(frw / strike) + (0.5 * Vol^ 2) * T) / (Vol* T^ 0.5)) d2 = NormSDist((Log(frw / strike) + (-0.5 * Vol^ 2) * T) / (Vol* T^ 0.5)) If COP = 1 Then Price = frw * Exp(-rate * T ) * d1 - strike * Exp(-rate * T ) * d2 ElseIf COP = 2 Then Price = -frw * Exp(-rate * T ) * (1 - d1) + strike * Exp(-rate * T ) * (1 - d2) end ifcan anyone tell me why? i don't see any bug there.thanks
why my delta is not 100
Posted: April 3rd, 2009, 7:12 pm
by crmorcom
delta is exp(-rt)N(d1), isn't it? So for positive r, you never get to 1.
why my delta is not 100
Posted: April 3rd, 2009, 7:16 pm
by quantcook
QuoteOriginally posted by: crmorcomdelta is exp(-rt)N(d1), isn't it? So for positive r, you never get to 1.it should always sum up to 1,else put call parity is not right.
why my delta is not 100
Posted: April 3rd, 2009, 7:28 pm
by crmorcom
What exactly does put/call parity say?
why my delta is not 100
Posted: April 3rd, 2009, 7:50 pm
by quantcook
QuoteOriginally posted by: crmorcomWhat exactly does put/call parity say?buddy , i found it out.it need to consider time value of money if using forward price.always discount back to present value.
why my delta is not 100
Posted: April 15th, 2009, 7:11 am
by arupb
I think , the normal distribution takes a sum of risk free interest rate and vol^2Henced1 = NormSDist((Log(frw / strike) + (0.5 * Vol^ 2) * T) / (Vol* T^ 0.5))should bed1 = NormSDist((Log(frw / strike) + (rate + 0.5 * Vol^ 2) * T) / (Vol* T^ 0.5))
why my delta is not 100
Posted: April 15th, 2009, 10:07 am
by Paolos
QuoteOriginally posted by: arupbI think , the normal distribution takes a sum of risk free interest rate and vol^2Henced1 = NormSDist((Log(frw / strike) + (0.5 * Vol^ 2) * T) / (Vol* T^ 0.5))should bed1 = NormSDist((Log(frw / strike) + (rate + 0.5 * Vol^ 2) * T) / (Vol* T^ 0.5))The interest rate (and, in case, the dividend yield) are already embodied in the forward price: Fwd=spot*[exp(rate-dividend)*T]
why my delta is not 100
Posted: April 15th, 2009, 1:15 pm
by crmorcom
QuoteOriginally posted by: PaolosQuoteOriginally posted by: arupbI think , the normal distribution takes a sum of risk free interest rate and vol^2Henced1 = NormSDist((Log(frw / strike) + (0.5 * Vol^ 2) * T) / (Vol* T^ 0.5))should bed1 = NormSDist((Log(frw / strike) + (rate + 0.5 * Vol^ 2) * T) / (Vol* T^ 0.5))The interest rate (and, in case, the dividend yield) are already embodied in the forward price: Fwd=spot*[exp(rate-dividend)*T]Quite right. In fact, the forward contains literally all the information about how the dividend yield and interest rate affect the risk-neutral forward price distribution. Since BS is for a European option, this is the only thing you care about (apart from discounting the premium to expiration). This is why it's always easier to write BS in terms of F rather than S: all the "r"s and "q"s go away and all that matters is the quadratic variation (sigma^2 T) and the forward strike-ratio.The only danger in always working with the forward is that you must be careful to compute delta with the spot price rather than the forward if that is the asset you are hedging with (e.g. equities).