博客
关于我
我用wxPython搭建GUI量化系统之Pandas特性的财务选股工具
阅读量:512 次
发布时间:2019-03-07

本文共 1237 字,大约阅读时间需要 4 分钟。

实现过程概述

为了构建一个定制化的股票筛选工具,我们首先收集了A股市场的股票基本面数据。使用tushare库的两个接口,stock_basic和daily_basic,我们分别获取了股票的基础信息和当天的市场数据。这两个接口提供的数据集各有特色:

  • stock_basic:包含股票名称、代码、上市日期以及所属行业等信息。
  • daily_basic:提供市盈率、市净率、股本大小等基本面指标。
  • 通过对这两个数据集的拼接,我们最终构建了一张涵盖所有股票的基本面数据表。虽然过程中遇到了一些数据不对齐的问题(如3851只股票的基础数据与3827只的日常数据存在差距,部分数据缺失等),但这些问题都得到了妥善处理,确保了最终数据的完整性和准确性。

    数据处理与解决方案

    在数据处理阶段,我们采用Pandas的高效数据操作特性,对数据进行了以下几方面的优化:

  • 数据对齐:将两个数据集基于股票代码进行了合并,确保每一只股票的信息在两套数据中都能得到准确对应。

  • 缺失值处理:对缺失的数据进行了填补。例如,通过识别异常点或利用数据填充方法,确保尽可能减少数据缺失的影响。

  • 数据清洗:对异常值和不合理数据进行了清理,例如对换手率等敏感指标进行了范围检查,保证其数值的合理性。

  • 尽管如此,由于数据来源的限制,仍有一些问题需要注意:

    • 数据不一致性:部分股票的数据无法完全匹配,需要特别注意这些特殊情况。
    • 数据完整性:部分指标数据中存在缺失值,这可能对筛选条件产生影响。

    条件筛选的实现

    在选股条件的实现上,我们充分利用了Pandas的条件式操作能力,将筛选逻辑嵌入到用户界面中。以下是几个关键步骤:

  • 用户输入条件:通过GUI界面,用户可以自定义筛选标准,如换手率、量比、市盈率等。这些条件会被转换为Pandas的条件表达式。

  • 条件应用:当用户点击"开始选股"按钮时,Pandas会根据输入的条件对数据集进行筛选,生成符合条件的股票列表。

  • 结果保存:选择符合条件的股票后,可以通过"开始保存"按钮将结果保存为CSV格式,便于后续分析或导入其他工具使用。

  • 为了提升用户体验,我们还设置了复位功能。用户在对筛选条件进行调整时,可以通过点击"开始复位"按钮,恢复到初始筛选状态,这大大简化了调试和条件重新选择的流程。

    最终效果展示

    运行该工具后,用户将看到一个直观的表格,列出了所有股票的基本面信息,中间可能会有一些缺失值需要特别注意。用户可以通过选择不同的筛选条件,动态调整筛选范围。

    例如:

  • 根据换手率筛选,选出换手率大于5%的股票。
  • 对换手率和量比两个条件同时筛选,选出同时满足这两个指标较高的股票。
  • 所有操作都可以通过简单的点击按钮实现,结果也能随时保存,以便进一步分析或参与投资决策。

    作者简介

    我是Python股票量化交易领域的实践者,同时也是多本技术书籍的作者之一。无论是写作还是技术分享,我都致力于把复杂的知识点简化为易于理解的内容。希望这篇文章能为您的股票选股工具开发之旅提供有价值的帮助。

    转载地址:http://gmajz.baihongyu.com/

    你可能感兴趣的文章
    Nginx配置负载均衡到后台网关集群
    查看>>
    Nginx配置限流,技能拉满!
    查看>>
    Nginx配置静态代理/静态资源映射时root与alias的区别,带前缀映射用alias
    查看>>
    Nginx面试三连问:Nginx如何工作?负载均衡策略有哪些?如何限流?
    查看>>
    Nginx:NginxConfig可视化配置工具安装
    查看>>
    ngModelController
    查看>>
    ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
    查看>>
    ngrok内网穿透可以实现资源共享吗?快解析更加简洁
    查看>>
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>
    NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
    查看>>
    NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
    查看>>