社保基金重仓股选股策略详解
创作时间:
作者:
@小白创作中心
社保基金重仓股选股策略详解
引用
1
来源
1.
https://bigquant.com/wiki/doc/DAU6u0xEty
本文介绍了一个基于社保基金持股信息的选股策略。该策略通过分析上市公司前十大流通股东中是否包含社保基金,以及社保基金的持股比例,来筛选和打分股票。文章详细介绍了策略的实现方法,并提供了具体的SQL代码。此外,还展示了策略的回测结果和相关设置。
策略介绍
这是一个基于上市公司十大股东持股信息的复杂选股策略模板。该策略可以作为一个常用的选股和线性策略模板使用。
策略流程
- 选股逻辑:选择前十大流通股东中包含社保基金的股票
- 打分:按照社保基金股东持股权重进行打分
- 仓位:根据打分和持股数量分配仓位
- 回测:设置调仓周期和买卖点等,回测查看效果
策略依据
- 稳健的投资风格:社保基金作为大型合规机构投资者,其主要目标是保值增值,且通常采取稳健的投资策略。这些基金注重长期持有,避免短期炒作,选择的是预期收益大于预期风险的优质公司。跟随社保基金的投资决策,能更好地把握这些低风险高收益的股票。
- 专业的投资决策:社保基金的投资决策基于深厚的研究和分析,投资团队通常拥有丰富的行业知识和专业能力。这意味着社保基金的持仓股票经过了严格的筛选和分析,其投资标的往往具有较强的市场竞争力和成长潜力。
- 风险分散:社保基金持有的股票通常分布在多个行业和领域,这有助于分散投资风险。跟随社保基金买入的股票,也能有效地实现投资的风险分散,从而降低单一股票或行业的波动对整体投资组合的影响。
- 稳定的现金分红:社保基金偏好大型蓝筹股,这些公司通常具有稳定的现金流和较高的分红回报。投资这些股票可以为投资者提供稳定的现金分红收益,从而实现长期的财富增值。
- 长期投资优势:社保基金的投资策略通常以长期持有为主,避免短期市场波动的干扰。这种长期投资的理念与很多普通投资者的短期操作相对立,有助于获得更为稳健的投资回报。
- 风险控制:社保基金通常会避开“黑五类”股票(如业绩不佳、负面新闻频出的公司)以及热门概念股。这种风险控制措施可以保护投资者避免那些高风险、高波动的股票,从而提升整体投资的安全边际。
策略实现
这里基于SQL的实现,相对比较复杂
SQL代码介绍:
- ssf_flag表目的为了实现给十大流通股中存在社保基金的股票增加一个标签‘1’
- ssf_pct表目的为了统计各个股票社保基金的持股比例
- ssf表目的为了联结ssf_flag和ssf_pct
- 最后添加择股条件进行择股,并将持股比例作为排序持仓依据‘score’
WITH ssf_flag AS (
SELECT
end_date as date,
instrument,
-- 计算是否存在社保基金持股的标志
CASE
WHEN SUM(CASE WHEN holder_name LIKE '%社保基金%' THEN 1 ELSE 0 END) > 0 THEN 1
ELSE 0
END AS ssf_hold_flag,
FROM cn_stock_float_shareholder_top10
GROUP BY end_date, instrument
),
ssf_pct AS (
SELECT
end_date as date,
instrument,
-- 计算社保基金持股比例
SUM(holding_pct_total) as ssh_hold_pct,
FROM cn_stock_float_shareholder_top10
WHERE holder_name LIKE '%社保基金%'
GROUP BY end_date, instrument
),
ssf AS (
SELECT
ssf_flag.date,
ssf_flag.instrument,
ssf_flag.ssf_hold_flag,
ssf_pct.ssh_hold_pct,
FROM ssf_flag
PRUNE JOIN ssf_pct USING (date, instrument)
)
SELECT
f.date, f.instrument, f.is_risk_warning, f.pe_ttm, f.float_market_cap, f.list_sector,
s.date as end_date, s.ssf_hold_flag, s.ssh_hold_pct as score -- score就是作为排序的依据,只有score最大的10只股才能够进入持仓
FROM cn_stock_prefactors as f
-- 处理时态或类似顺序数据时的常见操作是在表中查找最近的(第一个)数据,具体见数据文档
ASOF JOIN ssf as s
ON f.instrument = s.instrument
AND s.date <= f.date
QUALIFY f.pe_ttm > 0 -- pe>0
AND f.is_risk_warning = 0 -- 风险警示: 0-正常, 1-风险警示
AND f.float_market_cap > 100000000 -- 流通市值大于10亿
AND f.list_sector = 1 -- 基本信息-上市板块代码: 0-未知;1-主板;2-创业板;3-科创板;4-北交所,
AND s.ssf_hold_flag = 1 -- 十大流通股东是否有社保基金
仓位分配模块
m4 仓位分配,选定开始与结束日期参考 101 / 102 的使用介绍
数据抽取模块
m3 数据抽取,选定开始与结束日期参考101/102的使用介绍
BigTrader模块
m5 回测交易,参考101/102的使用介绍
策略回测结果
回测设置
- 时间跨度:2020-01-01~2024-08-23
- 策略执行频率:日频
- 买入价格:开盘价
- 卖出价格:收盘价
- 持股数量:10
- 排序因子:社保基金持股比例
- 筛选条件:
- 非ST
- 主板
- 非退市
- 流通市值大于10亿
- PE大于0
- 十大流通股东的名称包含社保
代码实现
https://bigquant.com/codesharev3/6f9b48bd-fb42-4914-83ff-5bfea1564c53
热门推荐
探秘藕粉:从田间荷香到舌尖上的养生佳肴
在上海,如何使用职工医保个人账户为家人缴纳居民医保参保费?一文了解→
“朝九晚五”工作制:优势、挑战与应对策略
正月二十“接财童”,这些传统习俗你知道吗?
英国119是什么电话
家里智能家居会泄露隐私?10个技巧帮你避免
鹿茸如何分辨?购买时注意这6个要点
解锁国际视野:中外合办博士申请的五大竞争力提升点
你需要知道的综合计税和单独计税的基本概念和知识
目前流行性腮腺炎的主要治疗方法是
症状英文怎么说(disease、illness和sickness用法解析)
刀郎成名背后的故事
防爆正压配电柜国标准:确保工业安全的基石
情感麻木,宁愿痛苦,不要麻木!
多年未见的朋友重逢的句子
为让老年人积极学“防骗”,他们用了一个“小妙招”
量子纠缠是虫洞的全息对偶吗?ER = EPR猜想的深层联系
“同门曰朋,同志曰友”,朋友的分类
比赛第二公里甩开兔子,基普利莫:我让他加速,但他已无法再快
宝宝奶瓶材质大比拼:塑料VS玻璃,哪个更健康?
一文讲清汽车出海遇到的WVTA、STU、CoC、CoP认证
女生读警校到底有多累?真相曝光!看完这篇再决定要不要报考
原神恰斯卡高爆发阵容怎么搭配 原神恰斯卡高爆发平民阵容解析
派出所立案之后的流程是什么
自动挡启动时的正确操作方法
最新绘制的灵长类进化时间树填补了对生物多样性和进化历史认识的重大空白
如何切芒果:两种简单实用的方法及储存技巧
怎样根据收入水平合理计算购车贷款额度?
当了23年法医,他说:尸体并不可怕,怕的是无法还原死亡真相
足球报:中超从挥金如土到“沙里淘金”打响性价比引援竞争战