Python 股票分析练习

本文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()
image
alibaba.info()
# 输出
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 789 entries, 2014-09-19 to 2017-11-03
Data 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 int64
dtypes: 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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,056评论 2 89
  • Matplotlib 入门教程 来源:Introduction to Matplotlib and basic l...
    布客飞龙阅读 31,902评论 5 162
  • 带着忧郁的情绪去旅行,因为灵魂已高远,而肉体依然沉重。这种分离的痛其实很令我无所适从,就像这座海拔近300...
    nan_jia_gg阅读 1,629评论 6 8
  • 2018.7.1 体验:心痛、感动、痛苦、难受、轻松、开心的 CP二讲第三天,一整天下来充满各种体验,体验学员的体...
    Ami149131阅读 88评论 0 0
  • 确诊有两周了,每天过得浑浑噩噩,一直在想为什么我会得这种病,为什么就是我,为什么大家都在努力,我却无动于衷,一点点...
    Valarmor阅读 282评论 0 0