news 2026/6/22 12:40:10

4S策略叠加估值过滤,高估值个股直接剔除选股池。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
4S策略叠加估值过滤,高估值个股直接剔除选股池。

基于 Python 的 4S 选股策略叠加估值过滤方案:高估值个股自动剔除

全文去营销化、保持技术中立,适合课程设计、量化策略实验或 GitHub 工程化项目。

4S 选股策略叠加估值过滤与高估值个股剔除方案(Python 实现)

一、实际应用场景描述

在智能证券投资课程与量化选股研究中,一个长期被验证的经验规律是:

好公司 ≠ 好股票,估值决定安全边际。

以 4S 选股模型 为例,其核心因子包括:

- Sales Growth(营收增长)

- ROE(净资产收益率)

- Size(市值)

- Momentum(动量)

在课程实验或原型开发中,常见问题是:

- 选出了基本面优秀的公司

- 但买入时点恰好处于估值泡沫阶段

- 导致策略回撤大、持有体验差

因此,一个工程化程度较高的选股系统,应当在 基本面筛选之后、组合构建之前,引入 估值过滤机制。

二、引入痛点

在传统课程实验或策略开发中,常见痛点包括:

1. 估值因素被忽视只关注成长与盈利,忽略估值约束。

2. 估值阈值主观化“PE 太高就不要”缺乏统一标准。

3. 剔除逻辑混乱哪些估值指标?如何剔除?何时生效?

4. 工程化程度低估值过滤与选股逻辑耦合严重,难以维护。

三、核心逻辑讲解

1️⃣ 估值过滤的基本思想

在 4S 基本面选股基础上,剔除估值过高个股,降低组合泡沫风险。

2️⃣ 常用估值指标(示例)

指标 说明

PE(市盈率) 盈利估值水平

PB(市净率) 资产估值水平

PS(市销率) 营收估值水平

本文以 PE 为主、PB 为辅 作为示例。

3️⃣ 估值剔除规则(示例)

个股被视为 高估值,满足任一条件即剔除:

is_overvalued =

PE > 50

OR PB > 5

4️⃣ 策略执行顺序

原始股票池

4S 基本面打分

估值过滤(剔除高估值)

选取得分最高的股票

四、代码模块化实现(Python)

项目结构

4s_with_valuation_filter/

├── data/

│ └── stock_data.csv

├── src/

│ ├── data_loader.py

│ ├── factor_builder.py

│ ├── valuation_filter.py

│ └── selector.py

├── main.py

├── requirements.txt

└── README.md

1️⃣ 数据加载模块(

"data_loader.py")

import pandas as pd

def load_stock_data(path: str) -> pd.DataFrame:

"""

加载股票行情与基本面数据

"""

df = pd.read_csv(path, parse_dates=["date"])

df = df.sort_values(["date", "code"])

return df

2️⃣ 因子构建模块(

"factor_builder.py")

import pandas as pd

def build_4s_factors(df: pd.DataFrame) -> pd.DataFrame:

"""

构建 4S 因子

"""

df = df.copy()

df["sales_growth"] = df.groupby("code")["revenue"].pct_change(periods=4)

df["roe"] = df["roe"]

df["size"] = df["market_cap"]

df["momentum"] = df.groupby("code")["close"].pct_change(periods=20)

return df

3️⃣ 估值过滤模块(

"valuation_filter.py")

import pandas as pd

def apply_valuation_filter(

df: pd.DataFrame,

max_pe: float = 50,

max_pb: float = 5

) -> pd.DataFrame:

"""

剔除高估值个股

"""

df = df.copy()

df["is_overvalued"] = (

(df["pe"] > max_pe) |

(df["pb"] > max_pb)

)

filtered_df = df[df["is_overvalued"] == False].copy()

return filtered_df

4️⃣ 选股模块(

"selector.py")

import pandas as pd

def select_top_stocks(df: pd.DataFrame, top_n: int = 30) -> pd.DataFrame:

"""

基于 4S 因子选股

"""

# 因子排名

for factor in ["sales_growth", "roe", "size", "momentum"]:

df[f"{factor}_rank"] = df.groupby("date")[factor].rank(pct=True)

df["score"] = (

df["sales_growth_rank"] +

df["roe_rank"] +

df["size_rank"] +

df["momentum_rank"]

) / 4

latest_date = df["date"].max()

latest_df = df[df["date"] == latest_date]

return latest_df.nlargest(top_n, "score")

5️⃣ 主程序(

"main.py")

from src.data_loader import load_stock_data

from src.factor_builder import build_4s_factors

from src.valuation_filter import apply_valuation_filter

from src.selector import select_top_stocks

df = load_stock_data("data/stock_data.csv")

df = build_4s_factors(df)

# 估值过滤

filtered_df = apply_valuation_filter(df, max_pe=50, max_pb=5)

# 选股

top_stocks = select_top_stocks(filtered_df, top_n=30)

print(top_stocks[["code", "sales_growth", "roe", "pe", "pb", "score"]])

五、README 文件与使用说明

README.md

# 4S 选股策略叠加估值过滤工具

## 项目简介

本工具用于:

- 在 4S 基本面选股基础上

- 自动剔除高估值个股

- 输出估值合理的优质股票池

## 使用方法

1. 准备数据(stock_data.csv)

2. 安装依赖:

pip install -r requirements.txt

3. 运行主程序:

python main.py

## 数据字段要求

- date / code / revenue / roe / market_cap / close

- pe / pb

## 输出说明

- 最新一期 4S 综合得分排名前 N 的股票

- 已自动剔除 PE > 50 或 PB > 5 的个股

六、核心知识点卡片

1️⃣ 估值过滤的工程化意义

- 降低组合估值泡沫

- 提高策略安全边际

- 改善最大回撤表现

2️⃣ 估值指标的合理使用

- PE 适用于盈利稳定的公司

- PB 适用于重资产行业

- 单一指标 ≠ 万能标准

3️⃣ 策略执行顺序的重要性

- 先基本面,后估值

- 避免“估值陷阱”

- 保持因子逻辑清晰

七、免责声明与风险提示

免责声明

- 本内容仅供 学术研究与课程实验 使用

- 不构成任何投资建议

- 回测结果不代表未来表现

风险提示

- 估值阈值具有主观性

- 不同行业估值中枢差异巨大

- 过度剔除可能降低策略覆盖率

八、总结

本文介绍了一种 4S 选股策略叠加估值过滤 的 Python 工程化实现方案,具备以下特点:

- ✅ 基本面与估值解耦

- ✅ 剔除规则清晰、可配置

- ✅ 模块化设计,便于扩展

后续可扩展方向包括:

- 行业相对估值过滤

- 动态估值阈值

- 估值因子加权

本文代码仅供学习与技术交流,不构成任何投资建议,股市有风险,入市需谨慎!

利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 12:39:28

零延迟视频流转发神器go2rtc:打破监控摄像头协议壁垒的终极方案

零延迟视频流转发神器go2rtc:打破监控摄像头协议壁垒的终极方案 【免费下载链接】go2rtc Ultimate camera streaming application 项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc 你是否曾经为家里的监控摄像头无法在手机上流畅观看而烦恼&#x…

作者头像 李华
网站建设 2026/6/22 12:36:40

DeepSeek-V4架构解析:CSA、HCA与Muon协同的确定性推理系统

1. 项目概述:DeepSeek-V4 架构不是一张图,而是一套精密协同的“芯片级思维” 如果你最近在技术社区、AI论文预印平台或硬件架构讨论组里看到 DeepSeek-V4 这个词频繁出现,尤其和 CSA、HCA、Muon 这几个缩写并列,那你大概率已经…

作者头像 李华
网站建设 2026/6/22 12:28:39

下一代防火墙高级功能实战:唤醒WAF、IPS与应用程序控制的精准防护

1. 项目概述:当防火墙沦为“高级路由器”在网络安全领域,防火墙早已不是那个简单的“包过滤路由器”了。现代防火墙,无论是硬件盒子还是软件方案,都集成了Web应用防火墙(WAF)、应用程序控制、入侵防御系统&…

作者头像 李华
网站建设 2026/6/22 12:18:29

基于MCF547x硬件加密引擎的安全IP摄像头系统设计与实践

1. 项目概述:为什么我们需要一颗“带锁”的摄像头芯片?几年前,我参与过一个智能家居项目,其中就涉及到网络摄像头的开发。当时客户最关心的问题不是画面有多清晰,而是“我的视频会不会被别人看到?”。这个担…

作者头像 李华
网站建设 2026/6/22 12:16:09

车规级V2X通信芯片SAF5400:架构、开发与量产实战解析

1. 项目概述:为什么我们需要一颗“车规级”的V2X通信芯片?如果你在汽车电子行业待过几年,尤其是在ADAS或者智能座舱领域,那你肯定对“车规级”这三个字有深刻体会。它不仅仅意味着更宽的工作温度范围(比如-40C到125C&a…

作者头像 李华
网站建设 2026/6/22 12:13:59

3步完成Honey Select 2汉化:一键安装终极补丁解决方案

3步完成Honey Select 2汉化:一键安装终极补丁解决方案 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2的日文界面而困扰吗&…

作者头像 李华