在Python库中的static模块用什么函数可以求数据的样本方差

Python017

在Python库中的static模块用什么函数可以求数据的样本方差,第1张

自定义函数求解即可,参考代码如下:

def f_sigma(x):

# 通过Python定义一个计算变量波动率的函数

# x:代表变量的样本值,可以用列表的数据结构输入

n = len(x)

u_mean = sum(x)/n #计算变量样本值的均值

z = [] #生成一个空列表

for t in range(n):

z.append((x[t]-u_mean)**2)

return (sum(z)/(n-1))**0.5# n-1 自由度

a = f_sigma(x = [1,2,3])

print('样本方差:', a)

设定参数

r=0.032 # risk-free interest rate

t=float(30)/365 # time to expire (30 days)

q=0 # dividend yield

S0=2.3 # underlying price

X=2.2 # strike price

mktprice=0.18 # market price

# 用二分法求implied volatility,暂只针对call option

sigma=0.3 # initial volatility

C=P=0

upper=1

lower=0

while abs(C-mktprice)>1e-6:

d1=(np.log(S0/X)+(r-q+sigma**2/2)*t)/(sigma*np.sqrt(t))

d2=d1-sigma*np.sqrt(t)

C=S0*np.exp(-q*t)*norm.cdf(d1)-X*np.exp(-r*t)*norm.cdf(d2)

P=X*np.exp(-r*t)*norm.cdf(-d2)-S0*np.exp(-q*t)*norm.cdf(-d1)

if C-mktprice>0:

upper=sigma

sigma=(sigma+lower)/2

else:

lower=sigma

sigma=(sigma+upper)/2

print sigma # implied volatility