mcpField
T
trader-screener

trader-screener

github.com/jakeschincariol数据与数据库85151 次安装2 周前更新
代码仓库

关于 trader-screener

trader-screener 是面向投资者的 Python 技能,可按明确的财务规则筛选公司。它列出通过或未通过的指标与门槛,并可为通过筛选的公司排名。

主要功能

  1. 01按自定义规则筛选指标
  2. 02读取 JSON 或 CSV 指标
  3. 03可选计算 P/E 和盈利收益率
  4. 04按加权分数排列通过者
  5. 05说明通过与未通过的原因

适用场景

  1. 01筛选达到增长和利润率门槛的公司
  2. 02按基于股价的 P/E 规则筛选
  3. 03查看公司未通过筛选的原因

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jakeschincariol/trader-skill --skill trader-screener

安装后在 Claude Code 中输入/trader-screener确认已加载。

附带文件rules.example.jsonscreen.py

详细介绍

trader-screener

筛选器会将“我想找盈利且仍在增长、价格也不太贵的公司”转化为计算机可以检查的规则,并展示筛选依据:每项通过或未通过,都会附上数值和阈值。

此文件夹中的工具(使用 Python 标准库,不联网):

python3 "${CLAUDE_SKILL_DIR}/screen.py" --help

读取和写入的数据

  • 指标:来自 /trader-analyst 的 trader/metrics.json(facts.py --metrics), 或任何包含 ticker 列的 JSON 列表或 CSV。CSV 数字可以带有 $、 % 和逗号。
  • 价格(可选):trader/prices.json({"prices": {"AAPL": 341.27}}, 来源不限;/trader-alerts 会写入该文件)。提供价格后,会添加 price、pe (价格 / 滚动 EPS,仅当 EPS 为正时计算)和 earnings_yield。
  • 规则:一个 JSON 文件,可从此文件夹中的 rules.example.json 开始。
  • 使用 --out 写入 trader/shortlist.json:哪些公司通过、得分及原因, 哪些公司未通过及原因。

规则文件

{"name": "Growing, profitable, not priced for perfection",
 "rules": [{"metric": "revenue_growth_yoy", "op": ">=", "value": 10},
           {"metric": "operating_margin", "op": ">=", "value": 25},
           {"metric": "pe", "op": "<=", "value": 35}],
 "rank":  [{"metric": "revenue_growth_yoy", "order": "desc", "weight": 2},
           {"metric": "pe", "order": "asc", "weight": 1}],
 "missing": "fail"}

运算符:>、>=、<、<=、==、!=、between([下限,上限])、in 和 not in(适用于要排除的股票代码或行业列表)。"missing": "fail" 表示公司缺少规则所需指标时判定为未通过(银行在 SEC 的 facts 中没有营业利润率);"skip" 表示忽略该公司的这条规则,并说明原因。 排名会为每家通过筛选的公司按每个排名指标打 0 到 1 分,并计算加权平均分。

步骤

  1. 将用户的描述转化为规则。阈值不明确时应询问(“便宜” 的 P/E 是多少?)。将规则写入 trader/rules.json。

  2. 获取候选公司的指标:对这些公司运行 /trader-analyst,并使用 --metrics trader/metrics.json(其命令为 facts.py AAPL AXP GOOGL KO BAC --metrics trader/metrics.json),或使用用户自己的 CSV。若 P/E 很重要,则使用 trader/prices.json 中的价格。

  3. 运行筛选器:

    python3 "${CLAUDE_SKILL_DIR}/screen.py" trader/metrics.json --rules trader/rules.json \
      --prices trader/prices.json --out trader/shortlist.json
    

    退出代码为 1 表示没有公司通过:应说明这一点,并展示最接近通过的公司。

  4. 报告候选名单及通过原因、未通过的公司及其未通过规则的具体数值,以及这些数值的日期(各公司最新季度末日期、价格日期)。在进行其他操作之前,建议先对排名靠前的公司运行 /trader-analyst。

示例:片中的五家公司

AAPL、AXP、GOOGL、KO 和 BAC 的 SEC 指标,2026-10-13 收盘价,以及 rules.example.json:

Growing, profitable, not priced for perfection: 2 of 5 companies pass.
 1. PASS GOOGL  Alphabet Inc.  score 0.75   (growth 24.2, P/E 17.8)
 2. PASS KO     COCA COLA CO   score 0.25   (growth 12.1, P/E 28.3)
    FAIL AAPL   pe 39.2, needs <= 35
    FAIL BAC    operating_margin is missing
    FAIL AXP    revenue_growth_yoy 8.6, needs >= 10; operating_margin is missing

然后,谨慎的分析师会补充以下注意事项:Alphabet 最新季度的净利润高于营业利润(有来自业务之外的收益);由于 SEC 的 facts 更新滞后于其最新的 10-Q,Coca-Cola 的数据截至 2026-04-03 季度。

此工具绝不会做什么

  • 绝不会称通过筛选的公司为买入标的。筛选器只是根据已报告的数据进行过滤,不构成推荐。
  • 绝不会补填缺失的数字,也不会猜测指标:缺失就是缺失。
  • 绝不会自行向 /trader-budget 或订单路径发送任何内容。

安全

仅用于教育和工具辅助,不构成财务建议。此技能只筛选数据。 只有在 /trader-risk 检查通过,且用户明确输入该订单的肯定确认后,/trader-broker 才会下单。

评论

支持 Markdown