python爬虫爬取股票的北上资金持仓数据
作者:??斜月???? 发布时间:2023-11-18 20:44:56
标签:python,爬取,股票,资金,数据
前言
前面已经讲述了如何获取股票的k线数据,今天我们来分析一下股票的资金流入情况,股票的上涨和下跌都是由资金推动的,这其中的北上资金就是一个风向标,今天就抓取一下北上资金对股票的逐天持仓变动和资金变动。
数据分析
照例先贴一下数据的访问地址:
# 以海尔智家为例贴一下数据的页面连接地址,再次吐槽一下拼音前缀
https://data.eastmoney.com/hsgtcg/StockHdStatistics/600690.html
下图就是北上资金逐天的访问数据页面,我们要抓取的是持股数量、持股市值、持股百分比和市值变化信息。
通过浏览器后台的接口可以看到这样一个接口数据:
这个接口的参数为:
# 请求地址数据,这里的参数和请求的不太一样,因为其它的参数我试过了,可以忽略掉,以下是必要参数
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 ,不然不会这么传入参数,建议做个参数转换吧,这样直传不太好。
数据查询返回的结果是json
格式,进行了解析后我们采用 prettyTable
打印结果。
由于获取的数据没有经过格式化,显示的位数比较长,所以对持股数和市值之类的数据进行了格式化展示,
代码如下:
# 如果是亿级的就格式化为亿,万的话格式化为万
def cal_num(num):
if abs(num / 100000000) > 0:
return str(round(num / 100000000, 3)) + "亿"
else:
return str(round(num / 10000, 3)) + "万"
最终我们得到的结果如下:
建立模型
我们已经获取到了股票的北上资金的情况,我们建立一个简单的模型筛选一下:
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
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- Sybase于2008年11月4日在大中华区用户大会上宣布,联手神州数码金程(北京)科技有限公司对旗下领先的SQL Anywhere数据库进
- CacheControl 属性设置是否可缓存由 ASP 生成的输出。默认地,代理服务器不会保持缓存副本。语法:response.CacheC
- 写一个学生管理系统,最好用python。我都没学过python呢,只好开始临时抱佛脚,再到网上找找有没有例子看看,下面是我参照另一个博主写的
- 本文实例讲述了javascript实现多栏闭合展开式广告位菜单效果。分享给大家供大家参考。具体如下:从操作方式上来说,有似曾相识的感觉,有点
- 通过jsonp简单获取接口数据,对了,注意下jsonp方法会自动添加callback<template><div clas
- //采用对象冒充的方式实现js继承 function A(color) { this.Acolor = color; this.AshowC
- 1.1 方法归纳使用 + 直接将多列合并为一列(合并列较少);使用pandas.Series.str.cat方法,将多列合并为一列(合并列较
- HTTP-REFERER这个变量已经越来越不可靠了,完全就是可以伪造出来的东东。 以下是伪造方法: ASP: dim http&n
- 1、更新包管理 apt-get install update.2、安装 pip3 :apt-get install python3-pip3
- PySide是一个免费的软件,与PyQt不同之处在于使用了LGPL,允许PySide免费的开发商业软件。 PySide有15个模块。这些模块
- 使用索引优化索引是数据库优化最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题。数据准备use wor
- 页面中header部分一般位于最上端(有时根据需要也会位于某一侧,不管它在页面中的位置如何,在XHTML代码中它总是优于其它元素先加载),内
- 本文以实例分析了Python中asyncore模块的原理及用法,分享给大家供大家参考。具体分析如下:asyncore库是python的一个标
- 展示import tkinter if __name__ == '__main__': win =
- Microsoft? SQL Server? 2000 提供了两种主要机制来强制业务规则和数据完整性:约束和触发器。触发器是一种特殊类型的存
- 显示下级的方法elementui的节点过滤默认是不显示下级的代码在 :filter-node-method="filterNode
- 前言在pytorch中, 想删除tensor中的指定行列,原本以为有个函数或者直接把某一行赋值为[]就可以,结果发现没这么简单,因此用了一个
- 类与实例类与实例相互关联着:类是对象的定义,而实例是“真正的实物”,它存放了类中所定义的对象的具体信息。下面的示例展示了如何创建一个类:cl
- 打印在使用go写一些小程序时,我们没必要引入额外的包,直接使用fmt标准包打印即可:import "fmt"func m
- 一、前言点关注不迷路,持续输出Unity干货文章。嗨,大家好,我是新发。2014年的某一天,我因为牙疼去看了牙医,是个小诊所,牙医告诉我有个