【经济模型】A股市场股票数据分布分析

基础知识

对于股票数据的模型构建,一般采用几何布朗运动模型。若股票价格S是一个连续的时间序列,则认为有
d S = μ S d t + σ S d z dS=\mu Sdt+\sigma Sdz dS=μSdt+σSdz
根据上式可以推出股票价格的对数 l n S ln S lnS
d ( l n S ) = ( μ − σ 2 2 ) d t + σ d z d(ln S)=(\mu-\frac{\sigma^2}{2})dt+\sigma dz d(lnS)=(μ2σ2)dt+σdz
对于离散的股票数据而言,假设t时刻股票的价格为 S t S_t St,而t+1时刻的股票价格为 S t + 1 S_{t+1} St+1。由上式可以得到
l n ( S t + 1 S t ) ~ N [ ( μ − σ 2 2 ) ( T − t ) , σ T − t ] ln(\frac{S_{t+1}}{S_t}) ~ N[ (\mu-\frac{\sigma^2}{2})(T-t),\sigma \sqrt{T-t}] ln(StSt+1)N[(μ2σ2)(Tt),σTt ]
上式左边为股票的对数收益率(和 S T + 1 − S T S T \frac{S_{T+1}-S_T}{S_T} STST+1ST几乎相同)。所以理论上认为股票收益率服从对数正态分布。

实际验证

为了验证A股市场上的股票收益率是否满足上述分布,分析过程包括以下几个步骤:获取股票数据,计算对数收益率,画图分析等。

获取数据

通过pandas_datareader获得单个股票的数据,这里以上证指数(000001.SS)为例。

import pandas_datareader as web
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
start=datetime(2015,1,1)
end=datetime(2016,1,1)
data=web.DataReader("000001.SS","yahoo",start,end)
print(data.head())
data["Close"].plot()
plt.show()

上证指数从2015年到2016年的数据

上证指数(2015年~2016年)
计算对数收益率
data["lgreturns"]=(data["Close"]/data["Close"].shift(1)).apply(np.log)
data["lgreturns"].plot.bar()
plt.xticks([])
plt.show()
data["lgreturns"].plot.hist(bins=50,rwidth=0.8,color="red")
plt.show()

在这里插入图片描述

收益率(2015~2016)

在这里插入图片描述

收益率分布(2015~2016)

由上面两幅图可以看到,收益率呈现出正态分布的特征。如果增加数据样本,收益率的分布会更加接近正态分布的特征。在这里插入图片描述

收益率分布(2010~2020)
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值