admin管理员组

文章数量:1536088

gt_fundamentals() 函数

该函数可查询一只股票或多只股票的财务数据,其语法如下:

get_fundamentals(query_object, date=None, statDate=None)

参数解析:

  • query_object : 这是一个 sqlalchemy.orm.query.Query 对象,可以通过全局的 query 函数获取 Query 对象

  • date : 表示查询日期,可以是一个字符串或者datetime.date/datetime.datetime对象。可以是None,使用默认日期,这个默认日期在回测和研究模块上有点差别:

    • 回测模块:默认值会随着回测日期变化而变化,等于 context.current_dt 的前一天(实际生活中我们只能看到前一天的财报和市值数据,所以要用前一天)
    • 研究模块:使用平台财务数据的最新日期,一般是昨天

    需要注意的是,如果传入的date不是交易日,则使用这个日期之前的最近的一个交易日

  • statDate : 是一个字符串,表示财报统计的季度或者年份,有两种格式,具体如下:

    • 季度:格式是年+“q”+季度序号,例如:“2018q1”,“2017q4“
    • 年份:格式就是年份的数字,如”2017“,”2018“

    date 和 statDate 参数只能传入一个。传入date时,查询指定日期 date 收盘后所能看到最近的数据;传入 statDate 时,查询 statDate 指定的季度或者年份的财务数据。当两个参数都没有传入成功时,相当于使用 date 参数,即使用默认日期

    为了防止返回数据量过大,每次最多返回10000行。另外,当相关股票上市前、退市后,财务数据返回各字段为空

实例代码:

import pandas as pd

# query表示查询
# filter表示条件筛选
# valuation是内置市值数据对象(这里表示查询valuation下所有的属性)
# 最终返回一个Query对象
myq = query(valuation).filter(valuation.code=='000001.XSHE')
df = get_fundamentals(myq,'2018-4-12')
df
id code pe_ratio turnover_ratio pb_ratio ps_ratio pcf_ratio capitalization market_cap circulating_cap circulating_market_cap day pe_ratio_lyr
0 16898314 000001.XSHE 8.53 0.6934 0.9787 1.8698 -2.0521 1717041.125 1978.0314 1691798.375 1948.9517 2018-04-12 8.53

valuation市值数据对象中的字段有:

  • id: 每行数据的索引,不重复
  • code: 股票代码
  • pr_ratio: 是股票的市盈率(PE,TTM),即动态市盈率。
  • turnover_ratio: 是股票的换手率。
  • pb_ratio: 是股票的市 净率(PB)
  • ps_ratio: 是股票的市现率
  • capitalization: 是股票的总股本(万股)
  • market_cap: 是股票的流通股本(万股)
  • circulating_market_cap: 是股票的流通市值(亿元)
  • day: 是指查询股票账务数据的具体日期
  • pe_ratio_lyr: 是股票的市盈率(PE)。以上一年度每股盈利计算的静态市盈率

示例:输出指定字段

import pandas as pd

# query表示查询
# filter表示条件筛选
# valuation是内置市值数据对象(这里表示查询valuation下所有的属性)
# 最终返回一个Query对象
myq = query(valuation).filter(valuation.code=='000001.XSHE')
df = get_fundamentals(myq,'2018-4-12')

print("当日动态市盈率是:", df['pe_ratio'])
print('当日换手率是:', df['turnover_ratio'])
print('当日市销率是:', df['ps_ratio'])

当日动态市盈率是: 0    8.53
Name: pe_ratio, dtype: float64
当日换手率是: 0    0.6934
Name: turnover_ratio, dtype: float64
当日市销率是: 0    1.8698
Name: ps_ratio, dtype: float64

示例:显示多只股票的财务数据

import pandas as pd

# query表示查询
# filter表示条件筛选
# valuation是内置市值数据对象(  这里表示查询valuation下所有的属性)
# 最终返回一个Query对象
myq = query(valuation).filter(valuation.code.in_(['000001.XSHE', '600000.XSHG', '000009.XSHE']))
df = get_fundamentals(myq,'2018-4-12')
df
id code pe_ratio turnover_ratio pb_ratio ps_ratio pcf_ratio capitalization market_cap circula

本文标签: 函数入门笔记数据