Mathematical Finance Programming in TI-BASIC
From Wikipedia, the free encyclopedia
Contents |
[edit] Financial background
Quantitative (mathematical) finance is based on stochastic calculus, and more specifically on the Ito's Lemma.
[edit] TI-BASIC programs
[edit] Ito's lemma
Let's begin defining a stochastic process through its Ito's definition:
:defsto(t,x) :Func :{t,x} :EndFunc
So for our TI-calculator, a diffusion process formally defined by:
dS = f(S,t)dt + g(S,t)dW
is defined by a set of two terms:
{ f(S,t), g(S,t) }
For an exponential brownian motion, we define:
defsto(m*s, sigma*s) → ds(s)
Now we want to use Ito's lemma on functions of S and t:
:dsto(f,x,t,ds) :Func :{d(f,t)+ds[1]*d(f,x)+ds[2]^2*d(d(f,x),x)/2 , ds[2]*d(f,x)} :EndFunc
This can now be used to apply Ito's lemma to ln(S):
dsto(ln(S),S,t,ds(S)) >> { m - sigma^2/2 , sigma }
this tell us that:
[edit] Black-Scholes Equation
Now we can try to prove the Black-Scholes equation.
Define a portfolio with an option and Δ shares of S:
V(S,t) - Delta * S → Pi
and apply Ito's lemma to obtain dΠ:
dsto(Pi, S, t, ds(S)) → dPi
we now want to nullify the stochastic part of dΠ by chosing an appropriate value for Δ:
solve( dPi[2]=0, Delta) >> Delta = d(V(S,t), S) or sigma S = 0
we now know that the correct value for Δ is:
On another side, we have:
which leads us to the equation:
At first we need to replace Δ by its value into dΠ, and then equalize with
solve( dPi[2]=0, Delta) | sigma > 0 and S > 9 → sol >> Delta = d(V(S,t), S) dPi | sol → dPi >> {sigma^2 d^2(V(S,t), S^2) S^2 /2 + d(V(S,t), t) , 0 } dPi = defsto( r(V(S,t) - Delta S) ) | sol → BS >> { BS_equation , true }
and now we've got the Black-Schole Differential Equation into the variable BS_equation[1]!