一、介绍

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

需要强调的是,TuShare库里不仅仅有股票数据,而是一个综合的财经库。只是因为股票数据数据量比较大,特别锻炼数据分析能力,所以才选择股票数据练手。其余的数据也是很有意思的,比如全国电影票房排名

使用前提

  • 安装Python
  • 安装pandas
  • lxml也是必须的,正常情况下安装了Anaconda后无须单独安装,如果没有可执行:pip install lxml

建议安装Anaconda(http://www.continuum.io/downloads),一次安装包括了Python环境和全部依赖包,减少问题出现的几率。

下载安装

  • 方式1:pip install tushare
  • 方式2:访问https://pypi.python.org/pypi/Tushare/下载安装

版本升级

  • pip install tushare --upgrade

查看当前版本的方法:

import tushare
print(tushare.__version__)

二、Tushare的应用

1、获取股票行情的函数

我们主要还是应该掌握如何用tushare获取股票行情数据,使用的是ts.get_hist_data()函数或者ts.get_k_data()函数

参数:

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
返回值说明: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、案例

import pandas as pd
import numpy as np
from pandas import DataFrame,Series
import tushare as ts# 获取k线数据,加载至DataFrame中
df = ts.get_k_data('600519',start='2000-01-01')  # 茅台
df.head()# 将从Tushare中获取的数据存储至本地
df.to_csv('./maotai.csv')# 将原数据中的时间作为行索引,并将字符串类型的时间序列化成时间对象类型
# index_col参数:把某一列col作为行索引index
# parse_dates:把字符串类型的时间序列化成时间对象类型
df = pd.read_csv('./maotai.csv',index_col='date',parse_dates=['date'])
df.drop(labels='Unnamed: 0',axis=1,inplace=True)
df.head()# 分析1:输出该股票所有收盘比开盘上涨3%以上的日期
# 获取满足条件的行索引
df.loc[(df['close'] - df['open'])/df['open'] > 0.03].index# 分析2:输出该股票所有开盘比前日收盘跌幅超过2%的日期
df.loc[(df['open'] - df['close'].shift(1)) / df['close'].shift(1) <= -0.02].index# 分析3:假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何
price_last = df['open'][-1]
df = df['2010-01':'2019-01'] # 剔除首尾无用的数据
# Pandas提供了resample函数用便捷的方式对时间序列进行重采样,根据时间粒度的变大或者变小分为降采样和升采样:
df_monthly = df.resample("M").first()  # 获取每月第一个交易日对应的行数据
df_yearly = df.resample("Y").last()[:-1] # 获取每年第最后一个交易日对应的行数据并去除最后一年
cost_money = 0
hold = 0 # 每年持有的股票
for year in range(2010, 2020):cost_money -= df_monthly.loc[str(year)]['open'].sum()*100hold += len(df_monthly[str(year)]['open']) * 100if year != 2019:cost_money += df_yearly[str(year)]['open'][0] * holdhold = 0 # 每年持有的股票
cost_money += hold * price_lastprint(cost_money)

转载于:https://www.cnblogs.com/yidashi110/p/10414851.html

金融量化ushare模块相关推荐

  1. 金融量化之Tushare模块

    一.介绍 Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们 ...

  2. 天池四月读书会|数据分析金融量化,6场直播,6位大咖,6个项目实战

    简介:阿里云天池四月读书会来啦,本次读书会主题为数据分析和金融量化,6场直播,6个大咖,6个项目实践,总有你感兴趣的. 阿里云天池读书会四月场来啦,这次我们邀请到了<可解释机器学习>译者. ...

  3. day32 Python与金融量化分析(二)

    第一部分:金融与量化投资 股票: 股票是股份公司发给出资人的一种凭证,股票的持有者就是股份公司的股东. 股票的面值与市值 面值表示票面金额 市值表示市场价值 上市/IPO: 企业通过证券交易所公开向社 ...

  4. 金融量化分析精讲课程-李杰-专题视频课程

    金融量化分析精讲课程-1316人已学习 课程介绍         金融分析包含金融知识和Python相关模块的学习,手把手带你从金融小白到开发量化交易策略的大拿.学习内容囊括Numpy\Pandas\ ...

  5. 金融量化alpha和beta值的意义

    金融量化alpha和beta值的意义 添加链接描述 posted on 2019-02-19 21:28 luoganttcc 阅读(...) 评论(...) 编辑 收藏

  6. 十八、彻底掌握金融量化交易库Tushare

    @Author : By Runsen @Date : 2020/6/16 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...

  7. TDengine与中泰证券正式签约,打造金融量化交易场景解决方案

    中泰证券股份有限公司(原名齐鲁证券有限公司)成立于 2001 年 5 月,是全国大型综合类上市券商),在全国 28 个省市自治区设有 45 家分公司.284 家证券营业部,员工 9000 多人,控股中 ...

  8. 数据分析--07:金融量化

    데이터 분석--07: 재무 수량화 一.金融介绍 1.金融 2.金融工具 1.期货 2.黄金 3.外汇 4.投资基金 5.股票 股票的作用 3.股票分类 1.收益分类 2.上市地区分类 3.股票市场 ...

  9. 2、金融量化分析简介

    学习目标 金融量化简介 数据分析简介 常用库简介 1.学习目标 ​ 谈到金融量化分析,可能大多数人想到的肯定就是海量的股票数据,交叉错乱的股票数据图表,让从未接触过金融的人无法入手,就会想这种东西我怎 ...

最新文章

  1. centos 7.4 上安装neo4j并测试
  2. Java 中的线程安全的类
  3. JWT认证不通过导致不能访问视图的解决方案
  4. AOP——基于AspectJ的注解来实现AOP操作
  5. openlayers事件类型
  6. asp.net core 支付宝支付( 电脑2.0)
  7. 快速理解Java的三种代理模式
  8. 【Python】基于Python的百度迁徙3——城内出行强度(附代码)
  9. 叶三《我们唱》-野孩子(眼望着北方)
  10. ubuntu下安裝搜狗輸入法
  11. 如何降低开关电源空载损耗
  12. 利用Python开发一个微信定时发送器
  13. obj、fbx 转 3dtiles(免费转换工具)
  14. bilibili学习
  15. 机器视觉——VisionPro应用开发指南
  16. VUE 获奖名单滚动显示的两种方式
  17. TextView里的setText方法
  18. 未来最吃香的五大互联网职业,你选对了吗?
  19. informatica odbc oracle,Informatica数据源配置
  20. ElasticSearch近实时搜索的实现

热门文章

  1. C++课后习题第五章
  2. 腾讯AI Lab招聘基础研究实习生
  3. 第一类曲线积分的轮换对称性
  4. 最大子矩形问题的解决方法:悬线法
  5. 什么是social media?
  6. 建模软件matlab,方程建模与MATLAB软件
  7. O2O、C2C、B2B、B2C的区别在哪里?
  8. Java报时用什么制作_简单实现一个整点报时的软件
  9. Microsoft AppLocale Utility 安装后出现乱码现象解决
  10. Non-maximum Suppression (NMS) 流程回顾