学习⽤Python 分析股票数据(⼊门)
学习使⽤python来分析股票,主要事涉及数据获取、数据可视化,以及探究数据中各项指标的含义及和关系。 使⽤⼯具使⽤⼯具 pandas、numpy、datatime pandas-datareader 在线获取股票数据 matplotlib 数据可视化 Jupyter Notebook 数据分析利器 #⼀、数据获取
计算机编程基础知识教课书
2y
计算机入门自学教程python
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
open
high
low
close
volume
负载均衡array图形界面端口date 2017-01-03113.5044114.0239112.4850113.8474287818652017-01-04113.5534114.2003113.4554113.7200211181162017-01-05113.6220114.5475113.5142114.2983221935872017-01-06114.4649115.8176114.1611115.5725317519002017-01-09
115.6118
117.0624
115.6020
116.6311
33561948
open 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
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
# 导⼊包
import  pandas as  pd import  numpy as  np
import  pandas_datareader.data as  web from  datetime import  datetime
# 初始数据# 创建字典
myDict = {'⾕歌': 'GOOG',          '苹果': 'AAPL',          '阿⾥巴巴':'BABA',          '腾讯': '0700.hk'        }# 时间
start = datetime(2017,1,1)end = datetime(2017,12,31)
# 从IEX 数据源获取⾕歌股票数据
gdata = web.DataReader(myDict['苹果'],'iex', start, end)
# 查看前5条数据gdata.head()
# 查询某⼀天数据gdata.loc['2017-09-11']
# 逆序排列gdata = gdata[::-1]
# 查询前10条数据# 将显⽰重新排列后的结果gdata[:10]
open high low close volume date
2017-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.info
# 查看数据类型
gdata.dtypes
open float64 high float64 low float64 close float64 volume int64 dtype: object
# 查看数据集描述统计信息
gdata.describe()
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
open high low close volume count251.000000251.000000251.000000251.000000  2.510000e+02 mean148.836282149.783743147.883783148.936850  2.707997e+07 std15.24405815.32135114.97392115.119471  1.128283e+07 min113.504400114.023900112.485000113.720000  1.402667e+07 25%139.685100140.516950138.833550139.606350  2.041327e+07 50%151.237300152.158200149.741000150.873100  2.436148e+07 75%158.496600159.448850157.299600158.595850  2.952661e+07 max174.398900176.480400174.149900175.703600  1.119850e+08
⼆、数据观察
每⽇股票信息
open: 开盘价
high: 最⾼价
low: 最低价
close: 收盘价
volume: 成交量
下⾯我们主要来关注每⽇的收盘价工作流程管理系统
activities是什么意思怎么读股票涨跌幅度
'''
定义函数:计算机股票涨跌幅=(现在股价-买⼊价格)/买⼊价格
输⼊参数:column 表⽰收盘价这⼀列数据
返回涨跌幅
'''
def change(column):
# 买⼊价格年初
sql软件长什么样
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 changePrice
# 查看结果
bdata = gdata[::-1]
change(bdata['close'])
股票累计上涨= 0.48042730883621415
0.48042730883621415
数据可视化-时间序列图
以时间为横坐标,每⽇的收盘价为纵坐标,绘制折线图,可以观察股票随时间的波动情况。我们使⽤ matplotlib 包来绘制。
# 导⼊绘图包
#coding:utf-8
import matplotlib.pyplot as plt
先挖个坑:
上图中横坐标⼀条⿊粗线,实际为每天股票⽇期,全部重叠在⼀起就变这条⿊线
原来想显⽰1-12⽉份的,但了好多资料都还没完成,希望哪个⼤神看到能指导下,谢谢!学会了回来补上
上图中我⾸先⽤蓝⾊绘制收盘价折线图,再⽤黄⾊绘制开盘价折线图,最后⽤红⾊绘制每⽇涨跌幅折线图,看起来是否很乱,如果再加上每天最⾼价和最低价,那就更⽆法见⼈了。
那么有什么⽅法能够在⼀张图中显⽰出这四种指标呢?答案是K线图。
K 线图
相传K线图起源于⽇本德川幕府时代,当时的商⼈⽤此图来记录⽶市的⾏情和价格波动,后来K线图被引⼊到股票市场。每天的四项指标数据⽤如下蜡烛形状的图形来记录,不同的颜⾊代表涨跌情况。
# 绘制图表
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() # 显⽰
再来挖个坑:
利⽤上⾯得到数据绘制K线图,没成功 囧
学会了回来补上
三、数据分析
相对变化量
股票中关注的不是价格的绝对值,⽽是相对变化量。有多种⽅式可以衡量股价的相对值,最简单的⽅法就是将股价除以初始时的价格。⽅法⼀: 前⾯介绍的计算每⽇涨跌幅
(收盘价-开盘价)/
开盘价
相关关系
在观察了价格的⾛势之后,我们来看看各指标之间的关系。
# 绘制图表
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() # 显⽰

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。