前言

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

搭建系统|升级基于财务数据的选股工具!从清单中剔除ST股和次新股

搭建系统|“财务数据选股工具”如何与“多维度股票行情分析工具”完成无缝切换

搭建系统|升级基于财务数据的选股工具!添加上日历和排序功能会更好用

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

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

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

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

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

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

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

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

前几期我们搭建的基本面选股小工具是用了tushare的两个接口组合而成,一个是pro.stock_basic(),另一个是pro.daily_basic()。

我一直强调炒股软件应该是每个人用的都不一样,即使是通用的行情软件,每个人的选择也都不同,有的喜欢同花顺、有的喜欢通达信,看行情时图表的组合也都不一样。

所以,我分享的选股小工具,是提供给大家一个思路,而不是让大家都一成不变的去使用。

本期我们要介绍的是如何更换财务数据源,让小工具为大家所用。

实现过程概述

首先,本次代码的更改是基于price_and_pick_upv1.py(公众号对应介绍)这个文件开展的,大家可以利用Pycharm的代码比较功能查看更改的地方。

此处,我们把PickFrame类中涉及到财务数据部分给提取出来了,用单独的类封装,比如Tspro_Backend类,其中包含了财务指标的种类self.tran_col、条件选股类别self.filter,还有财务数据表的处理方法datafame_join()。

然后以组合方式添加到PickFrame类中。

# 组合加入tushare数据

self.ts_data = Tspro_Backend()

self.filter = self.ts_data.filterself.tran_col = self.ts_data.tran_col
self.datafame_join = self.ts_data.datafame_join

于是我们就能够独立地更换下财务数据。

我们选取tushare无需积分的org版本的get_stock_basics、get_report_data接口结合pro的pro.stock_basic(该接口是必须的,以它为A股市场的股票名称和代码的基准)来制作财务数据表。

get_stock_basics包含的指标有:

  • code,代码

  • name,名称

  • industry,所属行业

  • area,地区

  • pe,市盈率

  • outstanding,流通股本(亿)

  • totals,总股本(亿)

  • totalAssets,总资产(万)

  • liquidAssets,流动资产

  • fixedAssets,固定资产

  • reserved,公积金

  • reservedPerShare,每股公积金

  • esp,每股收益

  • bvps,每股净资

  • pb,市净率

  • timeToMarket,上市日期

  • undp,未分利润

  • perundp,每股未分配

  • rev,收入同比(%)

  • profit,利润同比(%)

  • gpr,毛利率(%)

  • npr,净利润率(%)

  • holders,股东人数

get_report_data包含的指标有(这个接口是按年度、季度获取业绩报表数据。数据获取需要一定的时间。需要输入年度和季度,要注意最新的报表发布时间):

  • code,代码

  • name,名称

  • esp,每股收益

  • eps_yoy,每股收益同比(%)

  • bvps,每股净资产

  • roe,净资产收益率(%)

  • epcf,每股现金流量(元)

  • net_profits,净利润(万元)

  • profits_yoy,净利润同比(%)

  • distrib,分配方案

  • report_date,发布日期

我们会发现这几个接口中很多的类别是重复的,而且名称还不一样。这里我们用的是merge()方法,知识星球中有一个相应的数据处理场景可以参考。

我们发现有些列是重复的,因此在合并的时候要删除重复列。

比如区域和行业,两个表格的列名是相同的,在merge()合并的时候给它加了后缀,所以找不到预定义的名称。

比如上市日期和代码,两个表格的列名不相同,但内容相同,在merge()合并的时候会出现两列。

把有问题的列处理完成后,发现表格的行存在重复的股票。

在datafame_join方法中,我们连续使用了两次merge(),pd.merge(df_stbasic, df_dybasic,……)的结果是这样的,完全正确。

但是合并上这个表格(df_rpbasic)后就会出现行重复。

一种比较简单粗暴的方法是使用drop_duplicates去掉name列重复的行,并保留重复出现的行中第一次出现的行。

建立了自己的财务数据表格后,剩下的条件判断机制并不需要更改。所以,大家可以把各种平时分析的数据,比如盈利能力、运营能力等等合并到表格中来。

往期视频效果 

加入知识星球 可获取完整代码

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

搭建系统|说好了个性化的选股工具!教你定制自己的选股财务数据表?相关推荐

  1. Zabbix5.0前端个性化设置,手把手教你定制Logo

    本文介绍在Zabbix5.0中如何通过修改Zabbix前端文件icon-sprite.svg来实现自定义Logo,参与感更强. 软件名称 软件版本 说明 Zabbix Server 5.0.5 已完成 ...

  2. 搭建系统|升级选股工具,多板块个股同时提取!个股行情走势存入数据库

    前言 股票分析中选股是很重要的一个环节,特别是在市场走势普遍向好的环境下,选股比择时更为重要,原因很简单,就是资金的使用效率要最大化.比如同样的资金在同样的持股时间下,你的股票只涨了10%,大盘涨幅3 ...

  3. 搭建系统|升级选股工具,使用同花顺F10查看上市公司基本概况!

    前言 股票分析中选股是很重要的一个环节,特别是在市场走势普遍向好的环境下,选股比择时更为重要,原因很简单,就是资金的使用效率要最大化.比如同样的资金在同样的持股时间下,你的股票只涨了10%,大盘涨幅3 ...

  4. 搭建系统|为何我坚持要用Python搭建属于自己的股票量化交易系统

    前言 前几期我们搭建了自定义的量化行情/选股/回测框架: 搭建系统|说好了个性化的选股工具!教你定制自己的选股财务数据表? 搭建系统|升级基于财务数据的选股工具!从清单中剔除ST股和次新股 搭建系统| ...

  5. 搭建系统|量化小工具升级!爬虫收集上市公司的公告,这样查阅才高效!

    前言 "搭建系统"专栏系列前期一直以"选股"."回测"."行情"这三个主线展开的进程再不断地迭代开发工具. 我一直强调要 ...

  6. 我用wxPython搭建GUI量化系统之财务选股工具剔除ST股和次新股

    前言 最近交易所公布了上证指数改编方案,其中有两条是和本篇文章相关的. 第一条是围绕ST个股改编.当上市公司变更为ST后一个月将从指数样板中剔除. 第二条围绕新股改编.上证指数新上市的日均市值前十的证 ...

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

    前言 前几期我们搭建了自定义的量化行情/回测框架: 搭建系统|听说backtrader很不错!把它集成到本地GUI回测平台中! 搭建系统|在线改策略很便捷!试一试本地GUI回测平台动态改策略 搭建系统 ...

  8. 搭建系统|升级基于财务数据的选股工具!从清单中剔除ST股和次新股

    前言 前几期我们搭建了自定义的量化行情/选股/回测框架: 搭建系统|"财务数据选股工具"如何与"多维度股票行情分析工具"完成无缝切换 搭建系统|升级基于财务数据 ...

  9. 搭建系统|“财务数据选股工具”如何与“多维度股票行情分析工具”完成无缝切换...

    前言 前几期我们搭建了自定义的量化行情/选股/回测框架: 搭建系统|升级基于财务数据的选股工具!添加上日历和排序功能会更好用 搭建系统|不用数据库选股也行!利用Pandas特性的GUI版基本面选股工具 ...

最新文章

  1. 微生物组—宏基因组分析专题培训开课啦!
  2. dubbo在idea下的使用创建 服务者,消费者 注册中心
  3. linux oracle bad elf,oracle11g安装到red hat6.2 64位系统报错:/lib/ld-linux.so.2: bad ELF interpreter...
  4. mysql数据库约束详解_MySQL数据库中的外键约束详解
  5. MySQL进阶11--DDL数据库定义语言--库创建/修改/删除--表的创建/修改/删除/复制
  6. WinForm高级控件实例--职员信息登记
  7. java的位桶是什么_Java关于桶排序的知识点总结
  8. 六星经典CSAPP-笔记(7)加载与链接(上)
  9. 产业互联网周报:中国移动:择时分拆业务上市;金山云CEO王育林辞职;谷歌负面缠身,数据中心爆炸又遭罚款...
  10. Android 11日历中添加账户跳转失败
  11. 数据特征分析 - 帕累托分析法
  12. 什么是“富人思维”?
  13. SQL server 2012 下载,安装,磁力链接,下载地址 2020.11.28
  14. java丐帮_java多线程学习笔记(五)
  15. MATLAB运用——计算三维物体的质心(水花号)
  16. 惊悚恐怖好片推荐(喜欢看片的朋友们看过来)
  17. tar gz bz bz2 等各种解压文件使用方法
  18. CART决策树算法Python实现 (人工智能导论作业)
  19. 液压机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. mysql 结构化数据库_【MySQL】——MySQL数据库和SQL结构化查询语言概述

热门文章

  1. 12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?
  2. vue批量生成二维码并压缩打包下载(图片带标题)
  3. Android异常篇 The option setting ‘android.disableResourceValidation=true‘ is experimental and unsupport
  4. 说不尽的卡尔曼 | 详解扩展卡尔曼滤波器
  5. 计算机专业的毕业生35,计算机专业毕业生求职简历
  6. 软件设计师 知识产权
  7. bootstrap-datepicker的使用
  8. pytorch综合多个弱分类器,投票机制,进行手写数字分类(boosting)
  9. python 3.9特性_Python3.9新鲜出炉,Python3.9有什么特性?
  10. 校园是一本生物书 之显微镜下的微世界