根据股票列表获取资金流入情况

2024-08-25 12:28

本文主要是介绍根据股票列表获取资金流入情况,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

获取股票列表

作为演示,以创业板为例(数据不多),我们通过自编的 get_stock_list 方法获取股票列表:

import pandas
from bad import BigAData
from tqdm.notebook import tqdmplate = 'cyb'
bad = BigAData()
json = bad.get_stock_list(node=plate, num_per_page=100)
df = pandas.DataFrame(json)
df.to_excel('创业板股票20240825.xlsx', index=False)
print(df)

共有1349个,结果如下:
创业板股票列表

获取每个股票的资金流入情况

自定义一个 bad.py 文件(忍不住吐槽一下:大A数据,BigAData,真的够 bad 的)。

    # 获取资金流入趋势数据def get_money_flow(self, symbol, page=1, num=20, sort='opendate', asc=0):'''该函数通过股票代码从新浪财经API获取资金流入趋势数据。参数包括股票代码、页数、每页数量、排序字段及升序标志。以JSON格式返回数据或在请求失败时返回None。stock_code: 股票代码page: 页码num: 每页数据量sort: 排序字段asc: 排序方式return: 资金流入趋势数据'''url = f'https://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/MoneyFlow.ssl_qsfx_zjlrqs?page={page}&num={num}&sort={sort}&asc={asc}&daima={symbol}'# 获取数据resp = requests.get(url)# 返回数据if resp.status_code == 200:return resp.json()else:return None

根据列表获取股票的资金流入情况

按照给定的板块股票列表,获取每只股票的资金流入情况,默认每只采样20个交易日,这是一个比较漫长的过程,增加了进度条功能,需要添加库ipywidgets,可参考这个 stackoverflow 上的 帖子,代码如下:

data  = []
progress_bar = tqdm(total=df.shape[0])
for row in df.itertuples():json_arr = bad.get_money_flow(row.symbol)for item in json_arr:item['symbol'] = row.symbolitem['code'] = row.codeitem['name'] = row.namedata.extend(json_arr)progress_bar.update(1)
result = pandas.DataFrame(data)  
result.to_excel('bad_list_stocks_money_flow_20240825.xlsx')
print(result)

进度条
结果
从结果可以发现,有些新股不足20个交易日。

提高数据易读性

# 重新命名列名,并返回一个新的DataFrame(inplace=False)
new_columns={'symbol': '股票代码','code': '股票编号', 'name': '股票名称', 'opendate': '交易日', 'trade': '收盘价', 'changeratio': '涨跌幅', 'turnover':'换手率', 'netamount': '净流入(元)', 'ratioamount': '净流入率', 'r0_net': '主力净流入(元)', 'r0_ratio':'主力净流入率', 'r0x_ratio': '主力罗盘(°)', 'cate_ra': '行业净流入率'}
# 返回新的DataFrame
exp_result = result.rename(columns=new_columns, inplace=False)
print(exp_result)
exp_result.to_excel('创业板股票资金流入情况20240825.xlsx', index=False)

小结

以上举例了一个简单的应用,有时候因为网络和访问限制原因,会出现连接网站数据超过重试次数失败的情况,故增加了个进度条可以看看去到哪里出错。

这篇关于根据股票列表获取资金流入情况的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105549

相关文章

c++的初始化列表与const成员

初始化列表与const成员 const成员 使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。 不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。 在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。 初始化列表 在构造函数小括号后面,主要用于给

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

vcpkg子包路径批量获取

获取vcpkg 子包的路径,并拼接为set(CMAKE_PREFIX_PATH “拼接路径” ) import osdef find_directories_with_subdirs(root_dir):# 构建根目录下的 "packages" 文件夹路径root_packages_dir = os.path.join(root_dir, "packages")# 如果 "packages"

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

如何保证android程序进程不到万不得已的情况下,不会被结束

最近,做一个调用系统自带相机的那么一个功能,遇到的坑,在此记录一下。 设备:红米note4 问题起因 因为自定义的相机,很难满足客户的所有需要,比如:自拍杆的支持,优化方面等等。这些方面自定义的相机都不比系统自带的好,因为有些系统都是商家定制的,难免会出现一个奇葩的问题。比如:你在这款手机上运行,无任何问题,然而你换一款手机后,问题就出现了。 比如:小米的红米系列,你启用系统自带拍照功能后

股票数据接口-陈科肇

陈科肇 新浪财经 sz-深圳sh-上海历史分价表:http://market.finance.sina.com.cn/pricehis.php?symbol=sz000506&startdate=2016-12-27&enddate=2016-12-27历史成交明细(当日成交明细):http://vip.stock.finance.sina.com.cn/quotes_service/v

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

android两种日志获取log4j

android   log4j 加载日志使用方法; 先上图: 有两种方式: 1:直接使用架包 加载(两个都要使用); 架包:android-logging-log4j-1.0.3.jar 、log4j-1.2.15.jar  (说明:也可以使用架包:log4j-1.2.17.jar)  2:对架包输入日志的二次封装使用; 1:直接使用 log4j 日志框架获取日志信息: A:配置 日志 文