净利润断层是指上市公司发布超预期的业绩公告后,股价出现跳空上涨的现象。 美国著名投资大师Mark Minervini在《股票魔法师》一书中曾详细描述了"净利润断层"实现在美股投资的应用。我们在《净利润断层:一种高效的选股策略》(20200521)中向投资者介绍了"净利润断层"策略在A股投资中的应用。净利润断层本身包含两大要素,要素之一是上市公司发布的业绩超预期,要素之二是上市公司股价在发布业绩后的首个交易日跳空上涨。跳空上涨的具体表现是当日最低价超越前一交易日的最高价,形成一个向上跳空的缺口,在K线图上形成类似断层的走势。由于这种缺口是由业绩超预期引发的,因此称之为净利润断层。
首先构造JOR因子,即净利润断层因子,根据市场对公告的反应来判断对于净利润公告是否存在净利润断层的现象,如果有,那么根据净利润断层的大小进行排序,进而筛选出净利润的断层最高的个股进行组合投资。
长期以来,净利润断层策略继续获得显著的超额收益,年化收益率超20%。在《净利润断层:一种高效的选股策略》中,我们向投资者介绍了1种构建净利润断层组合的方法,即------构建组合时选取净利润断层标的数量排名靠前的行业作为入选行业,对每一入选行业,选取该行业全部净利润断层个股标的;调仓日方面,仅选择一季报、半年报和三季报这三个财报季,即每年的4月30日、8月31日和10月31日作为调仓日。在此方法下,我们构建了2个净利润断层策略,即"前三行业策略"和"前五行业策略"。自2009年5月至2020年10月,以上两个策略年复合收益率均超过20%,超过同期万得全A的7.8%的收益率水平。
在每年的财务年报截止日期的随后首个交易日收盘后
上述代码在进行一种基于 JOR (Justified Optimism Rate) 的股票选择。JOR 是一种评估公司业绩的指标,如果 JOR 大于0,表示公司的业绩超过了市场的预期。该算法的目标是找出那些连续多个报告期 JOR 大于0的股票。
设定一个开始日期和结束日期,根据这个日期范围获取股票数据。
如果事件类型是 "assistant.created",则只使用最晚的报告期。
从 Jindata 读取器获取数据,查询在设定日期范围内的数据,将 "发布日期" 设为索引。
将 "报告期" 列转化为日期格式。
创建一个空的数据框 "prin_df"。
遍历每一个报告期,找出在这个报告期及其之前的 params.连续业绩超预期次数 - 1 个报告期中 JOR 大于0的股票。
如果找不到足够数量的报告期,则抛出错误。
从查询出的数据中筛选出在这个报告期及其之前的 params.连续业绩超预期次数 - 1 个报告期中 JOR 大于0的股票。
判断是否有符合条件的股票,如果没有则跳过这个报告期。
对于符合条件的股票,将其放入 "prin_period_df" 中。
在当前报告期中筛选出这些股票,并删除已经处理过的列。
这段代码的目标是通过分析公司的连续业绩超预期情况,找出那些连续多个报告期业绩超预期的股票,为投资者提供投资参考。
连续业绩超预期次数