BS看跌期权python代码
时间: 2024-05-13 14:11:41 浏览: 8
BS(Black-Scholes)看跌期权是一种金融衍生品,用于投资者在未来某个时间点以事先确定的价格出售特定资产的权利。以下是一个简单的BS看跌期权的Python代码:
```python
from math import log, sqrt, exp
from scipy.stats import norm
def put_option_price(S, K, T, r, sigma):
d1 = (log(S / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * sqrt(T))
d2 = d1 - sigma * sqrt(T)
return K * exp(-r * T) * norm.cdf(-d2) - S * norm.cdf(-d1)
S = 100 # 股票现价
K = 95 # 行权价
T = 1 # 到期时间(单位:年)
r = 0.05 # 无风险利率
sigma = 0.2 # 波动率
put_price = put_option_price(S, K, T, r, sigma)
print("Put option price: ", put_price)
```
以上代码中,put_option_price()函数用于计算看跌期权的价格,其中参数S表示股票现价,K表示行权价,T表示到期时间,r表示无风险利率,sigma表示波动率。代码使用了SciPy库中的norm.cdf()函数来计算标准正态分布函数的值。
相关问题
BS看涨期权的Python代码
BS(Black-Scholes)模型是一种用于定价期权的数学模型,它是一种基于随机漫步(随机游走)的方法。BS看涨期权的Python代码可以使用以下代码实现:
```python
import numpy as np
from scipy.stats import norm
def bs_call(S, K, T, r, sigma):
d1 = (np.log(S / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * np.sqrt(T))
d2 = d1 - sigma * np.sqrt(T)
call = S * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2)
return call
```
其中,参数说明如下:
- S:标的资产当前价格
- K:期权行权价格
- T:期权到期时间(年化)
- r:无风险利率
- sigma:标的资产年化波动率
函数返回BS看涨期权的价格。如果需要计算BS看跌期权的价格,可以使用以下代码实现:
```python
def bs_put(S, K, T, r, sigma):
d1 = (np.log(S / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * np.sqrt(T))
d2 = d1 - sigma * np.sqrt(T)
put = K * np.exp(-r * T) * norm.cdf(-d2) - S * norm.cdf(-d1)
return put
```
BS期权python
BS期权是指Black-Scholes期权定价模型,它是一种用于计算欧式期权价格的数学模型。在Python中,你可以使用一些金融库来实现BS期权定价模型的计算。以下是一个示例代码:
```python
from math import log, sqrt, exp
from scipy.stats import norm
def bs_option_price(S, K, r, sigma, T, option_type):
d1 = (log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * sqrt(T))
d2 = d1 - sigma * sqrt(T)
if option_type == 'call':
option_price = S * norm.cdf(d1) - K * exp(-r * T) * norm.cdf(d2)
elif option_type == 'put':
option_price = K * exp(-r * T) * norm.cdf(-d2) - S * norm.cdf(-d1)
else:
raise ValueError("Invalid option type. Must be 'call' or 'put'.")
return option_price
# 示例用法
S = 100 # 标的物价格
K = 100 # 行权价格
r = 0.05 # 无风险利率
sigma = 0.2 # 波动率
T = 1 # 到期时间(年)
option_type = 'call' # 期权类型:'call' 或 'put'
option_price = bs_option_price(S, K, r, sigma, T, option_type)
print(f"The option price is: {option_price}")
```
这个示例代码演示了如何使用BS期权定价模型计算欧式期权的价格。你可以根据自己的需求调整输入参数,并将期权类型设置为'call'或'put'来计算相应的期权价格。