Advertisement
Guest User

Untitled

a guest
Oct 27th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 0.49 KB | None | 0 0
  1. #Note: due to 64 bit floating point limitations, do not call with N>60
  2. function binomEU(S,K,T,r,sigma,N)
  3.   if N>60
  4.     error("USE N<60")
  5.   end
  6.   dt = T/N
  7.   U = exp((r  - (sigma^2)/2)*dt + sigma*(dt^.5))
  8.   D = exp((r  - (sigma^2)/2)*dt - sigma*(dt^.5))
  9.   R = exp(r*dt)
  10.   P = (R-D)/(U-D)
  11.   period = Array{Float64}(N)
  12.   for i in 1:N
  13.     period[i] = binomial(N,i) * P^i *(1-P)^(N-i) * max(U^i * D^(N-i) *S - K,0)
  14.   end
  15.   C = (1/R^N)*sum(period)
  16.   P = C - (S - K*R^(-N))
  17.   return C,P
  18. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement