python股票分析入门_学习用Python分析股票数据(入门)
学习使用python来分析股票,主要事涉及数据获取、数据可视化,以及探究数据中各项指标的含义及和关系。使用工具 pandas、numpy、datatime pandas-datareader 在线获取股票数据 matplotlib 数据可视化 Jupyter Notebook 数据分析利器#一、数据获取
# 导入包import pandas as pdimport numpy as npimport pandas_datareader.data as webfrom datetime import datetime1
2
3
4
5# 初始数据# 创建字典myDict = {'谷歌': 'GOOG', '苹果': 'AAPL', '阿里巴巴':'BABA', '腾讯': '0700.hk' }# 时间start = datetime(2017,1,1)end = datetime(2017,12,31)1
2
3
4
5
6
7
8
9
10
# 从IEX数据源获取谷歌股票数据gdata = web.DataReader(myDict['苹果'],'iex', start, end)1
22y# 查看前5条数据gdata.head()1
2
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
openhighlowclosevolume
date2017-01-03113.5044114.0239112.4850113.847428781865
2017-01-04113.5534114.2003113.4554113.720021118116
2017-01-05113.6220114.5475113.5142114.298322193587
2017-01-06114.4649115.8176114.1611115.572531751900
2017-01-09115.6118117.0624115.6020116.631133561948
# 查询某一天数据gdata.loc['2017-09-11']1
2open 1.592756e+02 high 1.608138e+02 low 1.586703e+02 close 1.602680e+02 volume 3.158080e+07 Name: 2017-09-11, dtype: float64# 逆序排列gdata = gdata[::-1]1
2
# 查询前10条数据# 将显示重新排列后的结果gdata[:10]1
2
3
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
openhighlowclosevolume
date2017-12-29169.8275169.8972168.5328168.542825999922
2017-12-28170.3056171.1521169.7877170.385216480187
2017-12-27169.4092170.0865169.0208169.907221498213
2017-12-26170.1064170.7737168.9899169.877333185536
2017-12-22173.9706174.7116173.7914174.299316349444
2017-12-21173.4627175.3052173.3930174.299320949896
2017-12-20174.1599174.7076172.5464173.642023475649
2017-12-19174.3192174.6777173.3830173.831227436447
2017-12-18174.1698176.4804174.1499175.703629421114
2017-12-15172.9249173.4627171.7596173.263540169307# 查询更多信息gdata.info1
2
# 查看数据类型gdata.dtypes1
2open float64 high float64 low float64 close float64 volume int64 dtype: object# 查看数据集描述统计信息gdata.describe()1
2
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
openhighlowclosevolumecount251.000000251.000000251.000000251.0000002.510000e+02
mean148.836282149.783743147.883783148.9368502.707997e+07
std15.24405815.32135114.97392115.1194711.128283e+07
min113.504400114.023900112.485000113.7200001.402667e+07
25%139.685100140.516950138.833550139.6063502.041327e+07
50%151.237300152.158200149.741000150.8731002.436148e+07
75%158.496600159.448850157.299600158.5958502.952661e+07
max174.398900176.480400174.149900175.7036001.119850e+08
二、数据观察每日股票信息
open: 开盘价
high: 最高价
low: 最低价
close: 收盘价
volume: 成交量
下面我们主要来关注每日的收盘价
股票涨跌幅度
'''定义函数:计算机股票涨跌幅 =(现在股价-买入价格)/买入价格输入参数:column 表示收盘价这一列数据返回涨跌幅'''def change(column): # 买入价格 年初 buyPrice = column[0] # 现在价格 年末 curPrice = column[len(gdata)-1] changePrice = (curPrice - buyPrice)/buyPrice # 判断股价变化 if changePrice > 0: print('股票累计上涨=',changePrice) elif changePrice == 0: print('股票累计没有变化=',changePrice) else: print('股票累计下跌=', changePrice) return changePrice1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20# 查看结果bdata = gdata[::-1]change(bdata['close'])1
2
3
股票累计上涨= 0.480427308836214150.480427308836214151
2
3
4
5
6
7
数据可视化-时间序列图
以时间为横坐标,每日的收盘价为纵坐标,绘制折线图,可以观察股票随时间的波动情况。我们使用 matplotlib 包来绘制。# 导入绘图包#coding:utf-8import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号1
2
3
4
5
# 绘制图表fig, ax = plt.subplots(figsize=(14,8)) # 绘图窗口大小plt.title('2017年苹果股票', fontsize=18) # 标题ax.plot(bdata['close'],color='blue', label='收盘价') ax.plot(bdata['open'],color='#F37726', label='开盘价')ax.plot((bdata['close']-bdata['open']),color='red', label='每日涨跌(收盘价-开盘价)')ax.grid(False) # 网格ax.legend(frameon=False)plt.xlabel('1-12月份', fontsize=14) # 横坐标# plt.ylabel('收盘价', fontsize=14) #纵坐标# 刻度标记大小# axis 可选择参数 x,y,both plt.tick_params(axis='both',labelsize=13) # ax.axis('equal') # label显示位置plt.show() # 显示1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
先挖个坑:
上图中横坐标一条黑粗线,实际为每天股票日期,全部重叠在一起就变这条黑线 囧
原来想显示1-12月份的,但找了好多资料都还没完成,希望哪个大神看到能指导下,谢谢!
学会了回来补上
上图中我首先用蓝色绘制收盘价折线图,再用黄色绘制开盘价折线图,最后用红色绘制每日涨跌幅折线图,看起来是否很乱,如果再加上每天最高价和最低价,那就更无法见人了。
那么有什么方法能够在一张图中显示出这四种指标呢?答案是K线图。
K线图
相传K线图起源于日本德川幕府时代,当时的商人用此图来记录米市的行情和价格波动,后来K线图被引入到股票市场。每天的四项指标数据用如下蜡烛形状的图形来记录,不同的颜色代表涨跌情况。
三、数据分析
相对变化量
股票中关注的不是价格的绝对值,而是相对变化量。有多种方式可以衡量股价的相对值,最简单的方法就是将股价除以初始时的价格。
方法一: 前面介绍的计算每日涨跌幅(收盘价-开盘价)/ 开盘价1
# 绘制图表fig, ax = plt.subplots(figsize=(14,8)) # 绘图窗口大小plt.title('2017年苹果股票', fontsize=18) # 标题# 绘制参考线(bdata['close']-bdata['open']).plot(grid=True, color='red', label='每日涨跌(收盘价-开盘价)').axhline(y=0, color='black', lw=2)ax.legend(frameon=False)plt.xlabel('1-12月份', fontsize=14) # 横坐标plt.ylabel('涨跌幅度', fontsize=14) #纵坐标# 刻度标记大小# axis 可选择参数 x,y,both plt.tick_params(axis='both',labelsize=13) plt.show() # 显示1
2
3
4
5
6
7
8
9
10
11
12
相关关系
在观察了价格的走势之后,我们来看看各指标之间的关系。又挖了个坑:
学会了再说 囧
python股票分析入门_学习用Python分析股票数据(入门)相关推荐
- 爬虫python可以干嘛_学了Python可以用来干什么呢?
很多家长朋友可能会问,孩子学Python 可以用来干什么呢? 一般学Python可以往很多方面发展: 01 web应用开发 在国内,豆瓣一开始就使用Python作为web开发基础语言,知乎的整个架构也 ...
- python怎么输入程序代码_学习用 Thonny 写代码: 一个面向初学者的Python IDE
学习编程很难.即使当你最终怎么正确使用你的冒号和括号,但仍然有很大的可能你的程序不会如果所想的工作. 通常,这意味着你忽略了某些东西或者误解了语言结构,你需要在代码中找到你的期望与现实存在分歧的地方. ...
- thonny和python有什么关系_学习用 Thonny 写代码: 一个面向初学者的Python IDE
学习编程很难.即使当你最终怎么正确使用你的冒号和括号,但仍然有很大的可能你的程序不会如果所想的工作. 通常,这意味着你忽略了某些东西或者误解了语言结构,你需要在代码中找到你的期望与现实存在分歧的地方. ...
- python工程师累吗_学完Python工程师好就业吗?
Python语言相对其他计算机语言而言比较简单,Python以前就是一门比较流行的编程语言,它主要用于后端.测试.运维,测试.运维就不说了,高级一点的测试和运维可以使用Python作为脚本语言,而Py ...
- 学python可以从事什么工作-学完Python后可以从事哪些工作?
Python拥有丰富和强大的库,被称为"胶水语言",能够运用到各种领域,吸引了很多人前来学习.Python如此火爆,学完后除了可以从事人工智能相关工作外还可以干什么呢?下面千锋就为 ...
- 学习用Python分析股票数据(入门)
学习使用python来分析股票,主要事涉及数据获取.数据可视化,以及探究数据中各项指标的含义及和关系. 使用工具 pandas.numpy.datatime pandas-datareader 在线获 ...
- 如何学python新手入门_如何学习Python,以及新手如何入门?
好久以前就想写这个回答了. 学校里面开了一门极其火的python通识课,我幸运选上,加上我对python还是比较感兴趣的.就这样我开始了我的python学习之路. 提前说明吧,我真的还只是一个纯纯纯新 ...
- Python入门教程:很多人推荐学 Python 入 IT ,如果学完 Python 找不到工作怎么办...
Python入门教程:很多人推荐学 Python 入 IT ,但是如果学完 Python 找不到工作怎么办,这也是很多人担心的问题. 很多人推荐通过学习 Python 入行 IT 一是因为 Pytho ...
- python技术是什么_学 Python 都用来干嘛的?
编程语言千千万万,不学python快乐少一半. 首先我们要明确一点,相比较于C语言,C++/Java等语言来说,python是比较适合普通人的一门语言. 如果说学编程是盖楼房,一个原始人要造现代化的房 ...
最新文章
- 前端一HTML:二十CSS的三种存在方式
- 一文搞懂重复测量资料分析
- ssm使用全注解实现增删改查案例——EmpMapperImpl
- mysql性能优化 硬件优化_mysql性能优化学习笔记(6)数据库配置优化硬件优化...
- android程序怎么导出数据库,将android程序中的数据库导出到SD卡
- 企业域名备案流程_2021境外投资备案申报流程(办理企业境外投资证书注意事项)...
- android通讯录备份恢复代码逻辑
- 3d激光雷达开发(绘制长方体)
- 币安跨链桥在BSC、以太坊和IoTeX主网全面支持IOTX资产
- Java后端开发技术选型
- 信息系统分析与设计杨选辉_信息系统分析与设计课后题答案(杨选辉)
- Redis开发与运维 笔记一
- Tims中国上市背后:以新流派打法,“开源”咖啡市场
- SD卡、TF卡、MMC卡以及eMMC芯片的介绍
- 算法学习笔记:涉及动态规划的简单例题
- 数学在计算机方面的应用论文参考文献,数学论文参考文献
- R语言逻辑回归、方差分析 、伪R平方分析
- php错误排查 写入文档,php error_log 错误信息写入文件
- 超详细pynq-z2入门
- 如何从初级程序员顺利晋升到高级程序员?
热门文章
- python 北上资金_python爬虫技术:北向资金数据自动爬取!
- 接到个商城任务需要接入个微信或者QQ客服,找到了两篇解决文章
- 【读书笔记】RevMiner:RevMiner: An Extractive Interface for Navigating Reviews on a Smartphone
- _ETHREAD断链 —— 实现线程隐藏
- hdu 1166 排兵布阵
- 【译】可扩展前端2  —  常见模式
- 国潮复兴——从红旗H9看HMI设计中的东方美学
- 程序媛学车之——科目二流程
- Android Studio:基本UI界面设计 (详细)
- 大数据DBA:大数据数据库管理做什么