美文网首页
python读取财经数据

python读取财经数据

作者: 黄yy家的jby | 来源:发表于2019-06-12 19:05 被阅读0次

目录

  • wind api
  • tushare
  • pandas_datareader

1.wind api

提取日期数据基本语法
from WindPy import w
w.start()
当出现.ErrorCode==-103说明没连接上,要start一下

w.wsd(security, fields, startDate = None, endDate= None , options = None)
opion 可选(period, 日期类型, 货币类型,前后复权)

from WindPy import *

begin = '2017-01-01'
end = '2019-01-01'
stock = ['000001.SZ', '000002.SZ']
field = ['open', 'close', 'amt']
data = w.wsd(stock, field, begin, end, usedf=True)
#data.Data 是数据集, data.Times是时间戳
# usedf = True 是输出为df格式

提取财务数据基本语法
w.wss(security, fields, options = None)

from WindPy import *

begin = '2017-01-01'
stock = ['000001.SZ', '000002.SZ']
field = ['eps_basic', 'profittogr', 'monetary_cap']
data = w.wsd(stock, field, begin, usedf=True)

提取板块日序列基本语法
w.wses(sectorCode, fields, startDate = None, endDate = None, options = None)

提取板块日截面数据基本语法
w.wsee(sectorCode, fields, options=None)

提取宏观数据基本语法
w.edb(codes, startDate =None, endDate =None, options=None)

2.tushare

1.日期序列基本语法
ts.get_hist_data(stock,start,end)
注意:1.stock不能是集合,只能单个股票 2.需要带上.sz或.sh 3.没有field,只能取出数据后再切除.

import tushare as ts

ts.get_hist_data('600848', ktype='W') #获取周k线数据
ts.get_hist_data('600848', ktype='M') #获取月k线数据
ts.get_hist_data('600848', ktype='5') #获取5分钟k线数据
ts.get_hist_data('600848', ktype='15') #获取15分钟k线数据
ts.get_hist_data('600848', ktype='30') #获取30分钟k线数据
ts.get_hist_data('600848', ktype='60') #获取60分钟k线数据
ts.get_hist_data('sh')#获取上证指数k线数据,其它参数与个股一致,下同
ts.get_hist_data('sz')#获取深圳成指k线数据
ts.get_hist_data('hs300')#获取沪深300指数k线数据
ts.get_hist_data('sz50')#获取上证50指数k线数据
ts.get_hist_data('zxb')#获取中小板指数k线数据
ts.get_hist_data('cyb')#获取创业板指数k线数据

2.pro用法
pro.daily(code, start, end, fields)

import tushare as ts

token = '44fdba45b6d8d934ad5979d014d30dda7166731b531fa39eb20de***'
#打码制图
ts.set_token(token)
pro = ts.pro_api()

data = pro.daily('000001.sz', start='20170101', end='20180101', fields = 'close')
data2 = pro.income(code, start, end, fields)
# 财务数据有对应的函数

tushare引用语句

弊端也很明显,一方面不能stock集合输入,一次只能调取一个股票对应数据,另一方面tushare虽是免费试用,但有权限限制。


需要对应积分开启对应权限

3.pandas_datareader

基本语法
wb.get_data_yahoo(code, start, end)
wb.DataReader(code, 'yahoo', start, end)

import pandas_datareader.data as web


start = '20190101' # or start = '1/1/2016'
end = '20190505'
prices = web.DataReader('AAPL', 'yahoo', start, end)
prices2 = web.DataReader(['GS', 'AAPL'], 'yahoo', start, end)

没法添加fields, 虽能集合适用,但出来的索引挺奇怪的


price2

推荐使用定义函数或用for循环批量获取数据

import pandas_datareader.data as web

start = '2010-01-01'
end = '2017-02-25'
get_close = lambda x: web.get_data_yahoo(x, start=start, end=end)['Adj Close']

symbols = ['SPY', 'TLT', 'MSFT']
data = pd.DataFrame({sym:get_close(sym) for sym in symbols})

总体感觉wind api最舒服,但需要账号,mac也不能直接调用wind api。还是推荐tushare的pro用法。

小白学习中,请指教=v=

相关文章

网友评论

      本文标题:python读取财经数据

      本文链接:https://www.haomeiwen.com/subject/rbwlfctx.html