所运用的东西
python3.6Juypter notebook(交互式IDE,引荐运用)numpy,pandas用于数据剖析matplotlib,seaborn用于数据可视化pandas_datareader用于猎取股票数据
数据猎取
我们能够从pandas_datareader猎取股票数据。起首须要装置这个库
相干引荐:《python视频教程》
pip install pandas pip install pandas-datareader
然后就能够接见数据了
from pandas_datareader.data import DataReader datas = DataReader(name='BABA', data_source='yahoo', start='2015-01-01', end='2018-01-01')
在这里,我起首把数据存为了csv文件,让我们起首看看阿里巴巴前几年的股票数据吧。
import pandas as pd file = 'BABA.csv' #csv文件index = 'Date' #将日期作为索引列alibaba = pd.read_csv(file, index_col=index) #读取csv文件数据
然后我们简朴的检察一下阿里巴巴的股票数据
alibaba.head(n = 5) #检察前5行数据
下面是股票数据的前5行,我们能够看到天天的开盘价,收盘价,最高值,最低值,成交量等。
然后再检察一下这些数据的形貌,猎取对数据的直观感觉。
alibaba.describe()
这是对数据的统计量的一些剖析,能够看到总共有789行数据,最高值和最低值相差不大。
汗青趋向剖析
在剖析之前,我们先导入所须要的Python科学盘算库。
# 数据剖析 import numpy as np import pandas as pd from pandas import Series, DataFrame# 可视化 import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline
我们起首剖析股票的闭盘价的整体趋向。
alibaba['Adj Close'].plot(legend = True) plt.title('Alibaba Adj Close') plt.ylim([50,200]) plt.xlabel('Date') plt.ylabel('Price')
能够看到,虽然中心也有小小的波动,闭盘价整体趋向是上升的,这表明阿里巴巴的市值一直在上升。
然后我们相识一下天天阿里巴巴股票的日收益率,毕竟,在股市赢利,主要靠的就是低买高卖获得的收益。
size = (10,8) alibaba['daily-return'].plot(figsize = size,linestyle = '--',marker = 'o') #折线图,原点示意最大最小点plt.title('Alibaba daily return') plt.xlabel('Date') plt.ylabel('daily return rate')
天天的收益率不是稳固的,证实股市有风险,须要郑重看待。
有用小学问:pct_change()函数将每一个元素与其前一个元素举行比较,并盘算变化百分比。默许状况下,pct_change()对列举行操纵; 假如想运用到行上,那末可运用axis = 1参数。
我们再运用密度图和直方图检察一下日收益率的整体状况。
data = alibaba['daily-return'].dropna() #消灭异常值bins = 50 #分为50个区间#在统一张图上画出散布直方图和密度图sns.distplot(data, bins = bins, color = 'red',hist = True, kde = True) plt.title('Alibaba daily return distribution') plt.xlabel('daily-return') plt.ylabel('probablity') plt.xlim([-0.05,0.1])
从图中我们能够看出,整体收益率基础稳固在0摆布,盈或许损是对称的。
风险剖析
在风险剖析里,我们对照几家互联网行业的大公司,看看它们的股票有什么差别,这里我选的5家公司是苹果,谷歌,亚马逊,微软,Facebook,时候是2015年到2017年。(人人也能够夙昔面的百度网盘里面的链接猎取哦。)
读取top5.csv文件猎取数据,按时候举行排序,并举行检察。
file = "top5.csv"index = 'Date'top_tech_df = pd.read_csv(file,index_col = index) #读取数据 top_tech_df=top_tech_df.sort_index() #按索引,也就是时候排序 top_tech_df.head(n = 5)
这里的数据指的是股票的闭盘价,这是前5条数据。
起首综合比对一下这5家公司,看看谁更凶猛。
top_tech_df.plot(kind = 'line') #折线图plt.title('five company adj close picture') plt.xlabel('Date') plt.ylabel('price') plt.legend() #增加图例
能够看到谷歌和亚马逊,闭盘价一直高于其他三家公司,而这两家也是貌似有点关联,你升我也升,你降我也降。
上面图中看到其他三家貌似是安稳生长的,实在因为图的比例太大,致使相对平缓,实在的状况实际上是此起彼伏,也有很大波动,下面检察一下。
another_company = ['AAPL','FB','MSFT'] top_tech_df[another_company].plot() plt.title('another company adj close picture') plt.xlabel('Date') plt.ylabel('price') plt.legend()
从上面相识到谷歌和亚马逊的闭盘价变化有着某种相似性,我们再来看看日收益率。
sns.jointplot("AMZN",'FB',top_tech_dr,kind='scatter',color = 'red',size=8) plt.title('joint with AMZN and FB')
谷歌和亚马逊的收益率也好像是正相干的,这能够作为展望这两家股票生长的一个参考要素。
以上就是python能够用来炒股吗的细致内容,更多请关注ki4网别的相干文章!