作者: AI新视线
alphasift 是一个 Agent 原生的 A 股选股引擎, 核心思路是把选股分成三个层次:L1 硬条件过滤、L2 LLM 软判断排序、L3 后置分析。它采用 Python 编写 ,支持 pip 安装,319 Star,Apache 2.0 协议, 最后更新于 2026-07-30。
| 维度 | 数据 |
|---|---|
| GitHub | simonlin1212/alphasift |
| Stars | 319 |
| Forks | 186 |
| 语言 | Python 3.10+ |
| 策略数 | 11 个 YAML 策略 |
| 测试文件 | 34 个 |
| 许可证 | Apache 2.0 |
背景
选股的本质是一个"从全市场候选中找出符合某种投资逻辑的股票"的问题。传统量化框架把筛选逻辑写死在代码里 , 换个策略就要改代码。alphasift 的做法是把筛选规则抽象成 YAML 配置文件 ,用 LLM 做排序而不是做筛选,最后提供 Agent 可调用的接口。
这个项目的设计文档列出了 11 条设计原则, 其中最关键的一条是:**硬条件由代码执行, LLM 只做软判断**。这意味着估值、涨跌幅、技术指标阈值这些确定性逻辑, 全部由 Python 代码完成, 不交给 LLM。LLM 负责的是语义理解、候选间横向比较、行业/主题标签输出这些软判断。
技术分析
alphasift 的核心是三层筛选架构,每层职责清晰:
L1 硬条件过滤。从全市场 5000+ 只股票中,按硬条件筛出候选池。支持 PE、PB、市值、换手率、涨跌幅、量比等条件的范围过滤。同时支持排除 ST 股票、设置最低成交额等。
L2 LLM 重排。把 L1 的候选送入 LLM, 基于策略描述、市场上下文、候选之间的横向对比, 给出最终排名。LLM 输出结构化 JSON, 包含每个候选的行业标签、风险摘要和排序理由。
L3 后置分析。默认使用本地 scorecard 对候选做补充评分,也可接入外部 DSA(daily_stock_analysis)对最终入围候选做深度分析。
数据源支持多种免费接口,优先级按配置可调整:
| 数据源 | 内容 | 依赖 |
|---|---|---|
| akshare | 行情快照、行业板块 | akshare>=1.10 |
| baostock | 日 K 线 | baostock>=0.8.9 |
| tushare | 财务数据、历史行情 | tushare>=1.4,需 Token |
| efinance | 东财行情推送 | efinance>=0.4 |
| yfinance | 美股/港股 | yfinance>=0.2 |
策略文件全部以 YAML 格式定义,每个策略包含硬筛选条件、因子权重、评分参数、风险阈值。以双低策略为例:
yaml
strategies/dual_low.yaml
name: dual_low display_name: 双低选股 version: “1.2” category: value screening: hard_filters: exclude_st: true pe_ttm_max: 15 pb_max: 2.0 market_cap_min: 5000000000 price_min: 3 price_max: 80 factor_weights: value: 0.34 stability: 0.20 liquidity: 0.14 momentum: 0.10 max_output: 5
11 个内置策略覆盖不同风格:
| 策略 | 类型 | 核心逻辑 |
|---|---|---|
| dual_low | 价值 | 低 PE + 低 PB,叠加活跃度确认 |
| volume_breakout | 动量 | 放量突破,量比异动检测 |
| balanced_alpha | 多因子 | 综合估值、稳定性、流动性加权 |
| capital_heat | 资金 | 资金流入热度排序 |
| blue_chip_income | 价值 | 蓝筹 + 分红稳定性 |
| momentum_quality | 动量+质量 | 动量+ROE质量双因子 |
| low_volatility_quality | 防御 | 低波动+高质量 |
| oversold_reversal | 反转 | 超卖后反转信号 |
| quality_value | 质量+价值 | 高质量低估组合 |
| shrink_pullback | 形态 | 缩量回调后支撑位确认 |
安装和运行的核心命令:
bash
pip install -e .
无 API key 快速演示
alphasift quickstart
执行双低策略,不使用 LLM 排序
alphasift screen dual_low –no-llm
使用 LLM 排序,带市场上下文
alphasift screen balanced_alpha –context “今日券商板块放量”
保存运行,后续做 T+N 后验评估
alphasift screen dual_low –save-run alphasift evaluate
Agent 调用方式有两种:通过 CLI 命令或 Python 接口。项目内置 SKILL.md,支持 Claude Code、Codex 等 Agent 直接调用。
实测验证
项目 34 个测试文件,覆盖过滤、评分、排名、策略、运行时、数据源健康检查等核心模块。
测试覆盖的关键场景包括:
- 硬条件过滤的水下效应:验证排除 ST、涨跌幅限制等边界条件
- LLM 排序的降级逻辑:LLM 调用失败时回退到 screen_score 排序
- 数据源健康检查:自动感知数据源可用性,失败后降级到备用源
- T+N 后验评估:保存运行后对比评估时的价格路径,计算胜率、最大回撤 数据源的优雅降级机制是项目的核心工程亮点。当 akshare 或 efinance 不可用时 ,自动切换至 baostock 或 tushare, 并记录 degradation 标记。东财直连请求内置串行限流(默认 1.0 秒间隔 + 0.3 秒随机抖动) ,避免触发 IP 封禁。
[IMAGE: alphasift 数据源降级流程图]
影响范围
alphasift 的定位是 Agent 原生的选股引擎,适用场景是:
| 维度 | 说明 |
|---|---|
| 适用 Agent 框架 | Claude Code、Codex、Gemini CLI 等支持 SKILL.md 的 Agent |
| 适用市场 | A 股(market_scope: [cn]) |
| 运行环境 | Python 3.10+,Linux/macOS/Windows |
| 数据时效 | 依赖 akshare/tushare 等数据源,盘后数据可用 |
| LLM 依赖 | 排序阶段可选,--no-llm 完全离线运行 |
与同类工具的区别:
| 工具 | 定位 | 核心差异 |
|---|---|---|
| alphasift | Agent 原生选股引擎 | YAML 策略 + SKILL.md 接口 + T+N 后验 |
| TradingAgents-astock | 多 Agent 投研辩论 | 7 位分析师 + Bull/Bear 辩论 |
| PanWatch | 盯盘助手 | 实时监控 + 多账户管理 |
| QuantDinger | 量化交易平台 | 回测 + 实盘 + 多市场 |
防护建议
alphasift 作为开源选股工具,使用时需要注意以下安全点:
数据源安全:akshare 和 efinance 依赖直接 HTTP 请求 , 建议配置
ALPHASIFT_SOURCE_CALL_TIMEOUT_SEC设置超时阈值 ,避免数据源异常时程序无限等待。LLM API Key 管理:LLM 排序阶段需要 API Key ,建议使用环境变量或
.env文件管理, 不要硬编码在配置中。支持 LiteLLM 多通道配置,可设置主备模型和回退策略。策略参数审计:YAML 策略文件定义了选股逻辑, 建议定期审计策略参数是否与当前市场环境匹配,避免用过时的阈值筛选。
T+N 后验评估:保存的运行记录包含价格快照和筛选条件, 可用于评估策略有效性。建议建立策略评估循环,避免直接使用未经验证的策略。
📌 关注「AI新视线」,回复关键词获取完整量化模型和研报数据。
扫码关注「AI新视线」
穿透噪音,看见本质
来源: 微信公众号