Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. #修正BS公式
  2. from scipy.stats import norm
  3. from math import exp,log,sqrt
  4. def BS_Call(S0, sigma ,r,T,K):
  5. d1 = (log(S0 / K) + (r + sigma**2 / 2) * T) / (sigma * sqrt(T))
  6. d2 = d1 - sigma * sqrt(T)
  7. BS_Call = S0 * norm.cdf(x=d1, loc=0, scale=1) - K * exp(-r * T) * norm.cdf(x=d2, loc=0, scale=1)
  8. return BS_Call
  9. def BS_Put(S0, sigma ,r,T,K):
  10. d1 = (log(S0 / K) + (r + sigma**2 / 2) * T) / (sigma * sqrt(T))
  11. d2 = d1 - sigma * sqrt(T)
  12. BS_Put = K * exp(-r * T) * norm.cdf(x=-d2, loc=0, scale=1)-S0 * norm.cdf(x=-d1, loc=0, scale=1)
  13. return BS_Put
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement