我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具

时间:2024-04-12 15:16:47

前言

股票分析中选股是很重要的一个环节,对于大多数股民来说,除了根据股价走势来选股之外,也会加入一些基本面选股的条件,比如换手率、量比、市盈率、市净率、市销率、股息率、总股本、流通股本、*流通股本、总市值、流通市值等等。

虽然通过数据库方式也是可以根据条件来选股的,不过掌握数据库的使用需要一定的基础和学习过程,如果还不会数据库的话,我们就来教大家构建一个GUI版基本面选股工具。

实现过程概述

首先是获取数据,我们要得到A股市场的全部股票的基本面指标清单,这里我们用了tushare的两个接口组合而成,一个是pro.stock_basic(),另一个是pro.daily_basic()。我们分别看下这两个接口的到的数据内容:
我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具
说明下,换手率中股本的统计口径表示的是*流通股,实战中只有*流通股统计出来的换手率才是真实的交易换手率。即使是已流通股的股东,他们要在二级市场上卖出股票也是要申报减持计划的。

一份是A股市场所有股票的名称、代码、上市日期、所属行业清单,一份是当天A股市场所有股票的市盈率、市净率、股本大小等基本面的数据,我们打算把它们以股票名称为轴合并为一份。

我们发现这么几个问题:

  • 2份股票数据的数量是不对应的(3851 VS 3827)
  • 第2份股票数据在中间位置缺了若干只股票,缺失位置是散乱的
  • 第1份股票也缺了2只股票(后面处理完我才发现的,一只300104 乐视退,一只是600614 *ST鹏起)

代码里面我们用pd.merge方法,以股票代码为轴,将2份表格对应的合并在一,形成第三幅图。
我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具
关于选股的实现,我们采用的Pandas的矢量化特性,利用条件表达式对DataFrame格式的数据进行筛选,只不过这里我们把表达式外显为GUI上的控件而已。

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

  1. 运行程序后,表格显示了A股市场全部股票的市盈率、股本大小等基本面数据。多说一句,中间挺多数据为NaN的,大家还是要注意一下。
    我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具
  2. 用条件表达式选股,选取换手率大于5%的股票,点击按钮【开始选股】
    我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具
  3. 用条件表达式选股,叠加选取量比大于5的股票,也就是说股票的换手率大于5%的同时量比也要大于5。点击按钮【开始选股】
    我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具
  4. 选出的股票我们要保存起来,点击按钮【开始保存】,这样就以csv格式保存到本地了。
    我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具

如果选到一半想换选股条件重新选股,这时可以点击按钮【开始复位】,这样就恢复到初始的状态了

作者简介:
1-畅销书《Python股票量化交易从入门到实践》作者
我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具
2-日常运营公众号《元宵大师带你用Python量化交易》

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