波动率的一些数学与python

论坛 期权论坛 期权     
期权匿名问答   2022-2-18 06:18   9062   0
之前曾经写过两篇关于波动率的文章,当时对于波动率的理解还处于比较初级的阶段,所以文章质量也有点草草。因此这篇文章打算从头开始,对于波动率进行一些介绍。
我们在分析股票价格的运动时,假设股价的变化符合某种统计学分布。最简单的是假设股价符合常见的正态分布,也叫做高斯分布。正态分布有许多非常易于计算的性质,而且使用期望值和标准差就可以刻画一个正态分布。


可以看到,给定某个初始变量x, 我们计算股价 只需要期望值 和标准差 。那么给定一组股价,我们可以计算出它的期望值(也就是平均值)和标准差, 看看它实际上是否符合。
我们取的是510300的ETF股价,使用python绘图。


黄色为正态分布曲线,蓝色则是实际的价格直方图。x轴为股价的区间,对于黄色的正态分布曲线,y轴为概率密度。可以看到股价并没有那么符合正态分布。然而由于正态分布的优良性质,我们仍然希望使用正态分布,只是需要对它进行一些转换。
代码如下:
import tushare as ts
import matplotlib.pyplot as plt
import numpy as np

def normfun(x,mu,sigma):
    pdf = np.exp(-((x - mu)**2)/(2*sigma**2)) / (sigma * np.sqrt(2*np.pi))
    return pdf

df = ts.get_k_data('510300')
close =np.array(df.close)
mean = close.mean()
std = close.std()

x_max = close.max()
x_min = close.min()
x= np.arange(x_min,x_max,0.1)
y = normfun(x, mean, std)

plt.xlim(x_min,x_max)
plt.hist(close,bins=int(np.sqrt(len(close))),rwidth=0.9, normed=True)
plt.plot(x,y)
plt.show()另一个问题则是 正态分布在股价小于0时依然存有概率。这明显是不符合实际情况的。
综合这两个因素,我们先做一个假设,股价的对数符合正态分布。那么我们看看直方图是怎样的结果。


ln_close =np.array(df.close)
ln_close = np.log(y_close)
mean = ln_close.mean()
std = ln_close.std()

x_max = ln_close.max()
x_min = ln_close.min()
x= np.arange(x_min,x_max,0.1)
y = normfun(x, mean, std)

plt.xlim(x_min,x_max)
plt.hist(ln_close,bins=int(np.sqrt(len(ln_close))),
         rwidth=0.9, normed=True)
plt.plot(x,y)
plt.show()
对数化解决了股价不为0的假设。但是依然对数股价还是不满足正态分布的特点。实际上,我们可以发现对数股价和股价一样,频率和正态分布有一些差别。这也就是我们使用对数正态股价模型需要谨慎的原因。
所以接下来,我们继续变化,使用对数股价的差值而不是对数股价。实际上对数股价的差值我们称之为收益率,原因如下。


那么我们试试看收益率是否能够符合正态分布。


close =np.array(df.close)
ln_close = np.log(close)
r = [ln_close[i+1]-ln_close for i in range(0,len(ln_close)-1)]
r= np.array(r)

mean = r.mean()
std = r.std()
x_max = r.max()
x_min = r.min()

x = np.arange(x_min, x_max, 0.001)
y = normfun(x, mean, std)
plt.xlim(x_min, x_max)
plt.hist(r, bins=int(np.sqrt(len(r))), rwidth=0.9, density=True)
plt.plot(x, y)
plt.show()Wow, 这次形状明显好看多了,也符合正态分布的形状。但是我们仍然不可忽略的是,在均值上,收益率明显要高于正态分布的值,而在两端,收益率也出现了肥尾。
所以综合一下,对数价格差最符合正态分布的假设。那么我们需要考虑的是,这个正态分布的标准差意味着什么。 考虑到收益率的定义,这个标准差实际上就是每天收益率的标准差。而在金融数学里,我们为这个标准差取了一个特别的名字,叫做波动率。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP