Python是一门广泛在各个行业应用的语言,包括计算机,生物学,金融。可以说,python除了不会生孩子,其他啥都行。本文将使用python来玩转股票数据,让你见识Python的强大。
所使用的工具
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可以用来炒股吗的详细内容。更多信息请关注PHP中文网其他相关文章!

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),