搜索
首页后端开发Python教程python可以用来炒股吗
python可以用来炒股吗Jun 18, 2019 pm 05:53 PM
python炒股

Python是一门广泛在各个行业应用的语言,包括计算机,生物学,金融。可以说,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行,我们可以看到每天的开盘价,收盘价,最高值,最低值,成交量等。

1560850977(1).png

然后再查看一下这些数据的描述,获取对数据的直观感受。

alibaba.describe()

这是对数据的统计量的一些分析,可以看到总共有789行数据,最高值和最低值相差不大。

1560851018(1).png

历史趋势分析

在分析之前,我们先导入所需要的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')

可以看到,虽然中间也有小小的波动,闭盘价总体趋势是上升的,这表明阿里巴巴的市值一直在上升。

1560851114(1).png

然后我们了解一下每天阿里巴巴股票的日收益率,毕竟,在股市赚钱,主要靠的就是低买高卖得到的收益。

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

每天的收益率不是稳定的,证明股市有风险,需要谨慎对待。

1560851155(1).png

实用小知识: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左右,盈或者损是对称的。

1560851193(1).png

风险分析

在风险分析里,我们对比几家互联网行业的大公司,看看它们的股票有什么差异,这里我选的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条数据。

1560851257(1).png

首先综合比对一下这5家公司,看看谁更厉害。

top_tech_df.plot(kind = 'line')      #折线图plt.title('five company adj close picture')
plt.xlabel('Date')
plt.ylabel('price')
plt.legend()     #添加图例

可以看到谷歌和亚马逊,闭盘价始终高于其他三家公司,而这两家也是貌似有点关系,你升我也升,你降我也降。

1560851300(1).png

上面图中看到其他三家貌似是平稳发展的,其实由于图的比例太大,导致相对平缓,真实的情况其实是此起彼伏,也有很大波动,下面查看一下。

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

1560851336(1).png

从上面了解到谷歌和亚马逊的闭盘价变化有着某种相似性,我们再来看看日收益率。

sns.jointplot("AMZN",'FB',top_tech_dr,kind='scatter',color = 'red',size=8)
plt.title('joint with AMZN and FB')

谷歌和亚马逊的收益率也好像是正相关的,这可以作为预测这两家股票发展的一个参考因素。

1560851381(1).png

以上是python可以用来炒股吗的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
详细讲解Python之Seaborn(数据可视化)详细讲解Python之Seaborn(数据可视化)Apr 21, 2022 pm 06:08 PM

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

详细了解Python进程池与进程锁详细了解Python进程池与进程锁May 10, 2022 pm 06:11 PM

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

Python自动化实践之筛选简历Python自动化实践之筛选简历Jun 07, 2022 pm 06:59 PM

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

归纳总结Python标准库归纳总结Python标准库May 03, 2022 am 09:00 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于标准库总结的相关问题,下面一起来看一下,希望对大家有帮助。

Python数据类型详解之字符串、数字Python数据类型详解之字符串、数字Apr 27, 2022 pm 07:27 PM

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

分享10款高效的VSCode插件,总有一款能够惊艳到你!!分享10款高效的VSCode插件,总有一款能够惊艳到你!!Mar 09, 2021 am 10:15 AM

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

详细介绍python的numpy模块详细介绍python的numpy模块May 19, 2022 am 11:43 AM

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

python中文是什么意思python中文是什么意思Jun 24, 2019 pm 02:22 PM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

安全考试浏览器

安全考试浏览器

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

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