Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工到数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,在数据获取方面极大地减轻工作量、把精力更加专注于策略和模型的研究和实现上。
Tushare使用的标准数据格式是Dataframe类型,也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。
数据类型
交易数据:股票、商品期货、期权等金融品种的历史行情、大盘指数等。
公告数据:在交易所公告的信息,例如分配预案、融资融券等信息。
股票分类:行业分类、热点概念等。
基本面上数据:上市公司的财务报表数据、相应财务指标数据等。
宏观经济数据:存款利率、货款利率、DGP数据等。
新闻事件:财经新闻、海外股票咨询等。
利率信息:Shibor利率等。
网址:Tushare大数据社区
Tushare 是一个第三方库,因此需要我们进行安装。
# 安装tushare pip install tushare # tushare的版本 import tushare as ts ts.__version__
pro = ts.pro_api() #查询当前所有正常上市交易的股票列表 data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
或者
#查询当前所有正常上市交易的股票列表 data = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
#取000001的前复权行情 df = ts.pro_bar(ts_code='000001.SZ', adj='qfq', start_date='20180101', end_date='20181011') #取000001的后复权行情 df = ts.pro_bar(ts_code='000001.SZ', adj='hfq', start_date='20180101', end_date='20181011')
pro = ts.pro_api() #提取2021-12-09的停牌股票 df = pro.suspend_d(suspend_type='R', trade_date='20211209')
代码运行结果如下:
pro版Tushare的部分数据需要一定积分获取权限,所需各类数据及代码可至官网查询 。
Excel 读写# Excel 读写 data.to_excel("/Users/Desktop/当前所有正常上市交易的股票列表.xlsx")
# 获取本地excel文件 2021年12月9日 行情数据 # /Users/Desktop/2021年12月9日 日行情数据.xlsx # 推荐pandas实现 读取Excel数据 # 优点:(1)代码简单(2)Dataframe 查、删、改 import pandas as pd # 把文件路径记录下来 path = "/Users/Desktop/2021年12月9日 日行情数据.xlsx" # pandas :read_excel() pd.read_excel(path)
代码运行结果如下:
# 把读取到的数据,保存下来 datas = pd.read_excel(path)
代码运行结果如下:
# 查询 # 某几行的数据 datas.iloc[0:2,:] # 查询某几列的数据 datas.iloc[:,0:2] # 查询某一格数据 datas.iloc[3,5]
代码运行结果如下:
# 按信息 查询数据 datas.loc[:,"close"] datas.loc[:,["ts_code","close"]]
代码运行结果如下:
# Python来进行实现 高级查询 datas.loc[datas.loc[:,"close"] > 10]
代码运行如下:
datas.loc[datas.loc[:,"ts_code"] = "603986"]
代码运行结果如下:
# 数据处理 cal = datas.loc[0:4,:] # 求和 pd.Dataframe(cal.sum()).T
代码运行结果如下:
# 多张excel表求和 # pandas.concat all_amount = pd.concat([amount_08,amount_09],axis = 0, ignore_index = True)
代码运行结果如下:
sum # 求和 count # 非NA值的数量 min # 最小值 max # 最大值 argmin # 最小值的位置 argmax # 最大值的位置 quantile # 样本分位数 mean # 平均数 median # 中位数 mad # 平均绝对离差 var # 方差 std # 标准差 skew # 偏度 kurt # 峰度
# 数据处理完成后 保存在本地 result = all_ammout.sum() result.to_excel("test.xlsx")
代码运行结果如下:
OLS 回归分析# 使用最小二乘法OLS,进行回归运算 # 回归分析主要是用来确定两种数据之间的相关性,在金融建模中广泛使用,例如价格预测模型中,因子和股价之间的关系;套利策略中各个品种价格相关性等。 # 统计学相关函数,使用statsmodels # statsmodels是一个有很多统计类型的python库,它能完成很多统计测试、数据探索以及可视化 # 它包含一些经典的统计方法,比如贝叶斯和一个机器学习的模型。 # 线性模型(Linear models),广义线性模型(generalized models),鲁棒线性模型(rubust linear models) # 线性混合效应模型(Linear mixed dffects models) # 方差分析(ANOVA)方法(Analysis of variance methods) # 时间序列处理(Time series processes)和状态空间模型(state space models) # 广义矩估计方法(Generalized method of moments) #-------------------------------------------------------- # 我们这次使用的是“线性模型”中的“OLS算法”
# 获取数据 # 1、上证指数数据,000001.SZ # 2、深圳指数数据,3999001.SZ # 3、对这两组数据进行回归分析 # 取出数据 # 每日涨跌百分比数据 sz_pct = df1.loc[:,"pct_chg"] sh_pct = df2.loc[:,"pct_chg"] # 回归分析,有自变量x和因变量y # 如果数据之间有逻辑上的因果性(即因变量的变化,是由于自变量导致的),则自变量、因变量必须严格限定 # 反之,如果只是关心数据之间的相关性,则不在意因变量、自变量顺序 # 设置自变量、因变量 x = sz_pct y = sh_pct # 调用OLS函数 # 增加固定项 import numpy as np import statsmodles.api as sm cons = sm.add_constant(x) # OLS函数 result = sm.OLS(y,cons).fit() # 查看拟合结果 print(result.summary())
代码运行结果如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)