周五的文章根据最近三年净利润增速选股的公式,有朋友指出一季报公布之后选股会有问题。 后来我再去研究了一下通达信 FINANCE(37) 函数,也实验了一下,发现之前的公式确实有问题。 主要问题在 FINANCE(37) 函数上。我开始对这个函数的理解有点错误,FINANCE(37) 应该是用来判断最近的一期财报是几季报,而不是让你指定取值是取几季报。 所以周五文章里面的公式相当于指定了最近一期财报是年报,一季报公布之后就不符合这个条件了,也就选不出符合条件的股票。大家可以设置 FINANCE(37)=2 试一下就会发现选不出结果。 后面我重新找了一下,其实直接用 FINONE(ID,Y,MMDD) 函数就可以实现连续三年净利润增速选股。 FINONE 函数解释如下: FINONE(ID, Y, MMDD) ID为数据编号,Y和MMDD表示年和月日 如果Y和MMDD都为0,表示最新的财报; 如果Y为0,MMDD为小于300的数字,表示最近一期向前推MMDD期的数据,如果是331,630,930,1231这些,表示最近一期的对应季报的数据; 如果MMDD为0,Y为一数字,表示最近一期向前推Y年的同期数据; 季报分界点为:0331,0630,0930,1231 下面,上公式: ============================================== AA := FINONE(184,Y,1231) > 50; {Y年年报净利润增速大于50%} BB := FINONE(184,Y-1,1231) > 50; {Y-1年年报净利润增速大于50%} CC := FINONE(184,Y-2,1231) > 50; {Y-2年年报净利润增速大于50%} AA AND BB AND CC; {同时符合AA、BB、CC三个条件} ============================================== 其中,Y 是作为参数传递进去的意思是年份,今年是2020年,Y 参数缺省就可以设置为 2019。 这里需要注意的是,每过一年,这个公式的缺省值都需要修改一下,比如到2021年的时候缺省值就应该修改为2020,或者在选股界面选股时直接修改计算参数值来指定年份(因为很多公司还没出19年年报,大家也可以在选股界面把参数设置成2018选股试试)。 大家应该还记得周五的文章我说过只按照增速来选,会有增速符合条件但是净利润为负的情况,所以这里可以把净利润大于0的条件也加上去。 也是使用 FINONE(ID,Y,MMDD) 函数,ID 编号为 95。 新的公式如下: ============================================== AA := FINONE(184,Y,1231) > 50; {Y年年报净利润增速大于50%} BB := FINONE(184,Y-1,1231) > 50; {Y-1年年报净利润增速大于50%} CC := FINONE(184,Y-2,1231) > 50 AND FINONE(95,Y-2,1231) > 0; {Y-2年年报净利润增速大于50% 且 Y-2年年报净利润大于0} AA AND BB AND CC; {同时符合AA、BB、CC三个条件} ============================================== 通达信公式编辑界面如下 参数Y,最小 2000,最大 3000,缺省 2019 这里,净利润大于0的条件只需要在CC条件加,不需要每个都加,为什么大家可以自己想一想。 还有,净利润增速大于50%和净利润大于0这个值是可以自己修改的,增速不一定限定50%,净利润也可以大于一千万等,看大家自己喜好了。 最后,和大家说一下,我一个人在编写或者解释系统自带公式的时候难免有疏漏,大家如果发现哪里有问题,欢迎给我留言指出问题。然后公式有疑问的地方也可以共同探讨,一起学习! 附注:财务指标ID值,查阅通达信官网用户帮助《红宝书24-专业财务函数》 |
|