搭建系统|不用数据库选股也行!利用Pandas特性的GUI版基本面选股工具

    技术2022-07-12  85

    前言

    前几期我们搭建了自定义的量化行情/回测框架:

    搭建系统|听说backtrader很不错!把它集成到本地GUI回测平台中!

    搭建系统|在线改策略很便捷!试一试本地GUI回测平台动态改策略

    搭建系统|多维度下不同股票|周期|除权|复权走势对比界面

    搭建系统|行情软件可没有!多股票投资组合用的GUI分析界面

    搭建系统|想把聚宽本地化吗?一起来创建GUI版的自定义量化回测平台

    搭建系统|wxPython布局管理实现多只股票走势对比界面

    搭建系统|比Matplotlib更好用的pyecharts打造GUI股票行情分析界面

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

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

    实现过程概述

    首先是获取数据,我们要得到A股市场的全部股票的基本面指标清单,这里我们用了tushare的两个接口组合而成,一个是pro.stock_basic(),另一个是pro.daily_basic()。我们分别看下这两个接口的到的数据内容:

    说明下,换手率中股本的统计口径表示的是自由流通股,实战中只有自由流通股统计出来的换手率才是真实的交易换手率。即使是已流通股的股东,他们要在二级市场上卖出股票也是要申报减持计划的。

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

    我们发现这么几个问题:

    2份股票数据的数量是不对应的(3851 VS 3827) 

    第2份股票数据在中间位置缺了若干只股票,缺失位置是散乱的 

    第1份股票也缺了2只股票(后面处理完我才发现的,一只300104 乐视退,一只是600614 *ST鹏起) 

    代码里面我们用pd.merge方法,以股票代码为轴,将2份表格对应的合并在一,形成第三幅图。

    关于选股的实现,我们采用的Pandas的矢量化特性,利用条件表达式对DataFrame格式的数据进行筛选,只不过这里我们把表达式外显为GUI上的控件而已。

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

    运行程序后,表格显示了A股市场全部股票的市盈率、股本大小等基本面数据。多说一句,中间挺多数据为NaN的,大家还是要注意一下。

    用条件表达式选股,选取换手率大于5%的股票,点击按钮【开始选股】

    用条件表达式选股,叠加选取量比大于5的股票,也就是说股票的换手率大于5%的同时量比也要大于5。点击按钮【开始选股】

    选出的股票我们要保存起来,点击按钮【开始保存】,这样就以csv格式保存到本地了。

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

    视频显示效果

    加入知识星球/读者交流群 可获取完整代码

    更多量化交易内容扫码加入星球!—————————————————元宵大师的量化交易书籍开售!京东、当当、天猫有售!加我QQ或者微信了解详情 微信关注:‘元宵大师带你用Python量化交易’
    Processed: 0.011, SQL: 9