python求因子4和7的个数_Python与量化多因子——基本面因子

1. 前言

在前面第一节,我们给了一个简单的因子分类,其实我们甚至可以给一个更为粗糙的分类,基本面因子和价量因子。像成长,盈利,估值这些都可以划到基本面因子里面去,这一节,我们就讲讲基本面因子的计算。

2. 认识财报数据

一般来说,基本面因子的数据离不开三大财务报表。对于量化来说,我们需要的是记录了财报发布,修正的那三张表,这样能避免未来数据的引入。

所以这三张表里一般有两个日期,财报的发布日和对应的会计日期,同时我们还需要注意每条记录是单季度的还是累积的。

因为存在更新或者修正的情况,财报数据里,经常出现的一种情况就是,同一个会计日期,可能会对应多个发布日期,例如上市公司在发布今年年报时,也会披露或者更新去年的年报数据,我们需要注意的一点就是在当前时点可以使用最新的数据,但是不要引入未来数据。

对于因子的计算来说,为了避免未来数据的问题,有两种方案:当上式公司的财报发布,更新对应股票的因子

会计日期结束,统一更新所有股票的因子数据

第一种方案,可以保证我们在当时的时点能拿到最新的因子数据,但是却面临着不同股票之间在这一日期存在不可比的问题,第二种方案又会造成信息的滞后。像Barra CNE5计算的基本面因子采用的是第二种方案,但最新的模型改成了第一种。究竟哪种方案好,需要去测算。

3. TTM函数

提到基本面因子,就不得不说TTM(Trailing Twelve Months),这也是经常在券商研报里发的因子库列表当中看到,意思就是滚动12个月,或者说滚动四个季度。例如我们常说的滚动PE,意思就是当前的市值/过去4个季度的净利润。

这里不讨论为什么要引入TTM。现在有的数据商会提供一些财务衍生指标的报表,这里面会包含一部分TTM的数据,但是,可能并不全,这时候我们得自己计算TTM的数据了,那么问题来了,怎么计算?

我们用Q1(t),S1(t),CQ3(t),A(t)分布表示上市公司的一季报,半年报,三季报(累积),年报。那么:如果当前为Q1(t),则Q1(t,ttm) = A(t-1) - Q1(t-1) + Q1(t)

如果当前为S1(t),则S1(t,ttm) = A(t-1) - S1(t-1) + S1(t)

如果当前为CQ3(t),则CQ3(t,ttm) = A(t-1) - CQ3(t-1) + CQ3(t)

如果当前为A(t),则A(t,ttm) = A(t)

基于上面的公式,我们可以快速的给出TTM函数的Python实现,当然,考虑到全历史,全样本的计算,我们可能还要考虑一些加速的方案。

4. 总结

这里主要介绍了财报数据的使用和TTM函数,结合上一节提供的模板,相信读者们可以很快的开发自己的基本面因子。给点提示,基本面因子经常要用到Pandas的DataFrame里面的sort,drop_duplicates,groupby这些函数,具体细节私信交流。写了这么多,给点赏赐吧客官!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值