def BSOpt( IsCall, Spot, Strike, Vol, Texp, Rd, Rf ):
'Standard Black-Scholes European vanilla pricing.'
if Strike <= 1e-12 * Spot:
if IsCall:
return Spot * exp( -Rf * Texp )
else:
return 0.
if IsCall:
return Spot * exp( -Rf * Texp ) * cnorm( d1( Spot, Strike, Vol, Texp, Rd, Rf ) ) \
- Strike * exp( -Rd * Texp ) * cnorm( d2( Spot, Strike, Vol, Texp, Rd, Rf ) )
else:
return Strike * exp( -Rd * Texp ) * cnorm( -d2( Spot, Strike, Vol, Texp, Rd, Rf ) ) \
- Spot * exp( -Rf * Texp ) * cnorm( -d1( Spot, Strike, Vol, Texp, Rd, Rf ) )
评论列表
文章目录