第三方库tushare
Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。
使用前提:安装python和pandas。
1、下载安装
方式1:pip install tushare
方式2:访问https://pypi.python.org/pypi/Tushare/下载安装
2、版本升级
pip install tushare --upgrade
3、可参考链接
http://tushare.org/
https://tushare.pro/
https://www.oschina.net/p/tushare?hmsr=aladdin1e1
用tushare获取股票行情数据,使用的是ts.get_hist_data()函数或者ts.get_k_data()函数。
import tushare as ts
df = ts.get_k_data("code",start="",end="",ktype="",retry_count="",pause)
# 输入值说明
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
# 返回值说明
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:换手率[注:指数无此项]
案例内容
1、Show the first 30th stocks of 中证 500 with descending weight.
import tushare as ts
import pandas as pd
# 获得中证500的实时数据,将中证500的股票数据放在一个dataframe()中
# token获取的方式https://blog.csdn.net/liu_1314521/article/details/109011406?
TOKEN = 'cbfe2cc36362624682e5215f5e378c65a8846f70d3095429102f0559'
pro = ts.pro_api(token=TOKEN)
data = pd.DataFrame()
data = ts.get_zz500s()
# 获取前三十行数据并根据weight降序排列
data_sorted = data.sort_values(['weight'], ascending=False)[0:30]
print(data_sorted)
中证500的实时数据:
按降序进行排序,权重值为30的部分截图:
2、获取某个股票的历史数据
#获取k线数据,加载至DataFrame中,这个是茅台的股票
df = ts.get_k_data("600519",start="1999-01-01")
#将从Tushare中获取的数据存储至本地
df.to_csv("600519.csv")
#将原数据中的时间作为行索引,并将字符串类型的时间序列化成时间对象类型,并且给显示索引
df = pd.read_csv("600519.csv", index_col='date',parse_dates=['date'])[['open','close','high','low']]