一、聚宽数据html
1.在聚宽数据这个页面能够看到聚宽平台集成好的各大类数据,以下图,点击能够查看详情与用法python
2.但实际上可能有些数据要在API文档里才比较容易能找到,好比龙虎榜数据等。这时用ctrl+f进行网页搜索能够快速搜索须要的数据。sql
- 数据库
get_index_stocks(index_symbol, date=None)
获取一个指数给定日期在平台可交易的成分股列表,请点击指数列表查看指数信息express
参数api
返回 返回股票代码的list数组
示例函数
# 获取全部沪深300的股票 stocks = get_index_stocks('000300.XSHG') log.info(stocks)
# 获取20180301时,上证50指数(000016.XSHG)成分股 t=get_index_stocks("000016.XSHG","2018-03-01") print(t[0]) print(t) # 打印日志以下。股票代码在list中被打印出来的是unicode编码字符串 # 600000.XSHG # [u'600000.XSHG', u'600016.XSHG', u'600019.XSHG', u'600028.XSHG', u'600029.XSHG', u'600030.XSHG', u'600036.XSHG', u'600048.XSHG', u'600050.XSHG', u'600104.XSHG', u'600111.XSHG', u'600309.XSHG', u'600340.XSHG', u'600518.XSHG', u'600519.XSHG', u'600547.XSHG', u'600606.XSHG', u'600837.XSHG', u'600887.XSHG', u'600919.XSHG', u'600958.XSHG', u'600999.XSHG', u'601006.XSHG', u'601088.XSHG', u'601166.XSHG', u'601169.XSHG', u'601186.XSHG', u'601211.XSHG', u'601229.XSHG', u'601288.XSHG', u'601318.XSHG', u'601328.XSHG', u'601336.XSHG', u'601390.XSHG', u'601398.XSHG', u'601601.XSHG', u'601628.XSHG', u'601668.XSHG', u'601669.XSHG', u'601688.XSHG', u'601766.XSHG', u'601800.XSHG', u'601818.XSHG', u'601857.XSHG', u'601878.XSHG', u'601881.XSHG', u'601985.XSHG', u'601988.XSHG', u'601989.XSHG', u'603993.XSHG']
股票财务数据这里是指发股票的公司发布的财务报表中的数据。能够在聚宽数据-股票财务数据查看数据详情。post
财务报表简称财报,是用来向股东汇报企业经营状况的,上市公司必须按季度公布财报,一年有四季因此财报依发布次序一季报、半年报(也称中报)、三季报、年报,而具体的发布日期在必定期限内便可并不是固定,年报要求年度结束四个月内披露,半年报是上半年结束后两个月内,一季报与三季报是季度结束后一个月内。特别的是像总市值、市盈率这种跟股价挂钩的市值数据是天天更新的。ui
1.get_fundamentals方法介绍
get_fundamentals(query_object, date=None, statDate=None)
查询财务数据,详细的数据字段描述请点击财务数据文档查看
date和statDate参数只能传入一个:
当 date 和 statDate 都不传入时, 至关于使用 date 参数, date 的默认值下面会描述.
参数
返回 返回一个 [pandas.DataFrame], 每一行对应数据库返回的每一行(多是几个表的联合查询结果的一行), 列索引是你查询的全部字段 注意:
2.财务数据文档
市值数据
天天更新
表名: valuation
列名 | 列的含义 | 解释 | 公式 |
---|---|---|---|
code | 股票代码 | 带后缀.XSHE/.XSHG | |
day | 日期 | 取数据的日期 | |
capitalization | 总股本(万股) | 公司已发行的普通股股份总数(包含A股,B股和H股的总股本) | |
circulating_cap | 流通股本(万股) | 公司已发行的境内上市流通、以人民币兑换的股份总数(A股市场的流通股本) | |
market_cap | 总市值(亿元) | 总市值是指在某特定的时间内,交易所挂牌交易所有证券(以总股本计)按当时价格计算的证券总值 | A股合计 * A股收盘价 + B股合计 * B股收盘价 * 外汇汇率 + H股合计 * H股收盘价 外汇汇率 + (总股本 - A股合计 - B股合计 - H股合计) 每股净资产 |
circulating_market_cap | 流通市值(亿元) | 流通市值指在某特定时间内当时可交易的流通股股数乘以当时股价得出的流通股票总价值。 | A股市场的收盘价*A股市场的流通股数 |
turnover_ratio | 换手率(%) | 指在必定时间内市场中股票转手买卖的频率,是反映股票流通性强弱的指标之一。 | 换手率=[指定交易日成交量(手)100/截至该日股票的自由流通股本(股)]100% |
pe_ratio | 市盈率(PE, TTM) | 每股市价为每股收益的倍数,反映投资人对每元净利润所愿支付的价格,用来估计股票的投资报酬和风险 | 市盈率(PE,TTM)=(股票在指定交易日期的收盘价 * 当日人民币外汇挂牌价 * 截止当日公司总股本)/归属于母公司股东的净利润TTM。 |
pe_ratio_lyr | 市盈率(PE) | 以上一年度每股盈利计算的静态市盈率. 股价/最近年度报告EPS | 市盈率(PE)=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/归属母公司股东的净利润。 |
pb_ratio | 市净率(PB) | 每股股价与每股净资产的比率 | 市净率=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/归属母公司股东的权益。 |
ps_ratio | 市销率(PS, TTM) | 市销率为股票价格与每股销售收入之比,市销率越小,一般被认为投资价值越高。 | 市销率TTM=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/营业总收入TTM |
pcf_ratio | 市现率(PCF, 现金净流量TTM) | 每股市价为每股现金净流量的倍数 | 市现率=(股票在指定交易日期的收盘价 * 当日人民币外汇牌价 * 截至当日公司总股本)/现金及现金等价物净增长额TTM |
3.示例
# 1.查询'000001.XSHE'的全部市值数据, 时间是2015-10-15 q = query( valuation ).filter( valuation.code == '000001.XSHE' ) df = get_fundamentals(q, '2015-10-15') # 打印出总市值 log.info(df['market_cap'][0]) # 2.获取多只股票在某一日期的市值, 利润 df = get_fundamentals(query( valuation, income ).filter( # 这里不能使用 in 操做, 要使用in_()函数 valuation.code.in_(['000001.XSHE', '600000.XSHG']) ), date='2015-10-15') # 3.选出全部的总市值大于1000亿元, 市盈率小于10, 营业总收入大于200亿元的股票 df = get_fundamentals(query( valuation.code, valuation.market_cap, valuation.pe_ratio, income.total_operating_revenue ).filter( valuation.market_cap > 1000, valuation.pe_ratio < 10, income.total_operating_revenue > 2e10 ).order_by( # 按市值降序排列 valuation.market_cap.desc() ).limit( # 最多返回100个 100 ), date='2015-10-15') # 4.使用 or_ 函数: 查询总市值大于1000亿元 **或者** 市盈率小于10的股票 from sqlalchemy.sql.expression import or_ get_fundamentals(query( valuation.code ).filter( or_( valuation.market_cap > 1000, valuation.pe_ratio < 10 ) )) # 5.查询平安银行2014年四个季度的季报, 放到数组中 q = query( income.statDate, income.code, income.basic_eps, balance.cash_equivalents, cash_flow.goods_sale_and_service_render_cash ).filter( income.code == '000001.XSHE', ) rets = [get_fundamentals(q, statDate='2014q'+str(i)) for i in range(1, 5)] # 6.查询平安银行2014年的年报 q = query( income.statDate, income.code, income.basic_eps, cash_flow.goods_sale_and_service_render_cash ).filter( income.code == '000001.XSHE', ) ret = get_fundamentals(q, statDate='2014')