python爬虫爬取股票的北上资金持仓数据

作者:??斜月???? 时间:2023-11-18 20:44:56 

前言

前面已经讲述了如何获取股票的k线数据,今天我们来分析一下股票的资金流入情况,股票的上涨和下跌都是由资金推动的,这其中的北上资金就是一个风向标,今天就抓取一下北上资金对股票的逐天持仓变动和资金变动。

数据分析

照例先贴一下数据的访问地址:

# 以海尔智家为例贴一下数据的页面连接地址,再次吐槽一下拼音前缀
https://data.eastmoney.com/hsgtcg/StockHdStatistics/600690.html

下图就是北上资金逐天的访问数据页面,我们要抓取的是持股数量、持股市值、持股百分比和市值变化信息。

python爬虫爬取股票的北上资金持仓数据

通过浏览器后台的接口可以看到这样一个接口数据: 

python爬虫爬取股票的北上资金持仓数据

 这个接口的参数为:

python爬虫爬取股票的北上资金持仓数据

# 请求地址数据,这里的参数和请求的不太一样,因为其它的参数我试过了,可以忽略掉,以下是必要参数
https://datacenter-web.eastmoney.com/api/data/v1/get?
# 排序字段和排序的类型, -1 为倒序排列
sortColumns=TRADE_DATE
&sortTypes=-1
# 后两个参数比较简单,就是分页参数而已
&pageSize=50
&pageNumber=1
# 报告类型,固定为北上资金数据
&reportName=RPT_MUTUAL_HOLDSTOCKNORTH_STA
# 返回的数据列,默认返回所有
&columns=ALL
# 获取数据参数为股票代码和交易日期
&filter=(SECURITY_CODE="600690")(TRADE_DATE>='2021-10-29')

数据抓取

我们已经解析了获取资金的参数,以下就是使用 python 来获取数据,并进行展示。我们依旧使用 requets 来获取数据。

我们需要先组装请求的参数,这里的 fliter 只传入了代码,日期选择了固定,这个个人感觉是查询的 ES ,不然不会这么传入参数,建议做个参数转换吧,这样直传不太好。 

python爬虫爬取股票的北上资金持仓数据

数据查询返回的结果是json 格式,进行了解析后我们采用 prettyTable 打印结果。 

python爬虫爬取股票的北上资金持仓数据

由于获取的数据没有经过格式化,显示的位数比较长,所以对持股数和市值之类的数据进行了格式化展示,

代码如下:

# 如果是亿级的就格式化为亿,万的话格式化为万
def cal_num(num):
   if abs(num / 100000000) > 0:
       return str(round(num / 100000000, 3)) + "亿"
   else:
       return str(round(num / 10000, 3)) + "万"

最终我们得到的结果如下: 

python爬虫爬取股票的北上资金持仓数据

建立模型

我们已经获取到了股票的北上资金的情况,我们建立一个简单的模型筛选一下:

  • 1 选取最近一个月内北上资金连续加仓的股票,加仓幅度超过流通股份的1%。

在这个模型中,我们可以根据最近一个月每天的持仓百分比建立线性规划模型,y = kx + b 来计算斜率和截距,但是这个觉得有点儿复杂了,我们可以简化一下,就偷个懒计算当天的持仓量与一个月前的持仓比例差值即可,

具体代码如下:

# rate_list 为持股比例的集合,将 ratio 添加进集合中,这里为什么是22呢,
# 一般情况下一个月有22个交易日,所以减去22就是一个月前的持仓比例
def cal_model(rate_list):
   if len(rate_list) >= 22:
       cur_node = rate_list[0]
       pre_node = rate_list[22]
       return cur_node - pre_node
   return -100

来源:https://juejin.cn/post/7059030392308760583

标签:python,爬取,股票,资金,数据
0
投稿

猜你喜欢

  • BootStrap创建响应式导航条实例代码

    2023-08-09 02:09:55
  • Go语言正则表达式示例

    2023-04-13 19:41:34
  • python字典多条件排序方法实例

    2023-06-22 03:43:07
  • 去除新云CMS文章列表前的小圆点

    2008-09-27 13:36:00
  • Java正则表达式的基本用法和实例大全

    2023-04-14 06:17:22
  • python 基于Apscheduler实现定时任务

    2022-03-29 00:53:32
  • Python3 MySQL 数据库连接的使用示例

    2024-01-21 18:15:40
  • Python实现免费音乐下载器

    2023-12-26 23:51:16
  • SQLServer中bigint转int带符号时报错问题解决方法

    2024-01-16 00:13:01
  • pytest conftest.py文件的使用讲解

    2023-10-16 14:22:44
  • JS中怎样判断undefined(比较不错的方法)

    2024-04-19 09:54:20
  • TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)

    2022-11-08 00:54:03
  • PostgreSQL COALESCE使用方法代码解析

    2024-01-28 19:55:01
  • goland中文件头自动注释的操作

    2024-05-05 09:32:50
  • 网页设计标准尺寸参考

    2007-12-29 20:42:00
  • mysql的日期和时间函数

    2024-01-22 12:46:18
  • 如何运行Python程序的方法

    2023-01-13 07:56:03
  • ASP进阶学习之认识数学函数

    2007-10-08 13:15:00
  • python求列表对应元素的乘积和的实现

    2023-05-13 15:10:24
  • 使用 Django Highcharts 实现数据可视化过程解析

    2022-12-27 19:18:51
  • asp之家 网络编程 m.aspxhome.com