龙空技术网

Python学习笔记:初识Tushare

Python智禅 922

前言:

现时同学们对“pythontushare保存”大体比较着重,小伙伴们都想要了解一些“pythontushare保存”的相关资讯。那么小编在网上搜集了一些对于“pythontushare保存””的相关知识,希望朋友们能喜欢,同学们一起来了解一下吧!

一、Tushare概述Tushare官网:

Tushare是一个免费、开源的Python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。二、安装Tushare前提是安装了pandas和lxml1、安装Tushare

pip install tushare

2、导入Tushare,查看版本

三、获取历史行情数据1、get_hist_data()函数(1)参数说明code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)start:开始日期,格式YYYY-MM-DDend:结束日期,格式YYYY-MM-DDktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为Dretry_count:当网络异常后重试次数,默认为3pause:重试时停顿秒数,默认为0(2)返回值说明date:日期open:开盘价high:最高价close:收盘价low:最低价volume:成交量price_change:价格变动p_change:涨跌幅ma5:5日均价ma10:10日均价ma20:20日均价v_ma5:5日均量v_ma10:10日均量v_ma20:20日均量turnover:换手率【注:指数无此项】2、实例演示(1)读取泸州老窖(000568)从2020-01-01到2020-10-31的周K线数据并绘制K线图

import tushare as ts

data = ts.get_hist_data(code='000568', start='2020-01-01', end='2020-10-31', ktype='W')

由此可以看出,从2020-01-01到2020-10-31这段日期,有43个周获取反序数据,这样数据就是按照日期升序排列

利用mplfinance绘制K线图

import mplfinance as mpf

import pandas as pd

data.index = pd.DatetimeIndex(data.index)

mpf.plot(data, type='candle', volume=True)

(2)读取泸州老窖(000568)从2020-01-01到2020-10-31的日K线数据并绘制K线图

(3)读取泸州老窖(000568)从2020-01-01到2020-10-31的月K线数据并绘制K线图

查看返回数据的所有列名

四、线性回归模型 - 股票回归分析1、编写程序

# -*- coding: utf-8 -*-

"""

Created on Sun Nov 1 19:48:44 2020

@author: howard

线性回归模型 - 股票回归分析

"""

import tushare as ts

import pandas as pd

from pylab import mpl

import statsmodels.api as sm

import matplotlib.pyplot as plt

mpl.rcParams['font.sans-serif'] = ['FangSong']

mpl.rcParams['axes.unicode_minus'] = False

# 定义起始与终止日期

start_date='2019-01-01'

end_date='2019-12-31'

# 获取上证综指与泸州老窖数据

data_sh = ts.get_hist_data(code='sh', start=start_date, end=end_date)

data_lzlj = ts.get_hist_data(code='000568', start=start_date, end=end_date)

# 反序

data_sh = data_sh[::-1]

data_lzlj = data_lzlj[::-1]

# 数据探索,查看前五行数据

print('上证综指前5条:')

print(data_sh.head())

print('泸州老窖前5条:')

print(data_lzlj.head())

# 上证综指与泸州老窖的收盘价

close_sh = data_sh["close"]

close_lzlj = data_lzlj["close"]

# 数据探索,查看前五行数据

print('上证综指[收盘价]前5条:')

print(close_sh.head())

print('泸州老窖[收盘价]前5条:')

print(close_lzlj.head())

# 将上证综指与泸州老窖进行数据合并

stock = pd.merge(data_sh, data_lzlj, left_index = True, right_index = True)

stock = stock[["close_x", "close_y"]] # 把合并之后的闭盘价格拿出来

stock.columns = ["上证综指", "泸州老窖"]

# 数据探索,查看前五行数据

print('上证综指与泸州老窖[收盘价]前5条:')

print(stock.head())

# 统计每日收益率

# .diff()函数用来将数据进行某种移动之后与原来的数据进行比较得出差异的数据

# .shift()函数可以把数据移动指定位数,period=-1左移1位,period=1右移1位

daily_return = (stock.diff() / stock.shift(periods = 1)).dropna()

# 数据探索,查看前五行数据

print('上证综指与泸州老窖[每日收益率]前5条:')

print(daily_return.head())

# 找出当天收益率大于5%的数据

print('泸州老窖[收益率>5%]的数据:')

print(daily_return[daily_return["泸州老窖"] > 0.05]['泸州老窖'])

# 每日收益率可视化

fig, ax = plt.subplots(nrows = 1, ncols = 2, figsize = (15, 6))

daily_return["上证综指"].plot(ax = ax[0])

ax[0].set_title("上证综指")

daily_return["泸州老窖"].plot(ax=ax[1])

ax[1].set_title("泸州老窖")

plt.show()

# 散点图

fig, ax = plt.subplots(nrows = 1, ncols = 1, figsize = (12, 6))

plt.scatter(daily_return["泸州老窖"], daily_return["上证综指"])

plt.title("每日收益率散点图 from 泸州老窖 & 上证综指")

plt.show()

# 回归分析

daily_return["intercept"] = 1.0 # 设置截距项

# OLS(Ordinary Least Squares):最小二乘法进行回归分析

model = sm.OLS(daily_return["泸州老窖"], daily_return[["上证综指", "intercept"]])

results = model.fit() # 做拟合

print('拟合结果:')

print(results.summary())

2、运行程序,查看结果

上证综指前5条:

open high close ... v_ma5 v_ma10 v_ma20

date ...

2019-01-02 2497.88 2500.28 2465.29 ... 1228108.57 1172327.01 1238786.22

2019-01-03 2461.78 2488.48 2464.36 ... 1195562.45 1179691.14 1217014.69

2019-01-04 2446.02 2515.32 2514.87 ... 1315718.52 1240907.00 1224202.50

2019-01-07 2528.70 2536.98 2533.09 ... 1399514.87 1297645.51 1242024.18

2019-01-08 2530.30 2531.35 2526.46 ... 1477222.72 1340073.49 1266536.27

[5 rows x 13 columns]

泸州老窖前5条:

open high close low ... v_ma5 v_ma10 v_ma20 turnover

date ...

2019-01-02 40.98 41.50 39.60 39.55 ... 72700.43 78355.23 77597.78 0.63

2019-01-03 39.60 39.81 38.13 37.70 ... 82682.11 83459.72 79313.23 0.77

2019-01-04 37.81 38.99 38.97 37.60 ... 89905.70 82961.39 78037.63 0.68

2019-01-07 39.13 39.40 38.72 38.48 ... 96102.32 86066.74 78787.87 0.75

2019-01-08 38.75 38.99 38.77 38.06 ... 96714.55 81076.16 78904.97 0.49

[5 rows x 14 columns]

上证综指[收盘价]前5条:

date

2019-01-02 2465.29

2019-01-03 2464.36

2019-01-04 2514.87

2019-01-07 2533.09

2019-01-08 2526.46

Name: close, dtype: float64

泸州老窖[收盘价]前5条:

date

2019-01-02 39.60

2019-01-03 38.13

2019-01-04 38.97

2019-01-07 38.72

2019-01-08 38.77

Name: close, dtype: float64

上证综指与泸州老窖[收盘价]前5条:

上证综指 泸州老窖

date

2019-01-02 2465.29 39.60

2019-01-03 2464.36 38.13

2019-01-04 2514.87 38.97

2019-01-07 2533.09 38.72

2019-01-08 2526.46 38.77

上证综指与泸州老窖[每日收益率]前5条:

上证综指 泸州老窖

date

2019-01-03 -0.000377 -0.037121

2019-01-04 0.020496 0.022030

2019-01-07 0.007245 -0.006415

2019-01-08 -0.002617 0.001291

2019-01-09 0.007077 0.018571

泸州老窖[收益率>5%]的数据:

date

2019-01-15 0.087341

2019-02-11 0.069943

2019-03-18 0.100056

2019-04-10 0.052251

2019-04-26 0.070233

2019-05-10 0.060709

2019-05-15 0.100071

2019-06-11 0.060963

2019-06-27 0.061516

2019-08-14 0.054545

Name: 泸州老窖, dtype: float64

拟合结果:

OLS Regression Results

==============================================================================

Dep. Variable: 泸州老窖 R-squared: 0.321

Model: OLS Adj. R-squared: 0.318

Method: Least Squares F-statistic: 114.0

Date: Sun, 01 Nov 2020 Prob (F-statistic): 4.90e-22

Time: 20:58:19 Log-Likelihood: 597.07

No. Observations: 243 AIC: -1190.

Df Residuals: 241 BIC: -1183.

Df Model: 1

Covariance Type: nonrobust

==============================================================================

coef std err t P>|t| [0.025 0.975]

------------------------------------------------------------------------------

上证综指 1.2541 0.117 10.675 0.000 1.023 1.486

intercept 0.0024 0.001 1.762 0.079 -0.000 0.005

==============================================================================

Omnibus: 36.842 Durbin-Watson: 1.788

Prob(Omnibus): 0.000 Jarque-Bera (JB): 64.069

Skew: 0.824 Prob(JB): 1.22e-14

Kurtosis: 4.900 Cond. No. 88.0

==============================================================================

Warnings:

[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.

最后,小编想说:我是一名python开发工程师,

整理了一套最新的python系统学习教程,

想要这些资料的可以关注私信小编“01”即可(免费分享哦)希望能对你有所帮助

标签: #pythontushare保存