返回 Skill 列表
extension
分类: 其它无需 API Key

股票筛选器

统一选股技能包,整合11种策略(ROE筛选、MACD底背离、高股息、低估值、 费雪成长股、长期低位、近期放量、趋势分析、K线形态、布林带下轨、筹码集中、 现金流质量),支持单策略、多策略组合筛选。 触发词(精准触发,覆盖明确选股意图): 按策略名:ROE选股、ROE筛选、MACD选股、MACD筛选、MACD底背离、 股息选股、高股息选股、估值选股、低估值、成长股筛选、费雪成长股、 低位放量选股、长期低位选股、近期放量、趋势选股、形态选股、K线形态筛选、 布林带选股、筹码集中选股、现金流质量 按组合意图:组合选股、筛选股票、多策略选股、综合选股、并发选股、全部策略选股 按结果要求:按ROE排名、按评分排名、按股息率排名、取交集、取并集 明确排除(这些场景应激活其他skill): - 任何包含具体股票代码/名称的个股分析请求 - "帮我看看XX股票"、"XX公司怎么样"、"XX值不值得买" - "查一下行情"、"看资金流向"等纯数据查询

person作者: user_108ed35fhubcommunity

stock-selecter 统一选股技能包 v3.2

概述

将11种选股策略聚合为单一入口,支持单策略独立运行、多策略组合(AND/OR/SCORE), 以及并发加速和 HTML 可视化报告。

可用策略

| 策略名 | 说明 | 核心条件 | 评分维度 | |--------|------|----------|----------| | roe | ROE盈利能力 | ROE≥15%, ROA≥5% | ROE/ROA/毛利/净利/负债率/ROE趋势 | | macd | MACD底背离 | K线下行+MACD向上+底背离+放量 | K线斜率/MACD斜率/放量倍数/RSI | | dividend | 高股息 | 股息率≥3%+连续分红3年+ROE≥8% | 股息率/ROE/连续年数/估值/派息率 | | valuation | 低估值 | PE≤25+PB≤3+PEG≤1.5+ROE≥8% | PE/PB/PEG/ROE/行业折价/PB历史分位 | | growth | 费雪成长股 | 营收/净利双增≥20%+毛利≥30% | 营收增速/利润增速/毛利率/ROE | | low_position | 长期低位 | 价格分位≤25%+RSI≤40 | 价格分位/RSI/距低点天数 | | volume_surge | 近期放量 | 放量≥2倍+RSI≤45+反弹≥3% | 放量倍数/RSI/反弹幅度/连续放量天数 | | trend | 趋势分析 | 均线多头+R²≥0.5+ADX≥25 | 趋势斜率/R²/ADX/RSI/波动率/均线排列 | | pattern | K线形态 | 命中1种+形态(双底/吞没/早晨之星等) | 命中形态数量 | | bollinger | 布林带下轨 | 股价触及布林带下轨+RSI超卖 | 触及程度/RSI/距下轨空间 | | shareholder_concentration | 筹码集中 | 股东户数连续3期减少+ROE≥8% | 累计减少幅度/持续期数/ROE | | cashflow_quality | 现金流质量 | 经营现金流≥净利润3期+商誉<30% | 满足季度数/平均比率/ROE |

评分体系

所有策略统一返回 0-100 分,分数越高表示股票质量越好。 多策略组合时,score 为各策略得分之和(AND 模式)或之和(OR/SCORE 模式)。

评分参考基准:

  • ROE 满分参考值 ≥25%
  • 毛利率满分参考值 ≥40-60%
  • ADX 满分参考值 ≥50
  • 放量倍数满分参考值 ≥3x

组合模式

AND   :多策略交集(股票必须同时通过所有策略,条件最严)
OR    :多策略并集(通过任意一个即入选)
SCORE :综合评分(全部策略打分,按总分排名,最宽松)

命令行用法

# 单策略(默认 AND)
python main.py --strategy roe --roe_threshold 15

# 多策略交集(最严)
python main.py --strategy roe,macd,dividend --mode and

# 多策略并集(宽松)
python main.py --strategy roe,macd --mode or --top 50

# 综合评分(适合 --strategy all)
python main.py --strategy all --mode score --top 50

# 并发执行(8线程,适合技术面策略)
python main.py --strategy macd,trend,volume_surge --workers 8

# 生成 HTML 可视化报告
python main.py --strategy roe,macd,dividend --report --output_dir ~/Desktop

# 调试(只分析前20只)
python main.py --strategy roe,trend --limit 20 --verbose

代码调用

from main import execute

# 基础用法
result = execute({"strategy": "roe", "roe_threshold": 15})

# 多策略 AND 交集
result = execute({
    "strategy": "roe,macd,valuation",
    "mode": "and",
    "roe_threshold": 15,
    "max_pe": 20,
})

# 全策略综合评分,并发 + HTML
result = execute({
    "strategy": "all",
    "mode": "score",
    "top_n": 50,
    "workers": 8,
    "report": True,
})

# 策略专属参数(支持 namespace 前缀)
result = execute({
    "strategy": "roe,valuation",
    "roe.roe_threshold": 20,    # ROE策略参数
    "valuation.max_pe": 15,     # 估值策略参数
})

返回格式

{
  "success": True,
  "results": [
    {
      "ts_code": "000001.SZ",
      "name": "平安银行",
      "industry": "银行",
      "score": 78.5,
      "strategies_hit": ["roe", "valuation"],
      "scores": {"roe": 45.2, "valuation": 33.3},
      # 以下为各策略专属字段
      "roe": 16.5, "roa": 8.2, "gross_margin": 35.1,
      "pe_ttm": 12.3, "pb": 1.1, "peg": 0.74,
    },
    ...
  ],
  "count": 42,
  "message": "[stock-selecter] AND 模式,耗时 89.3s",
  "metadata": {
    "strategies_used": ["roe", "valuation"],
    "mode": "and",
    "execution_time": 89.3,
    "per_strategy_counts": {"roe": 312, "valuation": 185},
    "saved_files": {
      "json": "/path/to/...",
      "csv":  "/path/to/...",
      "html": "/path/to/...",
    }
  }
}

参数说明

公共参数

| 参数 | 默认 | 说明 | |------|------|------| | strategy | roe | 策略名,逗号分隔,all=全部 | | mode | and | and/or/score | | top_n | 0 | 结果截断(0=不限) | | workers | 1 | 并发线程数(>1启用并发) | | report | False | 是否生成 HTML 报告 | | save | True | 是否保存 JSON/CSV | | output_dir | 自动 | 输出目录 |

各策略专属参数

ROE (roe)

roe_threshold=15.0      # ROE 最低阈值(%)
roa_threshold=5.0      # ROA 最低阈值(%)
include_roa=True        # 是否同时筛选 ROA
min_report_periods=4   # 最少财报期数

MACD (macd)

k_slope_max=0.0         # K线斜率上限(正值=向上)
k_r2_min=0.3            # K线趋势 R² 下限
macd_slope_min=0.0      # MACD 斜率下限(正值=向上)
macd_r2_min=0.2         # MACD 趋势 R² 下限
require_divergence=True # 要求底背离
require_volume_surge=True# 要求放量
volume_surge_weeks=5    # 放量对比周数
volume_surge_threshold=1.5 # 放量倍数阈值

股息 (dividend)

min_dv_ratio=3.0        # 最低股息率(%)
min_consecutive_years=3 # 最少连续分红年数
min_roe=8.0             # 最低 ROE(%)
max_pe=30               # PE 上限

估值 (valuation)

max_pe=25.0             # PE 上限
max_pb=3.0             # PB 上限
max_peg=1.5            # PEG 上限(<1为低估)
industry_discount=0.85  # 行业基准折扣
min_roe=8.0            # 最低 ROE(%)

成长股 (growth)

min_revenue_growth=20.0   # 营收增速下限(%)
min_profit_growth=20.0   # 净利润增速下限(%)
min_gross_margin=30.0     # 毛利率下限(%)
min_consecutive_quarters=3# 连续净利润正增长季度数
min_roe=12.0             # 最低 ROE(%)

长期低位 (low_position)

lookback_days=250       # 历史价格窗口
low_position_pct=25.0  # 底部分位阈值(%)
rsi_max=40.0           # RSI 上限
rsi_window=14          # RSI 计算周期
data_period_years=2     # 数据拉取年数

近期放量 (volume_surge)

volume_surge_ratio=2.0   # 放量倍数阈值
volume_avg_days=20        # 均量计算周期
rsi_max=45.0            # RSI 上限
rebound_pct_min=3.0     # 最小反弹幅度(%)
rebound_days=5          # 反弹检测窗口
price_change_max=10.0  # 当日涨幅上限(%)
data_period_years=1     # 数据拉取年数

趋势 (trend)

ma_short=5             # 短期均线周期
ma_mid=20              # 中期均线周期
ma_long=60             # 长期均线周期
trend_r2_min=0.5       # 趋势 R² 下限
adx_min=25.0           # ADX 趋势强度下限
require_ma_bullish=True # 要求均线多头排列

形态 (pattern)

detect_double_bottom=True
detect_head_shoulders_bottom=True
detect_flag_breakout=True
detect_golden_cross=True
detect_morning_star=True
detect_bullish_engulfing=True
detect_cup_handle=True
min_pattern_score=1    # 最少命中形态数

布林带下轨 (bollinger)

bb_window=20           # 布林带周期
bb_std=2.0            # 标准差倍数
rsi_max=45.0          # RSI 上限
rsi_window=14         # RSI 周期
lookback_days=120     # 回看天数
price_change_max=9.0  # 当日涨幅上限(排除涨停)

筹码集中 (shareholder_concentration)

min_consecutive_quarters=3  # 连续减少季度数
max_holder_growth=-5.0     # 最大季度增长上限
min_roe=8.0               # 最低ROE
data_period_quarters=8      # 数据拉取期数

现金流质量 (cashflow_quality)

min_match_quarters=3      # 经营现金流>=净利润的季度数
total_periods=4            # 检测总期数
min_cashflow_ratio=0.8   # 经营现金流/净利润最小比率
min_roe=8.0              # 最低ROE
max_goodwill_pct=30.0    # 商誉/净资产上限(%)

输出文件

自动保存到 /Volumes/Alan HD/股票筛选/(Mac 外置硬盘),或指定目录:

  • screener_{策略}_{时间}.json — 完整原始数据
  • screener_{策略}_{时间}.csv — 表格格式
  • 选股报告_{时间}.html — 可交互可视化报告(需 --report

目录结构

stock-selecter/
├── main.py              ← 统一入口(CLI + execute())
├── SKILL.md             ← 本文件
├── config.json          ← 默认配置
├── strategies/
│   ├── base.py          ← 抽象基类(含并发执行引擎)
│   ├── roe.py
│   ├── macd.py
│   ├── dividend.py
│   ├── valuation.py
│   ├── growth.py
│   ├── low_position.py
│   ├── volume_surge.py
│   ├── trend.py
│   ├── pattern.py
│   ├── bollinger.py       ← v3.2 新增
│   ├── shareholder_concentration.py  ← v3.2 新增
│   └── cashflow_quality.py          ← v3.2 新增
└── utils/
    ├── loader.py        ← 共享库动态加载
    └── report.py        ← HTML 报告生成器

并发说明

  • workers=1(默认):串行执行,稳定可靠
  • workers>1:ThreadPoolExecutor 并发,适合 IO 密集型(大量 API 调用等待)
  • MACD/趋势/放量等技术面策略建议开启并发(--workers 8
  • ROE/股息/估值等财务面策略数据量小,并发收益有限
  • 建议并发数不超过 16,避免触发 API 限流