原标题:Python股票数据分析

数据挖掘入门与实战 公众号: datadw

python版本:3.4

最近在学习基于python的股票数据分析,其中主要用到了tushare和seaborn。tushare是一款财经类数据接口包,国内的股票数据还是比较全的,官网地址:。seaborn则是一款绘图库,通过seaborn可以轻松地画出简洁漂亮的图表,而且库本身具有一定的统计功能。

导入的模块:

import matplotlib.pyplot as plt

import seaborn as sns

import seaborn.linearmodels as snsl

from datetime import datetime

import tushare as ts

代码部分:

股票收盘价走势曲线

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()

b4e649b9baeb499aba08c7abc2f80d9d_th.png

股票日线

同理,可以做出5日均线、10日均线以及20日均线

stock[['close','ma5','ma10','ma20']].plot(legend=True ,figsize=(10,4))

9b6eea0c2afb4a4c963c281c71febf23_th.jpeg

日线、5日均线、10日均线、20日均线

股票每日涨跌幅度

stock['Daily Return'] = stock['close'].pct_change()

stock['Daily Return'].plot(legend=True,figsize=(10,4))

787d0fba5a1545d5a7517d13a40d8c0e_th.jpeg

每日涨跌幅

核密度估计

sns.kdeplot(stock['Daily Return'].dropna())

b7116d524d6749fba0c9f9accbb7cfc8_th.png

核密度估计

核密度估计+统计柱状图

sns.distplot(stock['Daily Return'].dropna(),bins=100)

c116a6f2c72c46f5a6736710cbbaa92c_th.png

核密度+柱状图

两支股票的皮尔森相关系数

sns.jointplot(stock['Daily Return'],stock['Daily Return'],alpha=0.2)

b612564895c949218a67c85c7b33b6a1_th.png

皮尔森相关系数

多只股票相关性计算

stock_lis=['300113','300343','300295','300315`] #随便选取了四支互联网相关的股票

df=pd.DataFrame()

for stock in stock_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())

28bf2a88b0834841a770345e3b681870_th.png

相关性

简单地计算股票的收益与风险,衡量股票收益与风险的数值分别为股票涨跌的平均值以及标准差,平均值为正则说明收益是正的,标准差越大则说明股票波动大,风险也大。

rets = tech_rets.dropna()

plt.scatter(rets.mean(),rets.std())

plt.xlabel('Excepted Return')

plt.ylabel('Risk')

for label,x,y in zip(rets.columns,rets.mean(),rets.std()):#添加标注 plt.annotate( label, xy =(x,y),xytext=(15,15), textcoords = 'offset points', arrowprops = dict(arrowstyle = '-',connectionstyle = 'arc3,rad=-0.3'))

6bd3b0003f82442796019fec11387ef7_th.png

数据挖掘入门与实战

教你机器学习,教你数据挖掘

公众号: weic2c

责任编辑:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐