1.准备工作
1.1导入相关包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
from pandas_datareader import data,wb
1.2使用python的pandas库导入所要分析的文件
#分析谷歌公司2006至今的股价情况,获取谷歌股价情况,从雅虎财经获取
goog=data.DataReader('GOOG',data_source='yahoo',start='2006-1-1')
Mac电脑中查询文件地址可以双击文件查看简介,或者打开终端,直接把文件拉进去就会直接在终端中会显示其路径。
#Adj Close 加权收盘价,由于股票可能进行分红,拆股,送转股等原因,使用加权收盘价更贴近真实的股价。
goog.head()
可以得到以下数据
#主要分析谷歌加权收盘价的走势情况,可以看出谷歌股价从06年开始总体趋势是不断上扬的,处于上行空间。
goog['Adj Close'].plot(figsize=(12,8))
#接着对收盘价按月份来进行重采样
g_yue=goog['Adj Close'].resample('M').ohlc()
#对谷歌的2019年股价走势情况,直接使用索引定位到2019。如果大家想要改成其他年份,可以将loc[' ']里面的参数修改以下成你想的年份就可以了。
goog['Adj Close'].loc['2019'].plot(figsize=(12,8))'
#接着分析谷歌的股票从2006年到现在的为止的收益率 ,goog['Adj Close'][-1]最新的收盘价,goog['Adj Close'][0]最早的收盘价。说明如果你从2006年购买谷歌的股票,到现在,已经涨了4.5倍,
z19=(goog['Adj Close'][-1]-goog['Adj Close'][0])/goog['Adj Close'][0]
#在计算一下年均收益率情况,首先计算从2006年到2019共13年,在使用股价总收益率的1/13次方,求的年均收益率
y_year=goog.index[-1].year-goog.index[0].year
#年均收益率
z19**(1/y_year)
#为了进一步分析,我们将加权收盘价转换以年的形式
goog['Adj Close'].to_period('A')
#其次,我们将其每年股价的第一个价格以图表的形式展示出来,level=0是以索引进行分组,first()第一个价格
goog['Adj Close'].to_period('A').groupby(level=0).first().plot()
#接下来使用移动窗口函数,进行分析在一段时间内股价的平均价格的情况,我们这里使用42天及250天来作为例子。
goog['42d']=goog['Adj Close'].rolling(window=42).mean()
goog['250d']=goog['Adj Close'].rolling(window=250).mean()
# 当42天平均价格的线在250天平均价格之上时,一般股价呈现为上升趋势,反之进入下行周期
goog[['Adj Close','42d','250d']].plot(figsize=(12,8),color=['y','b','r'])
#我们进一步使用对数收益率,shift是指将时间轴往前移,负数往后移
goog['duishu']=np.log(goog['Adj Close']/goog['Adj Close'].shift(1))
goog[['Adj Close','duishu']].plot(subplots=True ,figsize=(12,12))
#可知,在对数收益率波动较大的时候都是下降区间,收益率波动较小时处于上升区间。
网友评论