使用get_fundamentals查询财务指标和估值指标(三)

一、什么是财务指标?

能记账的都归属到财务数据的部分。
以企业为例子,财务报表总共有三类。

  • 资产负债表

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

  • 利润表

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

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

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

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

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

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

这里有“单季度/年度财务数据”和“报告期财务数据”
这2者有什么区别?他们主要是数据获取的周期不同。

  • 单季度:第一、第二、第三、第四、季度分别的利润是多少。
  • 年度:以年为单位的利润是多少。
  • 报告期:第一季度,半年报,第三季度,一年报。半年报是覆盖16月,年报是112月。
get_fundamentals(query_object, date=None, statDate=None)

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

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

市值数据
它包含“总股本”“流通股本”、“总市值”、“流通市值”“市盈率”这些数据。
这是最基本的信息 表达的是这家公司的规模大小。以及估值情况。这些数据是我们再炒股平台可以看到的。 就是股票的基本信息。

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

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

我们怎么利用这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')

二、估值的方法有哪些?

1.1绝对估值法
它是一种定价模型,用于计算企业的内在价值。

比如说你可以根据公司近N年的现金流情况。借此去预测未来N年的现金流情况。所有的现金流数据都可以在年报上查询到。最后按照预测的数据进行折现,也就是算出未来5-10年的价格换算到今天是多少钱,来判断当前的股价是贵还是便宜。它是贵还是便宜会决定我是买还是不买。

因为一个公司如果越值钱,它的股价就越贵,但这个不是绝对的,对于投资者来说,我们就是要找到公司价值很不错。但是股价没有那么高的公司。这个就是赚钱的关键。利用公司本身的价值和它在市场上价值的差价赚钱。这也是巴菲特所说的“价值投资了”。但是在绝对估值方法里面有个很重要的指标叫做折现率。折现率可以理解为未来的钱转换为现在的钱对应的百分比。折现率取决于你对市场的判断,它是主管和客观揉合的结果。

折现率的值设定不同,会导致最后计算企业价值不同。

这个折现率是直接影响企业价值的。企业价值还和什么有关系呢?

将预估的企业价值除以股本数,得到的是预估的每股价值。通过预估的每股价值和市场上当前的每股市值,就可以指导我们选择股票的决策了,预估的价值相对市场价值越多,就值得买入。

绝对估值法比较通过折现率来判断,主观判断更多。我们很难利用这样的模型做出准确的判断。所以我们在市场上常用的方法叫做“相对估值法”。

1.2相对估值法
相对估值法主要有这些指标,PE市盈率、PB市净率、PS市销率。

为什么叫做相对估值,因为上述指标的高低取决于同行业其他公司的。它是通过比较来计算的。

在这里插入图片描述

二、获取估值数据

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

2.1基本指标
接着我们来了解一下它返回的数据。返回了

“股票代码”:带后缀.XSHE/.XSHG

“日期”:取数据的日期

“总股本”:公司已发行的普通股股份总数(包含A股,B股和H股的总股本)

“流通股本”,流通代表的是可以交易的。

“总市值”:总市值=当前收盘价*总股本

“流通市值”:流通市值 =当前收盘价* 流通股本

“换手率”:它表示股票转手买卖的频率。在牛市当中, 大家的换手率会很高,因为投机行为会增多,大家都希望通过不断的交易区获取收益。

2.2估值指标
市盈率(PE, TTM):滚动市盈率
市盈率(PE):静态市盈率
市净率(PB):每股股价与每股净资产的比率
市销率(PS, TTM):市销率为股票价格与每股销售收入之比,市销率越小,通常被认为投资价值越高。
市现率(PCF, 现金净流量TTM):每股市价为每股现金净流量的倍数

三、实战

import datetime
#获取股票估值数据
df = get_fundamentals(query(valuation), statDate=datetime.datetime.today())
print(df)

valuation 表示获取估值的指标。
在这里插入图片描述

可以看到:它会返回当天的所有企业的估值指标。

到这里我们就获得了所有股票市值和估值相关的数据。

为什么把市值和估值放在一起呢?因为估值数据等于市值数据除以利润、现金流等数据得到的。

在选股的时候,我们会把估值指标用来衡量股票的性价比。比如说,我们上节课选择了一些公司成长性盈利性不错的企业,这时假如我想买入几家公司的股票,我还会去看它的pe市盈率是多少,我会希望这家公司的pe相对较低,也就是估值相对低,这样未来的成长空间会更大。

所以如果我想把pe的条件也加入到筛选的代码里面,应该如何实现呢?

我们使用code作为匹配的标准,当它们的code(股票代码)一样,我就把pe_ratio这一列数据组合进去就好了。

#获取股票的财务指标数据
df = get_fundamentals(query(indicator), statDate='2020')

#基于盈利指标选股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)] 
df.index = df['code']

import datetime
#获取股票估值数据
df_valuation = get_fundamentals(query(valuation), statDate=datetime.datetime.today())
df_valuation.index = df_valuation['code']

df['pe_ratio'] = df_valuation['pe_ratio']
print(df)

你可以发现 简单的通过把“code”设置为索引,就可以简单的匹配字段的信息。有了合并的df后,我们又可以在他的基础上筛选了

#获取股票的财务指标数据
df = get_fundamentals(query(indicator), statDate='2020')

#基于盈利指标选股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)] 
df.index = df['code']

import datetime
#获取股票估值数据
df_valuation = get_fundamentals(query(valuation), statDate=datetime.datetime.today())
df_valuation.index = df_valuation['code']

df['pe_ratio'] = df_valuation['pe_ratio']
df = df[df['pe_ratio']<50]
print(df)

通过结果可以看到:晒出来的股票明显少了一些,并且这些企业的市盈率都是小于50的

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
## 讲师介绍: 近 5 年个人投资理财年化收益平均超 25%。如果你也想提升自己的睡后收入,轻松赚钱,那么这门课就是为你量身打造。课程基于一个完整真实的量化交易业务来讲授,并融入老师的理财经验以及使用编程技术辅助投资的技巧,让你面对各种复杂投资情况也能做到游刃有余。 ## 学习目标: 从不懂“理财”开始到实现自动交易,成为一个“技术流”理财高手 编程技术 + 核心量化策略 + 交易系统开发 + 讲师经验分享,学会用技术辅助理财 本课程从最基础的什么是量化开始讲起,即使对投资理财不了解同样可以学习,轻松入门无压力。 从如何获取数据开始,到实现实盘交易,课程对量化交易的每一步都进行细致讲解,为你铺开量化交易的每一个细节。 不仅仅只是教你学会使用某种工具,更会教给你量化交易的投资思想,让你面对各种情况都游刃有余。 ## 课程亮点: 设计适合自己并能适应市场的交易策略,才是量化交易的灵魂 课程亲手带你设计并实现两种交易策略,快速培养你的策略思维能力 1. 择时策略:通过这个策略学会如何利用均线,创建择时策略,优化股票买入卖出的时间点。2. 选股策略:掌握选股策略的核心逻辑,并基于收益率创建动量选股策略,并验证其有效性。 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 第方平台大而全,不易扩展,效率还差,信息安全也是大问题,打造自己的交易平台才是更优解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

季布,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值