Skip to content

Commit

Permalink
set version to 0.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jimmysoa committed Mar 17, 2015
1 parent dfd7ec9 commit a9e1832
Show file tree
Hide file tree
Showing 12 changed files with 175 additions and 76 deletions.
54 changes: 34 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,8 @@ Quick Start

设定历史数据的时间:

In [5]: ts.get_hist_data('600848',start='2015-01-05',end='2015-01-09')
Out[5]:
ts.get_hist_data('600848',start='2015-01-05',end='2015-01-09')

open high close low volume p_change ma5 ma10 \
date
2015-01-05 11.160 11.390 11.260 10.890 46383.57 1.26 11.156 11.212
Expand All @@ -81,9 +81,17 @@ Quick Start
2015-01-09 11.682 58792.43 60665.93 107924.27 1.54


**复权历史数据**
获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过一年以上,获取到数据后,请及时在本地存储。

ts.get_h_data('002337') #前复权
ts.get_h_data('002337',autype='hfq') #后复权
ts.get_h_data('002337',autype=None) #不复权
ts.get_h_data('002337',start='2015-01-01',end='2015-03-16') #两个日期之间的前复权数据


**Example 2.** 一次性获取最近一个日交易日所有股票的交易数据(结果显示速度取决于网速)

import tushare as ts

ts.get_today_all()

Expand Down Expand Up @@ -119,9 +127,10 @@ Quick Start

**Example 3.** 获取历史分笔数据

In [1]: import tushare as ts
In [2]: df = ts.get_tick_data('600848',date='2014-01-09')
In [3]: df.head(10)
import tushare as ts

df = ts.get_tick_data('600848',date='2014-01-09')
df.head(10)

结果显示:
>成交时间、成交价格、价格变动,成交手、成交金额(元),买卖类型
Expand All @@ -142,24 +151,20 @@ Quick Start

**Example 4.** 获取实时交易数据(Realtime Quotes Data)

In [1]:import tushare as ts
In [2]:ts.get_realtime_quotes('000581') #Single stock symbol
df = ts.get_realtime_quotes('000581') #Single stock symbol
df[['code','name','price','bid','ask','volume','amount','time']]

结果显示:
>名称、开盘价、昨价、现价、最高、最低、买入价、卖出价、成交量、成交金额...more in docs
Out[2]:
name open pre_close price high low bid ask volume \
0 威孚高科 31.50 31.38 30.25 31.63 30.08 30.25 30.27 10148935
amount ... a2_p a3_v a3_p a4_v a4_p a5_v a5_p \
0 314310351.22 ... 30.29 2 30.30 234 30.31 19 30.32 \
date time code
0 2015-01-14 14:30:46 000581

code name price bid ask volume amount time
0 000581 威孚高科 31.15 31.14 31.15 8183020 253494991.16 11:30:36
请求多个股票方法(一次最好不要超过30个):

In [3]:ts.get_realtime_quotes(['600848','000980','000981']) #symbols from a list
In [4]:ts.get_realtime_quotes(df['code'].tail(10)) #from a Series
ts.get_realtime_quotes(['600848','000980','000981']) #symbols from a list
ts.get_realtime_quotes(df['code'].tail(10)) #from a Series


更多文档
Expand All @@ -169,6 +174,15 @@ Quick Start
Change Logs
------

0.2.0 2015/03/17
=======

- 新增历史复权数据接口
- 新增即时滚动新闻、信息地雷数据
- 新增沪深300指数成股份及动态权重、
- 新增上证50指数成份股
- 修改历史行情数据类型为float

0.1.9 2015/02/06
========
- 增加分类数据
Expand All @@ -182,18 +196,18 @@ Change Logs
0.1.5 2015/01/26
=====

- 增加了基本面数据的获取
- 增加基本面数据接口
- 发布一版使用手册,开通[TuShare docs](http://tushare.waditu.com)网站

0.1.3 2015/01/13
===
- 增加了实时交易数据的获取
- 增加实时交易数据的获取
- Done for crawling Realtime Quotes data

0.1.1 2015/01/11
===

- 增加了tick数据的获取
- 增加tick数据的获取

0.1.0 2014/12/01
===
Expand Down
69 changes: 51 additions & 18 deletions docs/classifying.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
概念分类
--------

返回股票概念的分类数据,现实的二级市场交易中,经常会已概念来炒作,在数据分析过程中,可根据概念分类监测资金等信息的变动情况。本接口是一次性在线获取数据,调用接口时会有一定的延时,请在数据返回后自行将数据进行及时存储。sina财经提供的概念分类信息大致如下图所示:
返回股票概念的分类数据,现实的二级市场交易中,经常会以"概念"来炒作,在数据分析过程中,可根据概念分类监测资金等信息的变动情况。本接口是一次性在线获取数据,调用接口时会有一定的延时,请在数据返回后自行将数据进行及时存储。sina财经提供的概念分类信息大致如下图所示:

.. figure:: _static/cpt.png
:alt:
Expand Down Expand Up @@ -212,14 +212,47 @@
9 300010 立思辰
10 300011 鼎汉技术

风险警示板分类
--------------
沪深300成份股和权重
-------------------

获取风险警示板股票数据,即查找所有st股票
获取沪深300当前成份股及所占权重

参数说明
返回值说明

- **file\_path**:文件路径,默认为None即由TuShare提供,可以设定自己的股票文件路径。
- **code** :股票代码
- **name** :股票名称
- **date** :日期
- **weight**:权重

调用方法:

::

import tushare as ts

ts.get_hs300s()

结果显示:

::

code name date weight
0 000001 平安银行 2015-03-02 0.93
1 000002 万科A 2015-03-02 1.43
2 000009 中国宝安 2015-03-02 0.27
3 000024 招商地产 2015-03-02 0.30
4 000027 深圳能源 2015-03-02 0.10
5 000039 中集集团 2015-03-02 0.20
6 000060 中金岭南 2015-03-02 0.18
7 000061 农 产 品 2015-03-02 0.21
8 000063 中兴通讯 2015-03-02 0.46
9 000069 华侨城A 2015-03-02 0.33
10 000100 TCL集团 2015-03-02 0.51

上证50成份股
------------

获取上证50成份股

返回值说明:

Expand All @@ -232,21 +265,21 @@

import tushare as ts

ts.get_st_classified()
ts.get_sz50s()

结果显示:

::

code name
0 000033 *ST新都
1 000403 ST生化
2 000504 *ST传媒
3 000520 *ST凤凰
4 000557 *ST广夏
5 000594 *ST国恒
6 000659 *ST中富
7 000755 *ST三维
8 000779 *ST派神
9 000822 *ST海化
10 002006 *ST精功
0 600000 浦发银行
1 600010 包钢股份
2 600015 华夏银行
3 600016 民生银行
4 600018 上港集团
5 600028 中国石化
6 600030 中信证券
7 600036 招商银行
8 600048 保利地产
9 600050 中国联通
10 600089 特变电工
4 changes: 2 additions & 2 deletions docs/fundamental.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@

本模块数据全部来自sina财经,由于财务数据项目比较多,所以拆分成了几个表,使用时可以通过股票代码合并在一起,也可以独立使用。数据在获取时,需要一页一页的抓取,所以需要一点等待时间,最后会合并成一个大表。

沪深股票列表
------------
股票列表
--------

获取沪深上市公司基本情况。属性包括:

Expand Down
24 changes: 10 additions & 14 deletions docs/preface.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,23 @@

.. currentmodule:: tushare

.. highlightlang:: python

前言
====

   大概一年以前,几个朋友和同事偶尔跟我聊到股票的数据问题,因为大多是搞开发的,所以希望能从技术的角度获取一些数据并加以分析,看是否能通过数据的量化分析发现一些影响股价涨跌的"蛛丝马迹"。从那以后,我收集整理了一些数据接口,正好那段时间因个人兴趣正在学习数据分析,利用python
pandas包做了一些实践,由于个人比较喜欢pandas这个工具,通过DataFrame结构化的数据配合Python语言本身的编程功能很容易实现处理和分析,所以近来把之前收集来的股票等财经数据接口都封装成函数实现了便捷抓取,返回的数据基本都是DataFrame格式,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。
**TuShare是一个免费、开源的python财经数据接口包。**\ 主要实现对股票等金融数据从\ **数据采集**\ \ **清洗加工**
**数据存储**\ 的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据。考虑到python
pandas包在金融量化分析中体现出的优势,TuShare返回的绝大部分的数据格式都是pandas
DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。

   TuShare不是一个有多么高大上的东西,也没有多少技术含量,实现相对简单,当前版本只是提供经过初步处理的数据,调用和使用非常非常简单,目的就是为做金融分析的人提供便捷、干净的数据,仅此而已。所有的数据都来自各大门户网站,尤其是sina财经,所以特别感谢新浪。如果在使用过程碰到数据源地址发生变更或者数据结构变化造成错误,请自行查找和修改,或者通过**Email:[email protected]
TuShare的数据主要来源于新浪财经、凤凰财经等各大门户网站,如果在使用过程碰到数据源地址发生变更或者数据结构变化造成错误,请自行查找和修改,或者通过\ **Email:[email protected]
QQ:52799046**
联系我,如果有什么好的建议和意见,也请及时联系我,在此谢过。

   对于后期的愿景,其实TuShare也是向往着走向“高大上”的^\_^,比如把期货等金融数据也纳入进来,另外,最关键是要做一些**数据模型**
,为做量化分析的朋友,为怀揣着金融梦想立志成为Quant的朋友提供一些帮助。所以,欢迎有着同样兴趣的朋友加入进来,一起做点“让数据产生价值”的事,一起让自己的想法变成有着实际载体的具体实现。

   如果您精于业务勤于研究,却对程序编码和获取其他重要数据无暇顾及,欢迎随时联系。TEL:138-1140-5077

用途
----

TuShare主要完成了对股票等金融数据从\ **数据采集**\ \ **数据清洗和加工**
`数据存储 <#id33>`__\ 的过程,满足金融量化分析师和学习数据分析的人在数据获取方面的需求。
TuShare的产生完全是本人业余兴趣和学习新鲜事物的结果,以免费和开源的形式分享出来,希望对有需求的人有所帮助。如果您觉得TuShare好用,在\ `GitHub <https://github.com/waditu/tushare>`__\ 里对TuShare点一下\ **Star**\ 来就算是对她的支持,如果您也想参与其中,欢迎Fork和提交Pull
Requests.

.. figure:: _static/main_pic_min.png
:alt:
Expand Down
2 changes: 1 addition & 1 deletion docs/storing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
- 存入MySQL等关系型数据库
- 存入NoSQL数据库

csv文件
CSV文件
-------

pandas的DataFrame和Series对象提供了直接保存csv文件格式的方法,通过参数设定,轻松将数据内容保存在本地磁盘。
Expand Down
51 changes: 51 additions & 0 deletions docs/trading.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

.. currentmodule:: tushare

.. highlightlang:: python

交易数据
========
Expand Down Expand Up @@ -119,6 +120,56 @@
ts.get_hist_data('zxb')#获取中小板指数k线数据
ts.get_hist_data('cyb')#获取创业板指数k线数据

复权历史数据
------------

获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过一年以上。获取到数据后,请及时在本地存储。

::

ts.get_h_data('002337') #前复权
ts.get_h_data('002337',autype='hfq') #后复权
ts.get_h_data('002337',autype=None) #不复权
ts.get_h_data('002337',start='2015-01-01',end='2015-03-16') #两个日期之间的前复权数据

参数说明:

- **code**:string,股票代码 e.g. 600848
- **start**:string,开始日期 format:YYYY-MM-DD 为空时取当前日期
- **end**:string,结束日期 format:YYYY-MM-DD 为空时取去年今日
- **autype**:string,复权类型,qfq-前复权 hfq-后复权
None-不复权,默认为qfq
- **retry\_count** : int, 默认3,如遇网络等问题重复执行的次数
- **pause** : int, 默认
0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题

返回值说明:

- **date** : 交易日期 (index)
- **open** : 开盘价
- **high** : 最高价
- **close** : 收盘价
- **low** : 最低价
- **volumn** : 成交量
- **amount** : 成交金额

结果:

::

open high close low volumn amount
date
2015-03-16 13.27 13.45 13.39 13.00 81212976 1073862784
2015-03-13 13.04 13.38 13.37 13.00 40548836 532739744
2015-03-12 13.29 13.95 13.28 12.96 71505720 962979904
2015-03-11 13.35 13.48 13.15 13.00 59110248 780300736
2015-03-10 13.16 13.67 13.59 12.72 105753088 1393819776
2015-03-09 13.77 14.73 14.13 13.70 139091552 1994454656
2015-03-06 12.17 13.39 13.39 12.17 89486704 1167752960
2015-03-05 12.79 12.80 12.17 12.08 26040832 966927360
2015-03-04 13.96 13.96 13.30 12.58 26636174 1060270720
2015-03-03 12.17 13.10 13.10 12.05 19290366 733336768

实时行情
--------

Expand Down
14 changes: 7 additions & 7 deletions test/classifying_test.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# -*- coding:utf-8 -*-

import tushare as ts
import tushare.stock.classifying as ts

if __name__ == '__main__':
# print ts.get_area_classifyed()
# print ts.get_gem_classifyed()
# print ts.get_sme_classifyed()
print ts.get_st_classifyed()
# print ts.get_industry_classifyed()
# print ts.get_concept_classifyed()
# print ts.get_area_classified()
# print ts.get_gem_classified()
# print ts.get_sme_classified()
# print ts.get_st_classified()
# print ts.get_industry_classified()
print ts.get_concept_classified()
13 changes: 9 additions & 4 deletions test/news_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
import tushare.stock.newsevent as ns

if __name__ == '__main__':
df = ns.get_latest_news(2,show_content=True)
df = ns.get_latest_news(5,show_content=False)
print df

url = df.ix[0,'url']
print ns.latest_content(url)

# url = df.ix[0,'url']
# print ns.latest_content(url)

# nts = ns.get_notices('600848')
# # print nts
# url = nts.ix[0,'url']
# print ns.notice_content(url)
2 changes: 1 addition & 1 deletion test/trading_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@
# print td.get_realtime_quotes(['600848','000980','000981'])
# df = td.get_today_all()
# print td.get_realtime_quotes(df['code'].tail(10))
print ts.get_hist_data('600848')
print ts.get_hist_data('600848',start='2015-02-25')
4 changes: 1 addition & 3 deletions tushare/stock/classifying.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,4 @@ def get_sz50s():
return df
except Exception as er:
print str(er)

if __name__ == '__main__':
print get_sz50s()

Loading

0 comments on commit a9e1832

Please sign in to comment.