get_fundamentals - 查询基本面数据

函数原型:

 
  1. get_fundamentals(table, symbols, start_date, end_date, fields=None, filter=None, order_by=None, limit=1000, df=False)

参数:

 
参数名类型说明
table str 表名,只支持单表查询. 具体表名及fields字段名及filter可过滤的字段参考 财务数据文档
symbols str or list 标的代码, 多个代码可用 ,(英文逗号)分割, 也支持 ['symbol1', 'symbol2'] 这种列表格式,使用时参考symbol
start_date str 开始时间, (%Y-%m-%d 格式)
end_date str 结束时间, (%Y-%m-%d 格式)
fields str 查询字段 (必填)
filter str 查询过滤,使用方法参考例3、例4
order_by str or None 排序方式, 默认 NoneTCLOSE 表示按 TCLOSE 升序排序. -TCLOSE 表示按 TCLOSE 降序排序. TCLOSE, -NEGOTIABLEMV 表示按 TCLOSE 升序, NEGOTIABLEMV 降序综合排序
limit int 数量. 默认是1000, 为保护服务器, 单次查询最多返回 40000 条记录
df bool 是否返回dataframe格式, 默认False, 返回list[dict]

返回值:

 

keyvalue类型说明
symbol str 标的代码
pub_date datetime.datetime 公司发布财报的日期.
end_date datetime.datetime 财报统计的季度的最后一天.
fields dict 相应指定查询 fields 字段的值. 字典key值请参考 财务数据文档

示例:

例1: 取股票代码 SHSE.600000, SZSE.000001, 离 2017-01-01 最近一个交易日的 股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI 字段的值

 
  1. get_fundamentals(table='trading_derivative_indicator', symbols='SHSE.600000, SZSE.000001',
  2.                  start_date='2017-01-01', end_date='2017-01-01',
  3.                  fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI',
  4.                  df=True )

输出:

 
  1. symbol pub_date end_date NEGOTIABLEMV PEMRQ PELFYNPAAEI PETTMNPAAEI PELFY TURNRATE PETTM TOTMKTCAP TCLOSE
  2. SHSE.600000 2016-12-30 00:00:00 2016-12-30 00:00:00 3.3261e+11 6.4605 7.0707 6.6184 6.925 0.0598 6.4746 3.50432e+11 16.21
  3. SZSE.000001 2016-12-30 00:00:00 2016-12-30 00:00:00 1.33144e+11 6.2604 7.1341 6.2644 7.1462 0.2068 6.8399 1.56251e+11 9.1

 

例2:

取股票代码 SHSE.600000, SZSE.000001, 指定时间段 2016-01-01 -- 2017-01-01 股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI 字段的值

1 get_fundamentals(table='trading_derivative_indicator', symbols='SHSE.600000, SZSE.000001', start_date='2016-01-01', end_date='2017-01-01',
2 fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True)

 

例3:

取指定股票 SHSE.600000, SHSE.600001, SHSE.600002 离 2017-01-01 最近一个交易日, 且满足条件 PCTTM > 0 and PCTTM < 10 股票交易财务衍生表 的 TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI 字段的值

1 get_fundamentals(table='trading_derivative_indicator', symbols='SHSE.600000, SHSE.600001, SHSE.600002', start_date='2017-01-01', end_date='2017-01-01', filter='PCTTM > 0 and PCTTM < 10',
2 fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True)
3 # 或者这样写
4 my_symbols = ['SHSE.600000', 'SHSE.600001', 'SHSE.600002']
5 get_fundamentals(table='trading_derivative_indicator', start_date='2017-01-01', end_date='2017-01-01', filter='PCTTM > 0 and PCTTM < 10', symbols=my_symbols,
6 fields='TCLOSE,NEGOTIABLEMV,TOTMKTCAP,TURNRATE,PELFY,PETTM,PEMRQ,PELFYNPAAEI,PETTMNPAAEI', df=True)

 

例4:

取指定股票 SHSE.600000, SZSE.000001 离 2016-01-20 最近一个财报, 同时满足条件 CURFDS > 0 and TOTLIABSHAREQUI > 0 的 资产负债 的数据

 1 get_fundamentals(table='balance_sheet', start_date='2016-01-20', end_date='2016-01-20',
 2                 fields='CURFDS, SETTRESEDEPO, PLAC, TRADFINASSET, ',
 3                 symbols='SHSE.600000, SZSE.000001',
 4                 filter='CURFDS > 0 and TOTLIABSHAREQUI > 0',
 5                 df=True)
 6 # 或者这样写
 7 my_symbols = ['SHSE.600000', 'SZSE.000001']
 8 get_fundamentals(table='balance_sheet',  start_date='2016-01-20', end_date='2016-01-20',
 9                 fields='CURFDS, SETTRESEDEPO, PLAC, TRADFINASSET, ',
10                 symbols=my_symbols,
11                 filter='CURFDS > 0 and TOTLIABSHAREQUI > 0',
12                 df=True)

 

 

注意:

1.当 start_date == end_date 时, 取所举每个股票离 end_date 最近业务日期(交易日期或报告日期) 一条数据,当 start_date < end_date 时, 取指定时间段的数据,当 start_date > end_date 时, 返回空list/空DataFrame

2.当不指定排序方式时,返回的list/DataFrame以参数pub_date/end_date来排序

3.start_date和end_date中月,日均可以只输入个位数,例:'2010-7-8''2017-7-30'

4.若输入包含无效标的代码,则返回的list/DataFrame只包含有效标的代码对应的数据

5.在该函数中,table参数只支持输入一个表名,若表名输入错误或以'table1,table2'方式输入多个表名,函数返回空list/空DataFrame

6.若表名输入正确,但查询字段中出现非指定字符串,则程序直接报错

posted @ 2021-08-10 11:06  翩翩浊世之佳公子  阅读(882)  评论(0)    收藏  举报