tushare模块的应用
一、简介以及环境安装
TuShare是一个著名的免费、开源的python财经数据接口包。其官网主页为:TuShare -财经数据接口包。该接口包如今提供了大量的金融数据,涵盖了股票、基本面、宏观、新闻的等诸多类别数据(具体请自行查看官网),并还在不断更新中。TuShare可以基本满足量化初学者的回测需求
环境安装:pip install tushare。如果是老版本升级,可以用升级命令pip install tushare --upgrade3,在python中导入包:import tushare as ts
二.Tushare的使用
如何用tushare获取股票行情数据,使用的是ts.get_hist_data()函数或者ts.get_k_data()函数。输入参数为:
- code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)
- start:开始日期,格式YYYY-MM-DD
- end:结束日期,格式YYYY-MM-DD
- ktype:数据类型,D=日k线 W=周 M=月 =5分钟 =15分钟 =30分钟 =60分钟,默认为D
- retry_count:当网络异常后重试次数,默认为3
- pause:重试时停顿秒数,默认为0
返回值说明:
- 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:换手率[注:指数无此项]
案例应用:
使用tushare包获取某股票(贵州茅台)的历史行情数据。
- #获取k线数据,加载至DataFrame中
- df = ts.get_k_data("",start="1988-01-01")
- #将从Tushare中获取的数据存储至本地
- df.to_csv("600519.csv")
- #将原数据中的时间作为行索引,并将字符串类型的时间序列化成时间对象类型
- df = pd.read_csv("600519.csv", index_col='date',parse_dates=['date'])[['open','close','high','low']] # index_col将某一列的数据作为源数据的索引,parse_dates解析为时间类型
输出该股票所有收盘比开盘上涨3%以上的日期。
- #输出该股票所有收盘比开盘上涨3%以上的日期。
- b_indexs = (df['close'] - df['open'])/df['open']>0.03
- b_indexs # 返回布尔值,可以将这组布尔值作为行索引
- df[b_indexs].index # 获得符合条件的日期即行索引
- """
- 输出结果DatetimeIndex(['2001-08-27', '2001-08-28', '2001-09-10', '2001-12-21',
- '2002-01-18', '2002-01-31', '2003-01-14', '2003-10-29',
- '2004-01-05', '2004-01-14',
- ...
- '2018-09-18', '2018-09-26', '2018-10-19', '2018-10-31',
- '2018-11-13', '2018-12-28', '2019-01-15', '2019-02-11',
- '2019-03-01', '2019-03-18'],
- dtype='datetime64[ns]', name='date', length=295, freq=None)"""
输出该股票所有开盘比前日收盘跌幅超过2%的日期。
- condition = (df['open']-df['close'].shift(1))/df['close'].shift(1)<=-0.02 # shift(1) 表示这一列整体向下偏移一位
- df[condition].index
- 执行结果为:
- DatetimeIndex(['2001-09-12', '2002-06-26', '2002-12-13', '2004-07-01',
- '2004-10-29', '2006-08-21', '2006-08-23', '2007-01-25',
- '2007-02-01', '2007-02-06', '2007-03-19', '2007-05-21',
- '2007-05-30', '2007-06-05', '2007-07-27', '2007-09-05',
- '2007-09-10', '2008-03-13', '2008-03-17', '2008-03-25',
- '2008-03-27', '2008-04-22', '2008-04-23', '2008-04-29',
- '2008-05-13', '2008-06-10', '2008-06-13', '2008-06-24',
- '2008-06-27', '2008-08-11', '2008-08-19', '2008-09-23',
- '2008-10-10', '2008-10-15', '2008-10-16', '2008-10-20',
- '2008-10-23', '2008-10-27', '2008-11-06', '2008-11-12',
- '2008-11-20', '2008-11-21', '2008-12-02', '2009-02-27',
- '2009-03-25', '2009-08-13', '2010-04-26', '2010-04-30',
- '2011-08-05', '2012-03-27', '2012-08-10', '2012-11-22',
- '2012-12-04', '2012-12-24', '2013-01-16', '2013-01-25',
- '2013-09-02', '2014-04-25', '2015-01-19', '2015-05-25',
- '2015-07-03', '2015-07-08', '2015-07-13', '2015-08-24',
- '2015-09-02', '2015-09-15', '2017-11-17', '2018-02-06',
- '2018-02-09', '2018-03-23', '2018-03-28', '2018-07-11',
- '2018-10-11', '2018-10-24', '2018-10-25', '2018-10-29',
- '2018-10-30'],
- dtype='datetime64[ns]', name='date', freq=None)
假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
- price_last = df['open'][-1]
- df = df['':''] #剔除首尾无用的数据
- #Pandas提供了resample函数用便捷的方式对时间序列进行重采样,根据时间粒度的变大或者变小分为降采样和升采样:
- df_monthly = df.resample("M").first()
- df_yearly = df.resample("A").last()[:-1] #去除最后一年
- cost_money = 0
- hold = 0 #每年持有的股票
- for year in range(2010, 2019):
- cost_money -= df_monthly.loc[str(year)]['open'].sum()*100
- hold += len(df_monthly[str(year)]['open']) * 100
- if year != 2019:
- cost_money += df_yearly[str(year)]['open'][0] * hold
- hold = 0 #每年持有的股票
- cost_money += hold * price_last
- print(cost_money)
tushare模块的应用的更多相关文章
- 1.tushare模块的应用
tushare模块的应用 今日概要 TuShare简介和环境安装 TuShare的应用 今日详情 一.TuShare简介和环境安装 TuShare是一个著名的免费.开源的python财经数据接口包.其 ...
- Tushare模块
.TuShare简介和环境安装 TuShare是一个著名的免费.开源的python财经数据接口包.其官网主页为:TuShare -财经数据接口包.该接口包如今提供了大量的金融数据,涵盖了股票.基本面. ...
- 金融量化之Tushare模块
一.介绍 Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们 ...
- 金融量化之tushare模块的使用
一.TuShare简介和环境安装 TuShare是一个著名的免费.开源的python财经数据接口包.其官网主页为:TuShare -财经数据接口包.该接口包如今提供了大量的金融数据,涵盖了股票.基本面 ...
- numpy+pandas+matplotlib+tushare股票分析
一.数据导入 安装tushare模块包 pip install tushare http://tushare.org/ tushare是一个财经数据接口包 import numpy as np imp ...
- python调用tushare获取沪深A股票资金流向数据
接口:moneyflow 描述:获取沪深A股票资金流向数据,分析大单小单成交情况,用于判别资金动向 限量:单次最大提取4000行记录,总量不限制 积分:用户需要至少1500积分才可以调取,基础积分有流 ...
- python+tushare获取股票每日停复牌信息
接口:suspend 更新时间:不定期 描述:获取股票每日停复牌信息 注:tushare模块下载和安装教程,请查阅我之前的文章 输入参数 名称 | 类型 | 必 ...
- python调用tushare获取A股周线行情
接口:weekly 描述:获取A股周线行情 限量:单次最大3700,总量不限制 积分:用户需要至少300积分才可以调取,具体请参阅本文最下方积分获取办法 注:tushare模块下载和安装教程,请查阅我 ...
- python调用tushare获取A股上市公司管理层人员信息
接口:stk_managers 描述:获取上市公司管理层 注:tushare模块下载和安装教程,请查阅我之前的文章 积分:用户需要2000积分才可以调取,具体请参阅本文最下方积分获取办法 输入参数 名 ...
随机推荐
- 用jquery实现html5的placeholder功能
html5的placeholder功能在表单中经常用到,它主要用来提示用户输入信息,当用户点击该输入框之后,提示文字会自动消失. 我们用jquery实现类似的功能: 当输入框获得焦点时,清空输入框中的 ...
- jquery实现全选,取消,反选的功能&实现左侧菜单
1.全选,取消,反选的例子 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- 3-java_string学习笔记:
java中String的常用方法
- spring property标签中的 ref属性和ref 标签有什么不同? 如下:<property name="a" ref="b" />
spring property标签中的 ref属性和ref 标签有什么不同? 如下:<property name="a" ref="b" /> sp ...
- IRC聊天指南
参考https://www.cnblogs.com/fzzl/archive/2011/12/26/2302637.html
- SGU 194 Reactor Cooling (有容量和下界的可行流)
题意:给定上一个有容量和下界的网络,让你求出一组可行解. 析:先建立一个超级源点 s 和汇点 t ,然后在输入时记录到每个结点的下界的和,建边的时候就建立c - b的最后再建立 s 和 t , 在建立 ...
- UVa 1615 Highway (贪心,区间选点问题)
题意:给定一个数 n 个点,和一个d,要求在x轴上选出尽量少的点,使得对于给定的每个点,都有一个选出的点离它的欧几里德距离不超过d. 析:首先这是一个贪心的题目,并且是区间选点问题,什么是区间选点呢, ...
- linux计划任务(二)
计划任务的授权 1.at任务 /etc/at.allow /etc/at.deny 2.crontab任务 /etc/cron.allow /etc/cron.deny [注:如果allow文件存在, ...
- Max Sum -- hdu -- 1003
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1003 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- FlexBox弹性盒布局
网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...