Also this is the basic code implementation of the formulas....
Regards
Function snorm(z As Double) as double
Dim pi as double
pi=3.14159265358979
Dim a1 as double,a2 as double,a3 as double,a4 as double,a5 as double,k as double,w as double
a1 = 0.31938153
a2 = -0.356563782
a3 = 1.781477937
a4 = -1.821255978
a5 = 1.330274429
If 0 > z Then w = -1 Else w = 1
k = 1 / (1 + 0.2316419 * w * z)
snorm = 0.5 + w * (0.5 - 1 / Sqr(2 * pi) * Exp(-z ^ 2 / 2) * (a1 * k + a2 * k ^ 2 + a3 * k ^ 3 + a4 * k ^ 4 + a5 * k ^ 5))
End Function
' m drift
' s standard deviation
' t time
' H up barrier
' L down barrier
' K1,K2 barriers
' ST starting price
' ProbPTBB probability at time t the price is below the barrier
' ProbPTUB probability at time t the price is above the barrier
' ProbMaxPTUB probability at any time until t max price is crossing above the up barrier
' ProbMaxPTBB probability at any time until t max price is below the barrier
' ProbMinPTBB probability at any time until t min price is crossing bellow the down barrier
' ProbMinPTUB probability at any time until t min price is above the down barrier
' ProbFPBBMaxPTUB probability final price is below K1 and max price is crossing above the up barrier
' ProbFPUBMinPTBB probability final price is above K2 and min price is crossing below the down barrier
Function ProbPTBB(m as double, s as double, t as double, H as double, ST as double) as double
Dim MM as double
MM=m-s^2/2
ProbPTBB=snorm((log(H/ST)-MM*t)/(s*sqr(t)))
End Function
Function ProbPTUB(m as double, s as double, t as double, H as double, ST as double) as double
Dim MM as double
MM=m-s^2/2
ProbPTUB=1-snorm((log(H/ST)-MM*t)/(s*sqr(t)))
End Function
Function ProbMaxPTUB(m as double, s as double, t as double, H as double, ST as double) as double
Dim MM as double
MM=m-s^2/2
ProbMaxPTUB=snorm((-log(H/ST)+MM*t)/(s*sqr(t)))+((H/ST)^(2*MM/s^2))*snorm((-log(H/ST)-MM*t)/(s*sqr(t)))
End Function
Function ProbMaxPTBB(m as double, s as double, t as double, H as double, ST as double) as double
Dim MM as double
MM=m-s^2/2
ProbMaxPTBB=1-(snorm((-log(H/ST)+MM*t)/(s*sqr(t)))+((H/ST)^(2*MM/s^2))*snorm((-log(H/ST)-MM*t)/(s*sqr(t))))
End Function
Function ProbMinPTBB(m as double, s as double, t as double, L as double, ST as double) as double
Dim MM as double
MM=m-s^2/2
ProbMinPTBB=snorm((log(L/ST)-MM*t)/(s*sqr(t)))+((L/ST)^(2*MM/s^2))*snorm((log(L/ST)+MM*t)/(s*sqr(t)))
End Function
Function ProbMinPTUB(m as double, s as double, t as double, L as double, ST as double) as double
Dim MM as double
MM=m-s^2/2
ProbMinPTUB=1-(snorm((log(L/ST)-MM*t)/(s*sqr(t)))+((L/ST)^(2*MM/s^2))*snorm((log(L/ST)+MM*t)/(s*sqr(t))))
End Function
Function ProbFPBBMaxPTUB(m as double, s as double, t as double, H as double, K1 as double, ST as double) as double
Dim MM as double
MM=m-s^2/2
ProbFPBBMaxPTUB=((H/ST)^(2*MM/s^2))*snorm((log(K1/ST)-2*log(H/ST)-MM*t)/(s*sqr(t)))
End Function
Function ProbFPUBMinPTBB(m as double, s as double, t as double, L as double, K2 as double, ST as double) as double
Dim MM as double
MM=m-s^2/2
ProbFPUBMinPTBB=((L/ST)^(2*MM/s^2))*snorm((-log(K2/ST)+2*log(L/ST)+MM*t)/(s*sqr(t)))
End Function