一、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和lxml

1、安装Tushare

pip install tushare

2、导入Tushare,查看版本

三、获取历史行情数据

1、get_hist_data()函数

(1)参数说明

  • code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)
  • start:开始日期,格式YYYY-MM-DD
  • end:结束日期,格式YYYY-MM-DD
  • ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D
  • retry_count:当网络异常后重试次数,默认为3
  • pause:重试时停顿秒数,默认为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 = (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

da = (da)

m(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 as sm

import ma as plt

m[';] = ['FangSong']

m['axes.unicode_minus'] = False

# 定义起始与终止日期

start_date='2019-01-01'

end_date='2019-12-31'

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

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

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

# 反序

data_sh = data_sh[::-1]

data_lzlj = data_lzlj[::-1]

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

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

prin())

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

prin())

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

close_sh = data_sh["close"]

close_lzlj = data_lzlj["close"]

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

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

prin())

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

prin())

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

stock = (data_sh, data_lzlj, left_index = True, right_index = True)

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

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

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

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

prin())

# 统计每日收益率

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

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

daily_return = () / (periods = 1)).dropna()

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

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

prin())

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

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

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

# 每日收益率可视化

fig, ax = (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("泸州老窖")

()

# 散点图

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

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

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

()

# 回归分析

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

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

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

results = model.fit() # 做拟合

print('拟合结果:')

prin())

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”即可(免费分享哦)希望能对你有所帮助

1.《TU11专题之Python学习笔记:初识Tushare》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《TU11专题之Python学习笔记:初识Tushare》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/gl/djyxgl/167210.html