社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

使用Python分析平准基金的持仓

FinTechHi • 1 周前 • 80 次点击  
一.A股史上最强“稳市组合拳”

按新浪网报道:由顶层设计主导、多部委协同、央地国企联动、跨产业共振的稳市举措,正在重塑市场预期。时隔六年,关税战卷土重来。为了应对A股市场的大幅震荡,“国家队”集体出手,工具箱立体化程度、响应速度、配套力度堪称史无前例。

4月7日-8日,为应对A股市场危机,国家队、机构资金和产业资金纷纷出手。“国家队”主力中央汇金4月7日盘中率先表态增持ETF,“该出手时果断出手”;央行隔空响应,予以充足的再贷款支持;中国诚通、中国国新等国有资本运营公司跟进增持央企、科创类股票及ETF;从国务院国资委到地方国资委,从能源到军工、基建等战略性行业集团集体发声;短短两日之内,约300家上市公司宣布增持回购;社保基金亦表态增持,保险资金限额松绑、公募基金开始自购……

按公开报道,类似“平准基金”的脉络如下图所示(注:根据文章:媒体视点 | A股史上最强“稳市组合拳”,脉络清晰了!绘制):


二.诚通和国新持股分析
我们向DeepSeek提问:
你好,请分别分析上述这些A股上市公司所属行业,公司主营业务,核心产品。
按DS分析,其中中国诚通持股公司概要如下:
其中国新投资持股公司概要如下:
可以看出两家国有资本平台的持股方向均体现对 “卡脖子”技术、能源安全、产业升级的重点支持。其中中国诚通偏好新能源、新材料、高端制造领域,持股企业多涉及绿色转型(如中绿电)、工业升级(如天地科技)。国新投资布局较广,包括能源安全(煤炭、油气)、半导体自主化(华虹、中瓷电子)、高端装备(船舶、机床) 等国家战略产业
其中:中绿电同时被中国诚通和国新投资持有。
为了方便跟踪上述股票的走势情况,我们让DS分别给出证券代码列表,方便导入到同花顺、东方财富等行情软件中,或者使用Python写代码跟踪趋势。以下是股票代码列表:

中国诚通(诚通金控)持股股票代码列表

公司名称 股票代码所属行业
中绿电
000537.SZ
新能源(风电/光伏)
杭钢股份
600126.SH
钢铁/金属冶炼
有研新材
600206.SH
新材料(靶材/稀土)
天地科技
600582.SH
煤炭装备/智能制造
扬电科技
301012.SZ
电力设备(节能变压器)
福立旺
688678.SH
电子(精密零部件)
富森美
002818.SZ
商业地产/家居零售
江河集团
601886.SH
建筑装饰(幕墙工程)
星图测控
688568.SH
航天科技(卫星测控)

国新投资持股股票代码列表**

公司名称股票代码所属行业
沈阳机床
000410.SZ
高端装备(数控机床)
中绿电
000537.SZ
新能源(风电/光伏)
山西焦煤
000983.SZ
煤炭(焦煤生产)
天士力
600535.SH
医药(现代中药)
中交设计
600720.SH
基建(交通工程设计)
中国海防
600764.SH
军工(船舶电子)
宝信软件
600845.SH
软件(工业信息化)
中国神华
601088.SH
能源(煤炭/电力)
西部矿业
601168.SH
有色金属(铅锌铜)
中煤能源
601898.SH
能源(煤炭/煤化工)
中远海控
601919.SH
航运(集装箱运输)
金钼股份
601958.SH
有色金属(钼金属)
华虹公司
688347.SH
半导体(晶圆代工)
中瓷电子
003031.SZ
电子(陶瓷封装)
中国移动
600941.SH
通信(电信服务)
当升科技
300073.SZ
新能源(锂电材料)
华大九天
301269.SZ
半导体(EDA软件)
易华录
300212.SZ
科技(数据存储)
中船特气
688146.SH
化工(电子特气)
中国海油
600938.SH
能源(油气勘探)
钢研纳克
300797.SZ
检测(金属材料分析)
三.诚通和国新持有ETF分析
上篇 限价订单薄系列(25)订单薄维度分析国家队ETF微观特征 中对ETF做了简单的介绍,今天结合公开报道再梳理下,通过对股票和ETF持仓的分析对比,可以看出两家公司在投资策略上的布局方向。

其中ETF方面,按《财经》报道:下表为中国诚通及其子公司在2024年底时所持有的ETF名单。从名单可以看出,中国诚通偏好央国企、高股息投资、红利低波等主题,也参与了部分黄金、互联网科技、医药、农业ETF的投资。对比半年报数据可以看到,中国诚通会根据投资情况对所持有的ETF进行调仓。

与中国诚通有所不同,国新投资对ETF的投资主要集中在由其定制的指数ETF中,包括国新央企股东回报、国新央企科技引领、国新港股通央企红利、国新央企现代新能源等。从4月7日、4月8日相关ETF的交易增量来看,多数ETF的成交额增量在百万元级别,无明显增量。下表为国新投资持有ETF统计:

四.社保基金持仓

4月8日,全国社会保障基金理事会也表示,近日已主动增持国内股票,近期将继续增持。在积极开展股票投资的同时实现基金安全和保值增值。据华创证券统计,社保基金2025年的股市增量资金或为225亿元,其中流向红利板块为130亿元。

社保基金重仓流通股集中度较高,主要分布在银行、非银、交运板块,整体股息风格明显。截至 2024年三季度末,社保基金重仓流通股合计市值达到4599 亿。整体来看,社保基金重仓流通股中也以银行股为主,占比高达47%。据统计,社保基金投资的重点标的为高股息资产,高股息占比达到59%。其中,股息率(TTM)在7%以上的标的,其市值合计占比高达48%,主要来自银行股。剔除社保基金会作为持股主体的样本,行业分布呈现分散化特征,但股息风格依旧显著。

五.通过Python分析
本篇分析,并非要追随GJD步伐。我们可以从另外一个视角看“上下布局”的方向。
import akshare as akimport pandas as pdimport numpy as npfrom ta.momentum import RSIIndicator# 中国诚通(诚通金控)持股股票代码列表,去掉后缀chengtong_stocks = [    "000537""600126""600206""600582",    "301012""688678""002818""601886",    "688568"]# 国新投资持股股票代码列表,去掉后缀guoxin_stocks = [    "000410""000537""000983""600535",    "600720""600764""600845""601088",    "601168""601898""601919""601958",    "688347""003031""600941""300073",    "301269""300212""688146""600938",


    
    "300797"]# 合并股票代码列表并去重all_stocks = list(set(chengtong_stocks + guoxin_stocks))# 获取最近一年的日期范围end_date = pd.Timestamp.now().strftime("%Y%m%d")start_date = (pd.Timestamp.now() - pd.DateOffset(days=365)).strftime("%Y%m%d")# 存储所有股票数据的列表all_stock_data = []def get_hist_data(stock, start_date, end_date):    max_retries = 3    for retry in range(max_retries):        try:            # 尝试使用主接口获取数据,这里要恢复后缀            suffix = '.SZ' if stock.startswith(('00''30''003')) else '.SH'            full_stock_code = stock + suffix            hist_data = ak.stock_zh_a_hist(symbol=full_stock_code, period="daily", start_date=start_date,                                           end_date=end_date)            if not hist_data.empty:                return hist_data            # 若主接口获取失败,尝试备用接口            hist_data = ak.stock_zh_a_hist_min_em(symbol=stock,                                                  start_date=start_date,                                                  end_date=end_date,                                                  period='101')            if not hist_data.empty:                return hist_data        except Exception as e:            print(f"尝试第 {retry + 1} 次获取 {stock} 数据时出错: {e}")    return pd.DataFrame()for stock in all_stocks:    try:        # 获取历史行情数据        hist_data = get_hist_data(stock, start_date, end_date)        if hist_data.empty:            print(f"未获取到 {stock} 的历史行情数据。")            continue        # 重命名列名以匹配要求        hist_data = hist_data.rename(columns={"开盘""open""收盘""close""最高""high""最低""low",                                              "成交量""volume""成交额""amount""振幅""range_pct",                                              "涨跌幅""change_pct""涨跌额""change_amt""换手率""turnover_rate"})        # 检查日期列名        if '日期' in hist_data.columns:            date_col = '日期'        elif '时间' in hist_data.columns:            date_col = '时间'        else:            print(f"获取的 {stock} 历史行情数据中不存在 '日期' 或 '时间' 列,列名实际为: {hist_data.columns}")            continue        hist_data['date'] = pd.to_datetime(hist_data[date_col]).dt.strftime('%Y-%m-%d')        hist_data = hist_data.drop(columns=[date_col])        # 计算 RSI        rsi_indicator = RSIIndicator(hist_data['close'], window=14)        hist_data['RSI'] = rsi_indicator.rsi()        # 添加股票代码列        hist_data['symbol'] = stock        all_stock_data.append(hist_data)    except Exception as


    
 e:        print(f"处理 {stock} 时出错: {e}")# 合并所有股票数据final_data = pd.concat(all_stock_data, ignore_index=True)# 调整列顺序columns_order = ['date','symbol''open''close''high''low''volume''amount''range_pct''change_pct',                 'change_amt''turnover_rate''RSI']final_data = final_data[columns_order]# 保存为 CSV 文件final_data.to_csv("stock_data.csv", index=False)print("数据已保存为 stock_data.csv")
我们从3个方面做下分析:
import pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns# 读取 stock_data.csv 文件df = pd.read_csv('stock_data.csv')# 将 date 列转换为 datetime 类型df['date'] = pd.to_datetime(df['date'])
# 1. 部分股票的收盘价走势(这里选择前5只股票为例)selected_stocks = df['symbol'].unique()[:5]plt.figure(figsize=(126))for stock in selected_stocks:    stock_data = df[df['symbol'] == stock]    plt.plot(stock_data['date'], stock_data['close'], label=stock)plt.xlabel('Date')plt.ylabel('Close Price')plt.title('Closing Price Trends of Selected Stocks')plt.legend()plt.show()
# 2. 涨跌幅分布直方图plt.figure(figsize=(106))sns.histplot(data=df, x='change_pct', bins=30, kde=True)plt.xlabel('Percentage Change')plt.ylabel('Frequency')plt.title('Distribution of Percentage Change')plt.show()
# 3. 成交量与收盘价的散点图example_stock = df['symbol'].unique()[0]example_data = df[df['symbol'] == example_stock]plt.figure(figsize=(106))sns.scatterplot(data=example_data, x='volume', y='close')plt.xlabel('Volume')plt.ylabel('Close Price')plt.title(f'Volume vs Close Price for {example_stock}')plt.show()
最终结果如下:


六.结尾
本周让我们见证了很多事情,市场也是迭代起伏。A股市场没有像外围股市那样出现情绪化的大幅波动,周一之后连续四天出现上涨。上证指数4月8日至11日,四天的振幅分别是1.95%、3.71%、1.20%、1.19%,A股市场本周是全球主要资本市场中波动最小、运行最平稳的股市。
轰轰烈烈的“关税战”不知道会不会就此结束。我们的最新表态不由的想起外交天王那句:他狂任他狂,清风拂山岗。
“中方将不予理会”,这一句家常话,一言胜万语。
至于懂王,他不是没睡醒,更不是“疯子”,他只是有一套自己的处事哲学,在他《交易的艺术》中提到的:敢于野心勃勃、保持灵活性、善用杠杆、硬核反击、争议及营销是不是最近体现的淋漓尽致。对他来说,上来就掀翻牌桌可能就是他的先手局而已,所谓的不断变化,可能就是他“灵活”的不断改变“中间目标”而已,而他要的最终目标一定是非常坚定和清楚。
在铺天盖地的解读中,我比较认可的是:美债,以及由债务带来的“缺钱”,债是信用,昨晚美股、美债、美元3杀,一定会触动很多主张重新思考的。
有兴趣的可以看下下面的视频,了解下灯塔国的“彩虹屁”
回到我们个人,在这个迭代起伏的市场中,我们要退出,还是要继续?要继续的话我们能做什么?该做什么?我最怕有亲戚朋友问:买什么好?这样的问题。
要很好的回答问题,需要先的对投资有个认识。
在这个市场中,每个投资个体,不管机构还是个人,都有自己的资金大小、风险容忍度、以及个人的投资“习惯”(机构我们称为投决逻辑),作为个人,要改变自己的“投资习惯”犹如改变一个人的性格一样难,除非接受到了某个投资方法专业的训练以及实践。
简单说,投资的第一点就是:你口袋里有几两银子,以及对投资收益率的正确认知。
很多人来到市场都是抱着10倍、100倍的“彩票梦”的,一个专业的投资团队能稳定做到20%年化收益已经是王牌了,另外一个常识,在资产荒的当下,要有这样的路径,大家还用盯着2%点多的货币基金?
有了:资金以及收益率的正确认识。
从资金大小来说,如果资金比较少,就算收益做的很好,最终收益也是三瓜两枣。像北炒那样8万到亿的路径只能留在故事里面。
从资金用途来说,用于股票(风险投资)的钱占了自己资产中的多大比率,比如今天刚刚全仓杀入,明天就要大额支持,那一定是刚刚卖完,股票就涨。所以资金用途非常重要,这是之前在且慢做投资领悟到最重要的事情,说大一点就是资产配置概念,比较官方的是标准普尔家庭资产象限图。
图片
在一些财富机构宣传中,形象的称为:“三笔钱”、“四笔钱”。下面是且慢的四笔钱理念。
图片
蚂蚁财富“三笔钱”在投资增值上首创量化目标配置法,推出“小目标”功能,对投资目标进行拆解和量化,让配置过程有指引、有追踪。科学专业、专属定制和智能计算等,真正做到“人人可配置”。
但不管几笔钱思维,最终还取决于个人如何划分,和划分后如何能保持定力。
特别是如果自己关注长期收益率的话,建议可以参考一个长期稳定的投资思维,但如果你的目标就是像北炒这些大V一样“屠龙”,那另议。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/180990
 
80 次点击