本文python股票市场分析实战主要包括两个方面一是历史趋势分析
二是风险分析
实验数据:来源于Yahoo Finance,网址:https://finance.yahoo.com ,该网站提供了很多API接口,读取数据很方便,本文可以安装使用第三方库pandas-datareader直接访问Yahoo的股票信息
数据获取
访问数据import pandas_datareader as pdr
alibaba = pdr.get_data_yahoo('BABA')
alibaba.head()
列名依次为:开始的价格、最高价格、最低价格、关市价格、关市价格、交易量
image
查看维度alibaba.shape
# 输出(789, 6)
查看截止数据alibaba.tail()
查看基本统计信息alibaba.describe()
imagealibaba.info()# 输出DatetimeIndex: 789 entries, 2014-09-19 to 2017-11-03Data columns (total 6 columns):
Open 789 non-null float64
High 789 non-null float64
Low 789 non-null float64
Close 789 non-null float64
Adj Close 789 non-null float64
Volume 789 non-null int64dtypes: float64(5), int64(1)
memory usage: 43.1 KB
历史趋势分析
读取股票数据start = datetime(2015,9,20) # 设定读取的股票时间alibaba = pdr.get_data_yahoo('BABA', start=start)
amazon = pdr.get_data_yahoo('AMZN', start=start)
alibaba.to_csv('../homework/BABA.csv') # 保存成csv文件amazon.to_csv('../homework/AMZN.csv')
查看数据alibaba.head()
查看关市价格、成交量趋势alibaba['Adj Close'].plot(legend=True)
alibaba['Volume'].plot(legend=True)
image.png
image.png
查看alibaba、amazon关市价格趋势对比alibaba['Adj Close'].plot()amazon['Adj Close'].plot()
image
查看每天股票成交最高价和最低价差值的变化,股票的稳定情况(每天之内的变化)alibaba['high-low'] = alibaba['High'] - alibaba['Low']
alibaba.head()
alibaba['high-low'].plot()
image
查看股票每天的变化情况alibaba['daily-return'] = alibaba['Adj Close'].pct_change()
# 折线图:观察每天的变化情况alibaba['daily-return'].plot(figsize=(10,4),linestyle='--',marker='o')
image.png# 直方图:查看变化区间的分布情况alibaba['daily-return'].plot(kind='hist')
image.png# 用seaborn来画直方图sns.distplot(alibaba['daily-return'].dropna(),bins=100,color='purple')
image.png
风险分析
读取股票数据:关市价格start = datetime(2015,1,1)
company = ['AAPL','GOOG','MSFT','AMZN','FB']
top_tech_df = pdr.get_data_yahoo(company, start=start)['Adj Close']
top_tech_df.to_csv('../homework/top5.csv') # 保存成csv格式top_tech_df.head()
image.png
查看每只股票价格走势图top_tech_df.plot()
image.png
查看股票每天的价格变化情况top_tech_dr = top_tech_df.pct_change()
top_tech_dr.head()
image.png
绘制散点图:查看两支股票在 每天股票价格变化 的相关性sns.jointplot('AMZN','GOOG', top_tech_dr, kind='scatter')
image.png# 对所有变量进行两两比较sns.pairplot(top_tech_dr.dropna())
image.png
作者:他与理想国
链接:https://www.jianshu.com/p/ea371042bd17