博客
关于我
我用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/

    你可能感兴趣的文章
    Nmap渗透测试指南之指纹识别与探测、伺机而动
    查看>>
    Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    NMAP网络扫描工具的安装与使用
    查看>>
    NMF(非负矩阵分解)
    查看>>
    nmon_x86_64_centos7工具如何使用
    查看>>
    NN&DL4.1 Deep L-layer neural network简介
    查看>>
    NN&DL4.3 Getting your matrix dimensions right
    查看>>
    NN&DL4.7 Parameters vs Hyperparameters
    查看>>
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    nnU-Net 终极指南
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    NO 157 去掉禅道访问地址中的zentao
    查看>>
    no available service ‘default‘ found, please make sure registry config corre seata
    查看>>
    No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    查看>>
    no connection could be made because the target machine actively refused it.问题解决
    查看>>
    No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
    查看>>
    No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
    查看>>
    No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
    查看>>
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>