Python量化交易实战-08使用get_fundamentals查询财务指标

auto-trade xuhss 1578℃ 0评论

使用get_fundamentals查询财务指标

一、什么是财务指标?

能记账的都归属到财务数据的部分。

以企业为例子,财务报表总共有三类。

20210602215647 - Python量化交易实战-08使用get_fundamentals查询财务指标

  • 资产负债表
  • 利润表
  • 现金流量表

这些表都需要了解,因为之后做选股策略时 需要用到这些表的概念。

资产负债表

资产负债表体现企业家底和负债情况,就好比一个人 有几套房 几辆车。是全款买的还是借款买的,如果是借款,有多少是自己的,有多少是借来的。可以看到 一个公司的资产负债表是 “资产”“负债”以及两者相比这3块构成的。

利润表

利润表体现的是公司的盈利能力,赚了多少钱,怎么赚的。来源都有哪些,其中隐藏对未来增长的预期。

也是因为有这个预期,很多公司的股价也是远超真实的公司内在价值的。比如说我们听到很多互联网公司上市,拼多多,B站等等,在刚上市的时候,它的盈利情况是负增长的, 它还没有真正的实现盈利,那为什么这些公司的股价增幅很大呢?增幅会比那些大企业,发展稳定的企业涨的还要快呢,正是因为这里所说的“预期”。

也就是说,利润表体现的是公司的市场空间和成长能力

现金流量表

现金流量表表相对来说更真实,更不容易造假,

因为资产负债表利润表是基于“权责发生制”, 它是一种会计制度, 举例来说 就是我们签合同了,里面涉及1000万订单款项,只要我们签合同了,就可以记账了。记到预收款项里面。这个预收款项是记录到利润表的。但是现金流量表不一样,它是基于“收付实现制” 也就是说,只有当1000万真的打进公司账户了,现金流量表上才会记录下来。这是这2种会计制度的区别。所以说,一家现金流很好的公司,它一定是一家造血能力很强的公司。提现的是这家公司有极强的竞争优势和议价能力。比如说我们熟知的高端白酒行业,贵州茅台,五粮液。这些企业都是因为供不应求,他们的工艺、品牌效应很好。所以他们不担心收不到钱,不担心有欠款。这也就是他们现金流量情况很好的原因。

二、使用数据接口获取财务指标

https://www.joinquant.com/help/api/help#name:JQData

进入到上面网页直接搜索“财务数据

20210602221010 - Python量化交易实战-08使用get_fundamentals查询财务指标

这里有“单季度/年度财务数据”和“报告期财务数据

这2者有什么区别?他们主要是数据获取的周期不同。

  • 单季度:第一、第二、第三、第四、季度分别的利润是多少。
  • 年度:以年为单位的利润是多少。
  • 报告期:第一季度,半年报,第三季度,一年报。半年报是覆盖1~6月,年报是1~12月。

2.1单季度/年度财务数据接口

20210602221534 - Python量化交易实战-08使用get_fundamentals查询财务指标

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

这里的“fundamentals”翻译过来是“基本面”的意思。

财务数据”也叫做企业的基本面

我们之前有介绍过根据“基本面”和“技术面”做选股策略,这里的基本面,就是“财务数据”。

点击“财务数据文档”查看详细的数据字段描述:

20210602221925 - Python量化交易实战-08使用get_fundamentals查询财务指标

可以看到,这里会把参数和返回值都做了详细的解释。

接着我们注意到左侧的目录:

20210602222254 - Python量化交易实战-08使用get_fundamentals查询财务指标

这里财务数据拆分成了8个子级菜单。

分别是

2.2市值数据

它包含“总股本”“流通股本”、“总市值”、“流通市值”“市盈率”这些数据。

这是最基本的信息 表达的是这家公司的规模大小。以及估值情况。这些数据是我们再炒股平台可以看到的。 就是股票的基本信息。

2.3 财务指标数据

这节课主要看“财务指标数据”。它和“资产负债数据”、“现金流数据”、“利润数据”有什么区别?

简单来说,“财务指标数据”是一种合成数据。它是基于前面三者合成的。直接看“财务指标数据”的列的含义

20210602223236 - Python量化交易实战-08使用get_fundamentals查询财务指标

这里计算了“每股收益”、“经营活动净收益”、“净资产收益率”、“总资产净利率”、“销售净利率”、“销售毛利率”等等。看到这里就可以知道,比如说“总资产净利率ROA(%)”是由利润表的数据计算来的。

总资产净利率ROA(%) = 净利润*2/(期初总资产+期末总资产)

20210602223520 - Python量化交易实战-08使用get_fundamentals查询财务指标

为什么这里的财务指标数据都帮我们算出来了呢?因为这些数据都是最常用的。用于筛选股票盈利能力的数据。

所以我们可以获取这些数据,通过对这些数据进行限定。比如说,我要求股票的roe每年大于15%的增长。又或者它的销售毛利率大于75%。

这样,我就可以通过限定条件,找到“基本面”最好的一些龙头企业的股票。这个就是“财务指标数据”常用的地方。

三、实战

首先,创建一个Finamnce的文件夹,存放爬取到的csv文件。

20210602225748 - Python量化交易实战-08使用get_fundamentals查询财务指标

#获取股票的财务指标数据
df = get_fundamentals(query(indicator), statDate='2021')
print(df)
df.to_csv(r'C:\Users\huang\Desktop\XuhssQuant\Data\Finance\finace2020.csv')

运行,获得一个csv文件:

20210602225907 - Python量化交易实战-08使用get_fundamentals查询财务指标

打开它,可以看到它的所有“列”

20210602230026 - Python量化交易实战-08使用get_fundamentals查询财务指标

这些列对应的就是“财务指标数据”种的列的列名:

20210602230120 - Python量化交易实战-08使用get_fundamentals查询财务指标

列的含义:

  • id:网站的数据索引
  • code:股票代码
  • pubDate:公司发布财报日期
  • statDate:财报统计的季度的最后一天, 比如2015-03-31, 2015-06-30
  • eps:每股收益EPS(元)。每股收益=净利润/期末股本;你可以理解为:假如公司股份化为了1000份,净利润除以1000就是“eps”,这个值越大越好,它代表公司的盈利能力。
  • operating_profit:经营活动净收益(元),它等于:营业总收入-营业总成本
  • roe:净资产收益率ROE(%),它等于:归属于母公司股东的净利润*2/(期初归属于母公司股东的净资产+期末归属于母公司股东的净资产)。它相当于一个公司资产的产出,比如2个白酒企业,他们都有自己的场子,规模差不多。但是公司1对应的产能销量是1000万,公司2是100万。那它们谁的roe高?肯定公司1高,因为同样的资产,它获得的利润越多。它体现的是净资产的使用能力。
  • inc_net_profit_year_on_year:净利润同比增长率(%)。它等于:(当期的净利润-上月(上年)当期的净利润)/上月(上年)当期的净利润绝对值=净利润同比增长率。通俗的讲,它就是今年的利润比去年的利润增长了多少。比如说,去年的利润是100万,今年的利润是200万元,那增长多少呢?就是(200万-100万)/100万=100%,也就是百分百的同比增长率

所以比较需要的4个指标:

  1. eps
  2. operating_profit
  3. roe
  4. inc_net_profit_year_on_year

我们怎么利用这4个指标来选股呢?

3.1利用财务指标进行选股

对结果筛选,通过4个指标严格判断。并且存起来。

#基于盈利指标选股1. eps 2. operating_profit 3. roe 4. inc_net_profit_year_on_year
df = df[(df['eps']>0) & (df['operating_profit']>214406045.5) & (df['roe']>11) & (df['inc_net_profit_year_on_year']>10)] 
print(df)
df.to_csv(r'C:\Users\huang\Desktop\XuhssQuant\Data\Finance\finace2020Filter.csv')

运行结果可以看到,有613支股票符合我们的要求:

20210602232625 - Python量化交易实战-08使用get_fundamentals查询财务指标

转载请注明:xuhss » Python量化交易实战-08使用get_fundamentals查询财务指标

喜欢 (7)

您必须 登录 才能发表评论!