:

## Ito's Elusive Lemma

Maple

I started six month ago with what I though at the time to be a simple question.

Why is the mean in the Black and Scholes model assumed to be (mu-(1/2)*sigma^2)*T ?

I had seen numerous attempts of deriving such an relationship on the Internet but every solution that I found always had some flaw in the step-by-step mathematical logic which meant that the solution was rendered useless.

I must admit I was quite disappointed. For me good mathematics is when you can explain a highly complex processes in a step-by-step logical and motivated way ie A-->B-->C-->D. Unfortunately most reproduced mathematical derivations does not present it self in such an utopian and altruistic way which in many ways is a pain in the *k%\$£.

Then I came across the book:  Introduction to Derivative Securities: An Interactive E-Book, powered by Maple by Eliezer Z. Prisman where the author actually had made a quite good attempt from a logical and sequential perspective (dont ask me about the mathematical reasons behind the steps because I have not managed to figure them out yet) in trying to derive and explain Ito's lemma. I have augmented and improved such an derivation of Ito's lemma in Maple as follows:

restart:
step1 := G(S+dS, t+dt) = convert(mtaylor(G(S+dS, t+dt), [dS, dt], 3), diff):
step2 := step1-G(S, t):
step3 := dG = expand(subs(dS = mu*S*dt+sigma*S*dz, rhs(step2))) :
step4 := subs(dt^2 = 0, step3) :
step5 := algsubs(dt*dz = 0, step4) :
step6 := subs(dz^2 = dt, step5):
Ito := collect(step6, dt); I feel quite comfortable with such an derivation because all the mechanics are there. The only thing that is left is to figure out why.

Then by reading in Hull's book "Options, Futures, and Other Derivaties" we can get the second piece of the puzzle. We assume that G(S,t)=ln(S) which gives us the final expressions for the mean and variance

G := (S,t)->ln(S):
sort(Ito, mu);
Mean = (mu-(1/2)*sigma^2)*T;
Variance = sigma^2*T;
ln(S[t]/S[t-1]) = Normal((mu-(1/2)*sigma^2)*T, sigma*sqrt(T));
simplify(lhs(%), symbolic) = rhs(%);  ﻿