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

列名依次为:开始的价格、最高价格、最低价格、关市价格、关市价格、交易量

《Python 股票分析练习》 image

查看维度

alibaba.shape 
# 输出
(789, 6)

查看截止数据

alibaba.tail()

查看基本统计信息

alibaba.describe()

《Python 股票分析练习》 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)

《Python 股票分析练习》 image.png

《Python 股票分析练习》 image.png

查看alibaba、amazon关市价格趋势对比

alibaba['Adj Close'].plot()
amazon['Adj Close'].plot()

《Python 股票分析练习》 image

查看每天股票成交最高价和最低价差值的变化,股票的稳定情况(每天之内的变化)

alibaba['high-low'] = alibaba['High'] - alibaba['Low']
alibaba.head()
alibaba['high-low'].plot()

《Python 股票分析练习》 image

查看股票每天的变化情况

alibaba['daily-return'] = alibaba['Adj Close'].pct_change() 
# 折线图:观察每天的变化情况
alibaba['daily-return'].plot(figsize=(10,4),linestyle='--',marker='o')

《Python 股票分析练习》 image.png

# 直方图:查看变化区间的分布情况
alibaba['daily-return'].plot(kind='hist')

《Python 股票分析练习》 image.png

# 用seaborn来画直方图
sns.distplot(alibaba['daily-return'].dropna(),bins=100,color='purple')

《Python 股票分析练习》 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()

《Python 股票分析练习》 image.png

查看每只股票价格走势图

top_tech_df.plot()

《Python 股票分析练习》 image.png

查看股票每天的价格变化情况

top_tech_dr = top_tech_df.pct_change()
top_tech_dr.head()

《Python 股票分析练习》 image.png

绘制散点图:查看两支股票在 每天股票价格变化 的相关性

sns.jointplot('AMZN','GOOG', top_tech_dr, kind='scatter')

《Python 股票分析练习》 image.png

# 对所有变量进行两两比较
sns.pairplot(top_tech_dr.dropna())

《Python 股票分析练习》 image.png

    原文作者:他与理想国
    原文地址: https://www.jianshu.com/p/ea371042bd17
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞