我用wxPython搭建GUI量化系统之财务选股工具添加日历和排序

前言

上一期我们构建了一个GUI版上市公司财务数据选股工具。通过这个工具,我们可以根据换手率、量比、市盈率、市净率、市销率、股息率、总股本、流通股本、自由流通股本、总市值、流通市值等指标来筛选更有前景的股票。

上一期我们提示大家说表格中间有挺多NaN数据,这里说明下是因为上市公司亏损所导致某些选项数值的缺失。

这一期我们要更新的内容是和一个经典量化策略的应用场景所相关的。这个量化策略就是小市值轮动策略。

实现过程概述

在小市值轮动策略中,我们是以固定周期滚动地去持有市值排名最小的若干只股票,比如这个月初我们买入当前市值排名最小的10只股票,持有到了下个月初的时候,我们换仓为此时市值排名最小的10只股票,以此类推。

小市值策略之所以仍然有效,其实背后是有一定的逻辑在的。比如说小市值企业的成长性更好,试想一家30亿市值的企业成长为一家300亿的企业,其难度明显要比300亿的企业成长为3000亿要小得多。

不过小市值策略仍然要结合上市公司的业绩支撑,毕竟现在随着IPO的开闸放水,原本稀缺的上市公司的壳资源逐渐变得不值钱了,所以业绩亏损的小市值公司的下限还在下降。

所以说这里财务数据选股除了要有多指标结合之外,排序功能也十分的重要。这里我们就先添加一个升序和降序的排序功能。

实现方法也很简单,利用了Pandas的sort_values()方法。

if self.sort_values_cmbo.GetStringSelection() == u"降序":
    self.filte_result.sort_values(by=key, axis='index', ascending=False, inplace=True, na_position='last')
elif self.sort_values_cmbo.GetStringSelection() == u"升序":
    self.filte_result.sort_values(by=key, axis='index', ascending=True, inplace=True, na_position='last')
else:
    pass

接下来我们展示下排序功能的效果和操作的方法。

  1. 用条件表达式选股,选取换手率大于10%的股票,点击按钮【开始选股】
  2. 选择升序排列,点击按钮【开始选股】,会在之前的选股结果之上进行排序。
  3. 选择降序排列,点击按钮【开始选股】,会在之前的选股结果之上进行排序。
  4. 选取换手率大于10%并且流通市值大于500000的股票,这里我们选择升序排列,点击按钮【开始选股】。可以发现依据此规则筛选出来的市值最小的股票也是大于500000的。

另外一个功能是可以调取不同交易日期下的A股市场全部上市公司的财务数据,而不仅局限于今天。

如果碰到非交易日的时候怎么办呢?这里会有提示对话框弹出!

需要说明的,由于点击【开始选股】时,是基于上次的筛选结果之上的叠加选股,所以当我们需要更换交易日时,需要点击【复位选股】按钮。

关于完整的代码,大家可以关注我的微信公众号【元宵大师带你用Python量化交易】,然后点击【联系我们】加入【知识星球】获取!

作者简介:

1-畅销书《Python股票量化交易从入门到实践》作者
在这里插入图片描述
2-日常运营公众号《元宵大师带你用Python量化交易》

3-CSDN视频课程《Python金融数据分析入门到实战》讲师

在这里插入图片描述

你可能感兴趣的:(我用wxPython搭建GUI量化系统之财务选股工具添加日历和排序)