Java爬虫-股票k线分析实践

可以荐嘉客,奈何阻重深。

1 前言

在前文中已经讲述了java 爬虫获取股票的基本信息,不过这些数据都是静态数据,在本文中将从k线中按照时间周期的维度获取指标数据进行分析,在此基础之上深入分析和解析股票的动态数据,建立数据模型来需要那些低估的标的。

2 数据来源分析

首先我们需要打开一个股票的详情页面,通过浏览器的控制台可以获取到 k 线数据的接口地址,通过分析我们可以知道请求参数的含义,具体如下所示:

ini 复制代码
# 股票详细页面
https://xueqiu.com/S/SZ002032
# 股票 k 线数据
https://stock.xueqiu.com/v5/stock/chart/kline.json?symbol=SZ002032&begin=1691505314056&period=week&type=before&count=-284&indicator=kline,pe,pb,ps,pcf,market_capital,agt,ggt,balance
# 请求参数
symbol=SZ002032 股票代码
begin=1691505314056 开始时间
period=week  查询周期
type=before 复权选择,前复权
count=-284  查询数据量
indicator=kline,pe,pb,ps,pcf,market_capital,agt,ggt,balance 统计指标
# 返回参数
timestamp 时间戳
open 开盘价
close 收盘价
high 最高价
low 最低价
chg 区间涨跌额
percent 涨跌百分比
turnoverrate 换手率
amount 成交量
pe 市盈率,每股股价/每股净利润,理解为盈利能力,数值越小盈利能力越强
pb 市净率,股票价格/每股净资产
ps 市销率, 股票价格/每股销售收入,
pcf 市现率,股票价格/每股现金流量 数值越小越好 

通过返回参数,可以得到指标有区间内开盘收盘最高价最低价数据,还有区间内的振幅、涨跌百分比、换手率,成交量,更重要的是还有区间内的 pe pb ps pcf 指标的展示,这对模型的建立以及分析提供了坚实的数据支撑。

3 数据获取

和之前抓取股票基本信息一样,需要调用雪球的接口来获取数据,在此处依旧需要在请求时添加 cookie ,否则抓取不到数据。具体的抓取代码如下图所示,由于雪球接口返回的数据都是数组格式,我们需要创建对象将数据进行抽取,转换,格式化最终进行展示。

在获取接口数据时,创建一个 LineDto 实体类,通过之前分析的 item 和 column 的对应关系,通过一个 build 方法通过建造者模式来创建每条 k 线数据的情况,如下图所示:

由于 k 线数据没有返回股票的流通市值,这里采用计算的方式来获取,通过成交金额和换手率计算得到,为了方便数据处理,将市值的单位换算成亿元。这里计算了时间戳的转换,将时间戳转换成为可读的时间字符串,其余的指标数据均为 BigDecimal 类型,无需处理。在构建完数据后,需要按照时间的数据将数据倒序排列,同时也可以输出 k 线的历史数据信息。

4 模型搭建

至于选择股票的模型搭建,作者选择的条件如下所示,综合了市值、市盈率、市现率等信息,并且根据最近三周的涨幅表现来选择股票,创建模型,具体的代码如下所示:

bash 复制代码
# 模型选股条件
1 判断股票市值, 选择市值大于 50亿元,小于 300亿流动市值的股票
2 判断市盈率,小于 15 倍的 或者大于 50倍的排除
3 判断市现率,小于 25 即可,数据越大表示公司现金流压力较大
4 近三周涨幅连续递增,涨幅大于0,且小于10,买在起点

最终在控制台将会输出运行选股模型筛选出的股票代码结果。

4 总结

在本文中,首先使用爬虫的方法,从雪球获取股票的周 k 线数据,然后进行数据的清洗和转换,并且建立选择股票的模型,通过筛选机制,找到符合条件的股票代码。本文中所涉及的代码已经上传至 github, 欢迎大家点赞关注。项目 github 地址 springboot-auth

相关推荐
zihao_tom6 分钟前
Spring Boot 整合 Druid 并开启监控
java·spring boot·后端
小邓的技术笔记12 分钟前
开发实战:asp.net core + ef core 实现动态可扩展的分页查询方案
后端·asp.net
Pocker_Spades_A26 分钟前
Python快速入门专业版(五十六)——爬虫会话管理:Cookie与Session原理及实战(保持登录状态)
开发语言·爬虫·python
MX_935928 分钟前
SpringMVC静态资源访问、annotation-driven的使用原理及数据响应模式
java·后端·spring
无籽西瓜a44 分钟前
【西瓜带你学设计模式 | 第十二期 - 装饰器模式】装饰器模式 —— 动态叠加功能实现、优缺点与适用场景
java·后端·设计模式·软件工程·装饰器模式
南山乐只1 小时前
Java并发工具:synchronized演进,从JDK 1.6 锁升级到 JDK 24 重构
java·开发语言·后端·职场和发展
无籽西瓜a1 小时前
【西瓜带你学设计模式 | 第十三期 - 组合模式】组合模式 —— 树形结构统一处理实现、优缺点与适用场景
java·后端·设计模式·组合模式·软件工程
nbwenren13 小时前
Springboot中SLF4J详解
java·spring boot·后端
helx8214 小时前
SpringBoot中自定义Starter
java·spring boot·后端
rleS IONS14 小时前
SpringBoot获取bean的几种方式
java·spring boot·后端