Python股票数据分析

python版本:3.4
最近在学习基于python的股票数据分析,其中主要用到了tushare和seaborn。tushare是一款财经类数据接口包,国内的股票数据还是比较全的,官网地址:#id5。seaborn则是一款绘图库,通过seaborn可以轻松地画出简洁漂亮的图表,而且库本身具有一定的统计功能。
导入的模块:
importmatplotlib.pyplotasplt
importseabornassns
importseaborn.linearmodelsassnsl
fromdatetimeimportdatetime
importtushareasts
代码部分:
股票收盘价走势曲线
sns.set_style(whitegrid)
end=datetime.today()#开始时间结束时间,选取最近一年的数据
start=datetime(end.year-1,end.month,end.day)
end=str(end)[0:10]
start=str(start)[0:10]
stock=ts.get_hist_data('300104',start,end)#选取一支股票
stock['close'].plot(legend=true,figsize=(10,4))
plt.show()
股票日线
同理,可以做出5日均线、10日均线以及20日均线
stock[['close','ma5','ma10','ma20']].plot(legend=true,figsize=(10,4))
日线、5日均线、10日均线、20日均线
股票每日涨跌幅度
stock['dailyreturn']=stock['close'].pct_change()
stock['dailyreturn'].plot(legend=true,figsize=(10,4))
每日涨跌幅
核密度估计
sns.kdeplot(stock['dailyreturn'].dropna())
核密度估计+统计柱状图
sns.distplot(stock['dailyreturn'].dropna(),bins=100)
核密度+柱状图
两支股票的皮尔森相关系数
sns.jointplot(stock['dailyreturn'],stock['dailyreturn'],alpha=0.2)
皮尔森相关系数
多只股票相关性计算
stock_lis=['300113','300343','300295','300315`]#随便选取了四支互联网相关的股票
df=pd.dataframe()
forstockinstock_lis:
closing_df=ts.get_hist_data(stock,start,end)['close']
df=df.join(pd.dataframe({stock:closing_df}),how='outer')
tech_rets=df.pct_change()
snsl.corrplot(tech_rets.dropna())
相关性
简单地计算股票的收益与风险,衡量股票收益与风险的数值分别为股票涨跌的平均值以及标准差,平均值为正则说明收益是正的,标准差越大则说明股票波动大,风险也大。
rets=tech_rets.dropna()
plt.scatter(rets.mean(),rets.std())
plt.xlabel('exceptedreturn')
plt.ylabel('risk')
forlabel,x,yinzip(rets.columns,rets.mean(),rets.std()):#添加标注
plt.annotate(
label,
xy=(x,y),xytext=(15,15),
textcoords='offsetpoints',
arrowprops=dict(arrowstyle='-',connectionstyle='arc3,rad=-0.3'))