数据获取

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()#也是基本信息

  结果:

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

alibaba['Volume'].plot(legend=True)

  结果:<matplotlib.axes._subplots.AxesSubplot at 0x120ebcda0>

alibaba['Adj Close'].plot()
amazon['Adj Close'].plot()

  结果:<matplotlib.axes._subplots.AxesSubplot at 0x120ee9a90>

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>

# 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>

alibaba['daily-return'].plot(kind='hist')#可以看出,基本上在-0.025到.025之间,所以股票价格稳定

  结果:<matplotlib.axes._subplots.AxesSubplot at 0x12169c630>

sns.distplot(alibaba['daily-return'].dropna(),bins=100,color='purple')

  结果:<matplotlib.axes._subplots.AxesSubplot at 0x121b15f98>

风险分析

# 基本信息
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>

top_tech_df[['AAPL','FB','MSFT']].plot()#画出其中三列

  结果:<matplotlib.axes._subplots.AxesSubplot at 0x1225960b8>

sns.jointplot('AMZN','GOOG', top_tech_dr, kind='scatter')#kind='scatter'表示散点图;看点是否在一条斜率为45度的直线上来观察两家股票的相关性,注意坐标大小代表的是上升或者下降

  结果:<seaborn.axisgrid.JointGrid at 0x124dd0f98>

sns.jointplot('MSFT','FB', top_tech_dr, kind='scatter')

  结果:<seaborn.axisgrid.JointGrid at 0x125928940>

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>

vips.pct_change().quantile(0.2)#-0.02181125767068397

  

转载于:https://www.cnblogs.com/tianqizhi/p/8867122.html

六、股票市场分析实战项目一相关推荐

  1. python 股票市场分析实战

    说明:本文python股票市场分析实战主要包括两个方面,一是历史趋势分析,二是风险分析.听着挺厉害,其实......咳,咳 实验数据:来源于Yahoo Finance,网址:https://finan ...

  2. .NET Core实战项目之CMS 第十六章 用户登录及验证码功能实现

    前面为了方便我们只是简单实现了基本业务功能的增删改查,但是登录功能还没有实现,而登录又是系统所必须的,得益于 ASP.NET Core的可扩展性因此我们很容易实现我们的登录功能.今天我将带着大家一起来 ...

  3. .NET Core实战项目之CMS 第六章 入门篇-Vue的快速入门及其使用

    写在前面 上面文章我给大家介绍了Dapper这个ORM框架的简单使用,大伙会用了嘛!本来今天这篇文章是要讲Vue的快速入门的,原因是想在后面的文章中使用Vue进行这个CMS系统的后台管理界面的实现.但 ...

  4. Vue3+node.js网易云音乐实战项目(六)

    图标和播放列表实现 1.收藏.评论和分享图标 2.播放列表 其他页面可以看我页面专栏 Vue3实战项目-网易云APP . 如果文章对你有帮助请点一个赞或收藏 1.收藏.评论和分享图标 接下来,我们实现 ...

  5. 10个Python爬虫实战项目

    Python爬虫是指使用Python语言编写程序,自动化地从互联网上获取数据并进行处理和分析的技术.Python爬虫是一项复杂而且实用的技术,需要掌握多个方面的基础知识,并具备较强的编程能力和实际操作 ...

  6. python爬虫项目-32个Python爬虫实战项目,满足你的项目慌

    原标题:32个Python爬虫实战项目,满足你的项目慌 爬虫项目名称及简介 一些项目名称涉及企业名词,小编用拼写代替 1.[WechatSogou]- weixin公众号爬虫.基于weixin公众号爬 ...

  7. python有趣的小项目-有趣的十个Python实战项目,让你瞬间爱上Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

  8. .NET Core实战项目之CMS 第十七章 CMS网站系统的部署

    目前我们的.NET Core实战项目之CMS系列教程基本走到尾声了,通过这一系列的学习你应该能够轻松应对.NET Core的日常开发了!当然这个CMS系统的一些逻辑处理还需要优化,如没有引入日志组件以 ...

  9. .NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRF/CSRF)攻击处理...

    通过 ASP.NET Core,开发者可轻松配置和管理其应用的安全性. ASP.NET Core 中包含管理身份验证.授权.数据保护.SSL 强制.应用机密.请求防伪保护及 CORS 管理等等安全方面 ...

  10. .NET Core实战项目之CMS 第十三章 开发篇-在MVC项目结构介绍及应用第三方UI

    作为后端开发的我来说,前端表示真心玩不转,你如果让我微调一个位置的样式的话还行,但是让我写一个很漂亮的后台的话,真心做不到,所以我一般会选择套用一些开源UI模板来进行系统UI的设计.那如何套用呢?今天 ...

最新文章

  1. 【Qt】enum和QString的相互
  2. android-轻松监听来电和去电
  3. Android硬件访问服务框架思想初识
  4. 代码重构 防火墙 相关知识
  5. Android学习笔记(四):android画图之paint之setXfermode
  6. 西农 生成树配置_配置STP功能
  7. 北京互联网人寒冬求职记
  8. Exceed 13+Gambit 2.4.6 +Tgrid 安装
  9. 局域网内和局域网间的通信(交换机与路由器)
  10. 从Thompson Sampling到增强学习, 再谈多臂老虎机问题
  11. 数学模型学习——图与网络
  12. 锐捷——DCHP动态分配IP地址
  13. 陈世涛:鼠标滚轮引起的画面上下跳动问题处理 跳行怎么办?
  14. ios下input框 数字键盘问题
  15. python软件如何下载-Python怎么下载安装
  16. Chrome浏览器怎么安装插件
  17. 【渝粤教育】国家开放大学2018年秋季 2045T金融企业会计 参考试题
  18. android室内地图,概述-Android 室内地图SDK | 高德地图API
  19. 软件测试个人求职简历该怎么写?一个优质软件测试工程师简历
  20. [转]高精度乘法计算

热门文章

  1. pvr.ccz文件转png方法
  2. 通天塔导游:各种编程语言优缺点
  3. 计算机如何操作补考,关于计算机Excel补考试题
  4. 计算机系学霸表白,高级暗语表白 学霸隐藏式表白
  5. banner图如何放置
  6. 献给面试学生 关键字const是什么意思 ESP(译者:Embedded Systems Programming) --Dan Saks概括了const的所有用法
  7. arduino-esp32-点亮板载LED,闪烁LED。02
  8. JAVA-循序结构、选择结构
  9. 网站打开速度与服务器的关系,网站打开速度慢对SEO的影响
  10. Win10怎么设置不进入屏保也不关闭显示器