六、股票市场分析实战项目一
数据获取
import pandas_datareader as pdr
alibaba = pdr.get_data_yahoo('BABA')
alibaba.head()
结果:
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
Date | ||||||
2014-09-19 | 92.699997 | 99.699997 | 89.949997 | 93.889999 | 93.889999 | 271879400 |
2014-09-22 | 92.699997 | 92.949997 | 89.500000 | 89.889999 | 89.889999 | 66657800 |
2014-09-23 | 88.940002 | 90.480003 | 86.620003 | 87.169998 | 87.169998 | 39009800 |
2014-09-24 | 88.470001 | 90.570000 | 87.220001 | 90.570000 | 90.570000 | 32088000 |
2014-09-25 | 91.089996 | 91.500000 | 88.500000 | 88.919998 | 88.919998 | 28598000 |
alibaba.shape#(789, 6)
alibaba.tail()
结果:
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
Date | ||||||
2017-10-30 | 178.429993 | 181.899994 | 177.589996 | 181.580002 | 181.580002 | 20219700 |
2017-10-31 | 183.570007 | 185.119995 | 181.811005 | 184.889999 | 184.889999 | 21256700 |
2017-11-01 | 187.880005 | 188.880005 | 183.580002 | 186.080002 | 186.080002 | 28594700 |
2017-11-02 | 190.990005 | 191.220001 | 183.309998 | 184.809998 | 184.809998 | 41239900 |
2017-11-03 | 186.509995 | 186.929993 | 182.059998 | 183.210007 | 183.210007 | 19621400 |
alibaba.describe()#汇总信息,基本信息
结果:
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
count | 789.000000 | 789.000000 | 789.000000 | 789.000000 | 789.000000 | 7.890000e+02 |
mean | 98.879004 | 99.977879 | 97.622681 | 98.800431 | 98.800431 | 1.681925e+07 |
std | 29.076254 | 29.240037 | 28.743547 | 29.007961 | 29.007961 | 1.427472e+07 |
min | 57.299999 | 58.650002 | 57.200001 | 57.389999 | 57.389999 | 3.775300e+06 |
25% | 79.849998 | 80.989998 | 79.150002 | 79.889999 | 79.889999 | 1.003060e+07 |
50% | 89.099998 | 90.459999 | 88.059998 | 88.900002 | 88.900002 | 1.340540e+07 |
75% | 106.500000 | 107.550003 | 105.129997 | 105.980003 | 105.980003 | 1.915080e+07 |
max | 190.990005 | 191.220001 | 183.580002 | 186.080002 | 186.080002 | 2.718794e+08 |
alibaba.info()#也是基本信息
结果:
![](/assets/blank.gif)
![](/assets/blank.gif)
<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
View Code
历史趋势分析
# 基本信息
import numpy as np
import pandas as pd
from pandas import Series, DataFrame# 股票数据的读取
import pandas_datareader as pdr# 可视化
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline# time
from datetime import datetime
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')
amazon.to_csv('../homework/AMZN.csv')
alibaba.head()
结果:
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
Date | ||||||
2015-09-21 | 65.379997 | 66.400002 | 62.959999 | 63.900002 | 63.900002 | 22355100 |
2015-09-22 | 62.939999 | 63.270000 | 61.580002 | 61.900002 | 61.900002 | 14897900 |
2015-09-23 | 61.959999 | 62.299999 | 59.680000 | 60.000000 | 60.000000 | 22684600 |
2015-09-24 | 59.419998 | 60.340000 | 58.209999 | 59.919998 | 59.919998 | 20645700 |
2015-09-25 | 60.630001 | 60.840000 | 58.919998 | 59.240002 | 59.240002 | 17009100 |
alibaba['Adj Close'].plot(legend=True)
结果:<matplotlib.axes._subplots.AxesSubplot at 0x11d910588>
![](/assets/blank.gif)
alibaba['Volume'].plot(legend=True)
结果:<matplotlib.axes._subplots.AxesSubplot at 0x120ebcda0>
![](/assets/blank.gif)
alibaba['Adj Close'].plot()
amazon['Adj Close'].plot()
结果:<matplotlib.axes._subplots.AxesSubplot at 0x120ee9a90>
![](/assets/blank.gif)
alibaba.head()
结果:
Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|
Date | ||||||
2015-09-21 | 65.379997 | 66.400002 | 62.959999 | 63.900002 | 63.900002 | 22355100 |
2015-09-22 | 62.939999 | 63.270000 | 61.580002 | 61.900002 | 61.900002 | 14897900 |
2015-09-23 | 61.959999 | 62.299999 | 59.680000 | 60.000000 | 60.000000 | 22684600 |
2015-09-24 | 59.419998 | 60.340000 | 58.209999 | 59.919998 | 59.919998 | 20645700 |
2015-09-25 | 60.630001 | 60.840000 | 58.919998 | 59.240002 | 59.240002 | 17009100 |
alibaba['high-low'] = alibaba['High'] - alibaba['Low']
alibaba.head()
结果:
Open | High | Low | Close | Adj Close | Volume | high-low | |
---|---|---|---|---|---|---|---|
Date | |||||||
2015-09-21 | 65.379997 | 66.400002 | 62.959999 | 63.900002 | 63.900002 | 22355100 | 3.440003 |
2015-09-22 | 62.939999 | 63.270000 | 61.580002 | 61.900002 | 61.900002 | 14897900 | 1.689998 |
2015-09-23 | 61.959999 | 62.299999 | 59.680000 | 60.000000 | 60.000000 | 22684600 | 2.619999 |
2015-09-24 | 59.419998 | 60.340000 | 58.209999 | 59.919998 | 59.919998 | 20645700 | 2.130001 |
2015-09-25 | 60.630001 | 60.840000 | 58.919998 | 59.240002 | 59.240002 | 17009100 | 1.920002 |
alibaba['high-low'].plot()
结果:<matplotlib.axes._subplots.AxesSubplot at 0x120fdcf98>
![](/assets/blank.gif)
# daily return 每天变化情况
alibaba['daily-return'] = alibaba['Adj Close'].pct_change() #.pct_change() 实现每天每天变化情况
alibaba['daily-return'].plot(figsize=(10,4),linestyle='--',marker='o')#figsize图大小,marker每个数据点类型
结果:<matplotlib.axes._subplots.AxesSubplot at 0x121504d68>
![](/assets/blank.gif)
alibaba['daily-return'].plot(kind='hist')#可以看出,基本上在-0.025到.025之间,所以股票价格稳定
结果:<matplotlib.axes._subplots.AxesSubplot at 0x12169c630>
![](/assets/blank.gif)
sns.distplot(alibaba['daily-return'].dropna(),bins=100,color='purple')
结果:<matplotlib.axes._subplots.AxesSubplot at 0x121b15f98>
![](/assets/blank.gif)
风险分析
# 基本信息
import numpy as np
import pandas as pd
from pandas import Series, DataFrame# 股票数据的读取
import pandas_datareader as pdr# 可视化
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline# time
from datetime import datetime
start = datetime(2015,1,1)
company = ['AAPL','GOOG','MSFT','AMZN','FB']#5家公司
top_tech_df = pdr.get_data_yahoo(company, start=start)['Adj Close']
top_tech_df.to_csv('../homework/top5.csv')
top_tech_df.head()
结果:
AAPL | AMZN | FB | GOOG | MSFT | |
---|---|---|---|---|---|
Date | |||||
2017-11-03 | 172.500000 | 1111.599976 | 178.919998 | 1032.479980 | 84.139999 |
2017-11-02 | 168.110001 | 1094.219971 | 178.919998 | 1025.579956 | 84.050003 |
2017-11-01 | 166.889999 | 1103.680054 | 182.660004 | 1025.500000 | 83.180000 |
2017-10-31 | 169.039993 | 1105.280029 | 180.059998 | 1016.640015 | 83.180000 |
2017-10-30 | 166.720001 | 1110.849976 | 179.869995 | 1017.109985 | 83.889999 |
top_tech_dr = top_tech_df.pct_change()#股票数据每天的变化
top_tech_dr.head()
结果:
AAPL | AMZN | FB | GOOG | MSFT | |
---|---|---|---|---|---|
Date | |||||
2017-11-03 | NaN | NaN | NaN | NaN | NaN |
2017-11-02 | -0.025449 | -0.015635 | 0.000000 | -0.006683 | -0.001070 |
2017-11-01 | -0.007257 | 0.008646 | 0.020903 | -0.000078 | -0.010351 |
2017-10-31 | 0.012883 | 0.001450 | -0.014234 | -0.008640 | 0.000000 |
2017-10-30 | -0.013725 | 0.005039 | -0.001055 | 0.000462 | 0.008536 |
top_tech_df.plot()#GOOG与AMZN曲线比较相似
结果:<matplotlib.axes._subplots.AxesSubplot at 0x122293fd0>
![](/assets/blank.gif)
top_tech_df[['AAPL','FB','MSFT']].plot()#画出其中三列
结果:<matplotlib.axes._subplots.AxesSubplot at 0x1225960b8>
![](/assets/blank.gif)
sns.jointplot('AMZN','GOOG', top_tech_dr, kind='scatter')#kind='scatter'表示散点图;看点是否在一条斜率为45度的直线上来观察两家股票的相关性,注意坐标大小代表的是上升或者下降
结果:<seaborn.axisgrid.JointGrid at 0x124dd0f98>
![](/assets/blank.gif)
sns.jointplot('MSFT','FB', top_tech_dr, kind='scatter')
结果:<seaborn.axisgrid.JointGrid at 0x125928940>
![](/assets/blank.gif)
sns.pairplot(top_tech_dr.dropna())#.dropna()表示去掉NaN
结果:<seaborn.axisgrid.PairGrid at 0x125fa27f0>
top_tech_dr['AAPL'].quantile(0.52)
#结果:-0.0001447090809730694
top_tech_dr['MSFT'].quantile(0.05)#有(1-%5)的信心每天的变化最大为-0.021328913487084877 (最大亏损为%2)
结果:-0.021328913487084877
vips = pdr.get_data_yahoo('VIPS', start=start)['Adj Close']
vips.plot()
结果:<matplotlib.axes._subplots.AxesSubplot at 0x127b0f7b8>
![](/assets/blank.gif)
vips.pct_change().quantile(0.2)#-0.02181125767068397
转载于:https://www.cnblogs.com/tianqizhi/p/8867122.html
六、股票市场分析实战项目一相关推荐
- python 股票市场分析实战
说明:本文python股票市场分析实战主要包括两个方面,一是历史趋势分析,二是风险分析.听着挺厉害,其实......咳,咳 实验数据:来源于Yahoo Finance,网址:https://finan ...
- .NET Core实战项目之CMS 第十六章 用户登录及验证码功能实现
前面为了方便我们只是简单实现了基本业务功能的增删改查,但是登录功能还没有实现,而登录又是系统所必须的,得益于 ASP.NET Core的可扩展性因此我们很容易实现我们的登录功能.今天我将带着大家一起来 ...
- .NET Core实战项目之CMS 第六章 入门篇-Vue的快速入门及其使用
写在前面 上面文章我给大家介绍了Dapper这个ORM框架的简单使用,大伙会用了嘛!本来今天这篇文章是要讲Vue的快速入门的,原因是想在后面的文章中使用Vue进行这个CMS系统的后台管理界面的实现.但 ...
- Vue3+node.js网易云音乐实战项目(六)
图标和播放列表实现 1.收藏.评论和分享图标 2.播放列表 其他页面可以看我页面专栏 Vue3实战项目-网易云APP . 如果文章对你有帮助请点一个赞或收藏 1.收藏.评论和分享图标 接下来,我们实现 ...
- 10个Python爬虫实战项目
Python爬虫是指使用Python语言编写程序,自动化地从互联网上获取数据并进行处理和分析的技术.Python爬虫是一项复杂而且实用的技术,需要掌握多个方面的基础知识,并具备较强的编程能力和实际操作 ...
- python爬虫项目-32个Python爬虫实战项目,满足你的项目慌
原标题:32个Python爬虫实战项目,满足你的项目慌 爬虫项目名称及简介 一些项目名称涉及企业名词,小编用拼写代替 1.[WechatSogou]- weixin公众号爬虫.基于weixin公众号爬 ...
- python有趣的小项目-有趣的十个Python实战项目,让你瞬间爱上Python!
前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...
- .NET Core实战项目之CMS 第十七章 CMS网站系统的部署
目前我们的.NET Core实战项目之CMS系列教程基本走到尾声了,通过这一系列的学习你应该能够轻松应对.NET Core的日常开发了!当然这个CMS系统的一些逻辑处理还需要优化,如没有引入日志组件以 ...
- .NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRF/CSRF)攻击处理...
通过 ASP.NET Core,开发者可轻松配置和管理其应用的安全性. ASP.NET Core 中包含管理身份验证.授权.数据保护.SSL 强制.应用机密.请求防伪保护及 CORS 管理等等安全方面 ...
- .NET Core实战项目之CMS 第十三章 开发篇-在MVC项目结构介绍及应用第三方UI
作为后端开发的我来说,前端表示真心玩不转,你如果让我微调一个位置的样式的话还行,但是让我写一个很漂亮的后台的话,真心做不到,所以我一般会选择套用一些开源UI模板来进行系统UI的设计.那如何套用呢?今天 ...
最新文章
- 【Qt】enum和QString的相互
- android-轻松监听来电和去电
- Android硬件访问服务框架思想初识
- 代码重构 防火墙 相关知识
- Android学习笔记(四):android画图之paint之setXfermode
- 西农 生成树配置_配置STP功能
- 北京互联网人寒冬求职记
- Exceed 13+Gambit 2.4.6 +Tgrid 安装
- 局域网内和局域网间的通信(交换机与路由器)
- 从Thompson Sampling到增强学习, 再谈多臂老虎机问题
- 数学模型学习——图与网络
- 锐捷——DCHP动态分配IP地址
- 陈世涛:鼠标滚轮引起的画面上下跳动问题处理 跳行怎么办?
- ios下input框 数字键盘问题
- python软件如何下载-Python怎么下载安装
- Chrome浏览器怎么安装插件
- 【渝粤教育】国家开放大学2018年秋季 2045T金融企业会计 参考试题
- android室内地图,概述-Android 室内地图SDK | 高德地图API
- 软件测试个人求职简历该怎么写?一个优质软件测试工程师简历
- [转]高精度乘法计算
热门文章
- pvr.ccz文件转png方法
- 通天塔导游:各种编程语言优缺点
- 计算机如何操作补考,关于计算机Excel补考试题
- 计算机系学霸表白,高级暗语表白 学霸隐藏式表白
- banner图如何放置
- 献给面试学生 关键字const是什么意思 ESP(译者:Embedded Systems Programming) --Dan Saks概括了const的所有用法
- arduino-esp32-点亮板载LED,闪烁LED。02
- JAVA-循序结构、选择结构
- 网站打开速度与服务器的关系,网站打开速度慢对SEO的影响
- Win10怎么设置不进入屏保也不关闭显示器