mcpField
F
finviz-screener

finviz-screener

github.com/tradermonty其他3.4k3.5k 次安装2 天前更新
代码仓库

关于 finviz-screener

FinViz Screener 会将自然语言选股条件转换为 FinViz 筛选器,生成筛选网址,并可在 Chrome 中打开。它支持英语和日语条件,以及 Public 或 Elite 模式选择。

主要功能

  1. 01将英语和日语请求映射为筛选器
  2. 02按视图和排序选项构建网址
  3. 03检测或选择 Public 与 Elite 模式
  4. 04通过 Chrome 打开并提供系统级备用方式
  5. 05构建网址前验证筛选器

适用场景

  1. 01查找符合基本面条件的股票
  2. 02筛选突破等技术形态
  3. 03按行业、主题或子主题浏览股票
  4. 04生成筛选网址但不打开浏览器

安装

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

$npx skills add https://github.com/tradermonty/claude-trading-skills --skill finviz-screener

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

requirements.txt
references/
finviz_screener_filters.md
scripts/
open_finviz_screener.py
scripts/tests/
conftest.py
test_open_finviz_screener.py

详细介绍

FinViz 筛选器

概述

将自然语言股票筛选请求转换为 FinViz 筛选器代码,构建 URL,并在 Chrome 中打开。公开筛选器无需 API 密钥;系统会从 $FINVIZ_API_KEY 自动检测 FINVIZ Elite,以提供增强功能。

主要功能:

  • 自然语言 → 筛选器代码映射(日语 + 英语)
  • 构建 URL,并选择视图类型和排序顺序
  • 自动检测 Elite/公开版(通过环境变量或显式标志)
  • 优先使用 Chrome 打开浏览器,并在不适用时回退到适合操作系统的浏览器
  • 严格验证筛选器,以防止 URL 注入

何时使用此技能

明确触发条件:

  • "高配当で成長している小型株を探したい"
  • "Find oversold large caps near 52-week lows"
  • "テクノロジーセクターの割安株をスクリーニングしたい"
  • "Screen for stocks with insider buying"
  • "FinVizでブレイクアウト候補を表示して"
  • "Show me high-growth small caps on FinViz"
  • "配当利回り5%以上でROE15%以上の銘柄を探して"

隐式触发条件:

  • 用户使用基本面或技术面术语描述股票筛选条件
  • 用户提到 FinViz 筛选器或股票筛选
  • 用户要求寻找符合特定财务特征的股票

不适用场景:

  • 对特定股票进行深入基本面分析(使用 us-stock-analysis)
  • 根据持仓进行投资组合审查(使用 portfolio-manager)
  • 对图表图片进行形态分析(使用 technical-analyst)
  • 基于财报的筛选(使用 earnings-trade-analyzer 或 pead-screener)

工作流

第 1 步:加载筛选器参考资料

读取筛选器知识库:

cat references/finviz_screener_filters.md
步骤 2:解读用户请求

将用户的自然语言请求映射为 FinViz 筛选代码。可使用下方的常见概念映射表快速转换,并参考完整筛选列表,精确选择代码。

注意: 对于范围条件(例如“股息率 3-8%”“市盈率在 10 到 20 之间”),请使用 {from}to{to} 范围语法,将其作为单个筛选词元(例如 fa_div_3to8、fa_pe_10to20),而不是组合单独的 _o 和 _u 筛选条件。

常见概念映射:

用户概念(EN)用户概念(JP)筛选代码
高股息高配当fa_div_o3 或 fa_div_o5
小盘股小型株cap_small
中盘股中型株cap_mid
大盘股大型株cap_large
超大盘股超大型株cap_mega
价值 / 便宜割安fa_pe_u20,fa_pb_u2
成长股成長株fa_epsqoq_o25,fa_salesqoq_o15
超卖売られすぎta_rsi_os30
超买買われすぎta_rsi_ob70
接近 52 周高点52週高値付近ta_highlow52w_b0to5h
接近 52 周低点52週安値付近ta_highlow52w_a0to5l
突破ブレイクアウトta_highlow52w_b0to5h,sh_relvol_o1.5
科技テクノロジーsec_technology
医疗保健ヘルスケアsec_healthcare
能源エネルギーsec_energy
金融金融sec_financial
半导体半導体ind_semiconductors
生物技术バイオテクind_biotechnology
美国股票米国株geo_usa
盈利黒字fa_pe_profitable
高 ROE高ROEfa_roe_o15 或 fa_roe_o20
低负债低負債fa_debteq_u0.5
内部人买入インサイダー買いsh_insidertrans_verypos
轧空ショートスクイーズsh_short_o20,sh_relvol_o2
股息增长増配fa_divgrowth_3yo10
深度价值ディープバリューfa_pb_u1,fa_pe_u10
动量モメンタムta_perf_13wup,ta_sma50_pa,ta_sma200_pa
防御型ディフェンシブta_beta_u0.5 或 sec_utilities,sec_consumerdefensive
高流动性 / 高成交量高出来高sh_avgvol_o500 或 sh_avgvol_o1000
从高点回调高値からの押し目ta_highlow52w_10to30-bhx
接近 52 周低点反转安値圏リバーサルta_highlow52w_10to30-alx
暴跌后反弹急落後反発ta_highlow52w_b20to30h,ta_rsi_os40
AI 主题AIテーマ--themes "artificialintelligence"
网络安全主题サイバーセキュリティ--themes "cybersecurity"
AI + 网络安全AI&サイバーセキュリティ--themes "artificialintelligence,cybersecurity"
AI 云子主题AIクラウド--subthemes "aicloud"
AI 计算子主题AI半導体--subthemes "aicompute"
股息率 3-8%(排除陷阱)配当3-8%(トラップ除外)fa_div_3to8
中等市盈率適正PER帯fa_pe_10to20
EV 低估EV割安fa_evebitda_u10
下周公布财报来週決算earningsdate_nextweek
近期 IPO直近IPOipodate_thismonth
目标价以上目標株価以上targetprice_a20
有最新新闻最新ニュースありnews_date_today
机构持股比例高機関保有率高sh_instown_o60
流通股少浮動株少sh_float_u20
接近历史最高点史上最高値付近ta_alltime_b0to5h
ATR 高高ボラティリティta_averagetruerange_o1.5
步骤 3:展示筛选条件

执行前,请用表格列出选定的筛选条件,供用户确认:

| Type | Value | Meaning |
|---|---|---|
| Theme | artificialintelligence | Artificial Intelligence |
| Sub-theme | aicloud | AI - Cloud & Infrastructure |
| Filter | cap_small | Small Cap ($300M–$2B) |
| Filter | fa_div_o3 | Dividend Yield > 3% |
| Filter | fa_pe_u20 | P/E < 20 |
| Filter | geo_usa | USA |

View: Overview (v=111)
Mode: Public / Elite (auto-detected)

请用户确认或调整后再继续。

第 4 步:执行脚本

运行筛选脚本以构建 URL 并打开 Chrome:

python3 scripts/open_finviz_screener.py \
  --filters "cap_small,fa_div_o3,fa_pe_u20,geo_usa" \
  --view overview

# Theme-only screening (no --filters required)
python3 scripts/open_finviz_screener.py \
  --themes "artificialintelligence,cybersecurity" \
  --url-only

# Theme + sub-theme + filters combined
python3 scripts/open_finviz_screener.py \
  --themes "artificialintelligence" \
  --subthemes "aicloud,aicompute" \
  --filters "cap_midover" \
  --url-only

脚本参数:

  • --filters(可选):以逗号分隔的筛选代码。**注意:**此处不允许使用 theme_* 和 subtheme_* 标记,请改用 --themes / --subthemes。
  • --themes(可选):以逗号分隔的主题 slug(例如,artificialintelligence,cybersecurity)。可使用不带前缀的 slug,也可使用带 theme_ 前缀的值。
  • --subthemes(可选):以逗号分隔的子主题 slug(例如,aicloud,aicompute)。可使用不带前缀的 slug,也可使用带 subtheme_ 前缀的值。
  • --elite:强制使用 Elite 模式(若未设置,则根据 $FINVIZ_API_KEY 自动检测)
  • --view:视图类型——overview、valuation、financial、technical、ownership、performance、custom
  • --order:排序顺序(例如,-marketcap、dividendyield、-change)
  • --url-only:仅打印 URL,不打开浏览器

必须至少提供 --filters、--themes 或 --subthemes 其中之一。

第 5 步:报告结果

打开筛选器后,报告:

  1. 构建的 URL
  2. 使用的是 Elite 还是 Public 模式
  3. 应用的筛选条件摘要
  4. 建议的后续步骤(例如,“按股息收益率排序”“切换到 Financial 视图查看详细比率”)

使用范例

从反复使用中提炼出的真实筛选模式。每个范例都包含一组起始筛选条件、推荐视图,以及迭代优化的技巧。

范例 1:高股息增长股票(Kanchi 风格)

目标: 高收益率 + 股息增长 + 盈利增长,同时排除股息陷阱。

--filters "fa_div_3to8,fa_sales5years_pos,fa_eps5years_pos,fa_divgrowth_5ypos,fa_payoutratio_u60,geo_usa"
--view financial
筛选代码用途
fa_div_3to8收益率 3-8%(限制高收益率陷阱)
fa_sales5years_pos5 年营收正增长
fa_eps5years_pos5 年 EPS 正增长
fa_divgrowth_5ypos5 年股息正增长
fa_payoutratio_u60派息率 < 60%(可持续性)
geo_usa在美国上市的股票

迭代优化: 先用 fa_div_o3 进行宽泛筛选 → 查看结果 → 添加 fa_div_3to8 限制收益率 → 添加 fa_payoutratio_u60 排除陷阱 → 切换到 financial 视图查看派息率和增长列。

范例 2:Minervini 趋势模板 + VCP

目标: 处于第 2 阶段上升趋势且波动率收缩的股票(VCP 形态)。

--filters "ta_sma50_pa,ta_sma200_pa,ta_sma200_sb50,ta_highlow52w_0to25-bhx,ta_perf_26wup,sh_avgvol_o300,cap_midover"
--view technical
筛选代码用途
ta_sma50_pa价格高于 50 日 SMA
ta_sma200_pa价格高于 200 日 SMA
ta_sma200_sb50200 SMA 低于 50 SMA(上升趋势)
ta_highlow52w_0to25-bhx距 52 周高点不超过 25%
ta_perf_26wup26 周表现为正
sh_avgvol_o300平均成交量 > 300K
cap_midover中盘股及以上

VCP 收紧筛选条件(添加以缩小范围): ta_volatility_wo3,ta_highlow20d_b0to5h,sh_relvol_u1——周波动率低、接近 20 日高点、相对成交量低于平均水平(收缩信号)。

范例 3:遭到不公抛售的成长股

目标: 基本面强劲但近期大幅下跌的公司——可能出现均值回归的候选股。

--filters "fa_sales5years_o5,fa_eps5years_o10,fa_roe_o15,fa_salesqoq_pos,fa_epsqoq_pos,ta_perf_13wdown,ta_highlow52w_10to30-bhx,cap_large,sh_avgvol_o200"
--view overview
筛选代码用途
fa_sales5years_o55 年销售额增长 > 5%
fa_eps5years_o105 年 EPS 增长 > 10%
fa_roe_o15ROE > 15%
fa_salesqoq_pos销售额环比增长为正
fa_epsqoq_posEPS 环比增长为正
ta_perf_13wdown13 周表现为负
ta_highlow52w_10to30-bhx低于 52 周高点 10-30%
cap_large大盘股
sh_avgvol_o200平均成交量 > 200K

查看后: 切换到 valuation 视图,检查 P/E 和 P/S,以判断入场吸引力。

配方 4:扭亏为盈的股票

目标: 此前收益持续下滑、如今开始复苏的公司——在基本面确认的基础上抄底。

--filters "fa_eps5years_neg,fa_epsqoq_pos,fa_salesqoq_pos,ta_highlow52w_b30h,ta_perf_13wup,cap_smallover,sh_avgvol_o200"
--view performance
筛选代码用途
fa_eps5years_neg5 年 EPS 增长为负(此前下滑)
fa_epsqoq_posEPS 环比增长为正(正在复苏)
fa_salesqoq_pos销售额环比增长为正(正在复苏)
ta_highlow52w_b30h距离 52 周高点不超过 30%(并非处于底部)
ta_perf_13wup13 周表现为正
cap_smallover小盘股及以上
sh_avgvol_o200平均成交量 > 200K
配方 5:动量交易候选股

目标: 寻找接近 52 周高点、成交量不断增加的短期动量领跑股。

--filters "ta_sma50_pa,ta_sma200_pa,ta_highlow52w_b0to3h,ta_perf_4wup,sh_relvol_o1.5,sh_avgvol_o1000,cap_midover"
--view technical
筛选代码用途
ta_sma50_pa股价高于 50 日 SMA
ta_sma200_pa股价高于 200 日 SMA
ta_highlow52w_b0to3h距离 52 周高点不超过 3%
ta_perf_4wup4 周表现为正
sh_relvol_o1.5相对成交量 > 1.5 倍
sh_avgvol_o1000平均成交量 > 1M
cap_midover中盘股及以上
配方 6:主题筛选(AI + 子主题深入筛选)

目标: 寻找专注于云基础设施和计算加速的中盘及以上 AI 股票。

--themes "artificialintelligence"
--subthemes "aicloud,aicompute"
--filters "cap_midover"
--view overview
类型值用途
主题artificialintelligenceAI 主题股票范围
子主题aicloud云与基础设施领域
子主题aicompute计算与加速领域
筛选条件cap_midover中盘股及以上

多主题示例: --themes "artificialintelligence,cybersecurity" 可选择带有任一主题标签的股票(通过 | 分组实现 OR 逻辑)。

提示:迭代优化模式

筛选最好通过对话逐步进行,而非一次性查询:

  1. 从宽泛条件开始——使用 3-4 个核心筛选条件,获取初步结果
  2. 检查结果数量——如果结果过多(>100),添加更严格的筛选条件;如果结果过少(<5),放宽限制
  3. 切换视图——先使用 overview 快速浏览,再切换到 financial 或 valuation 深入检查
  4. 逐步加入技术指标——确认基本面质量后,添加 ta_ 筛选条件来把握入场时机
  5. 保存并迭代——为 URL 添加书签,然后每次调整一个筛选条件,以了解其影响

资源

  • references/finviz_screener_filters.md — 完整的筛选代码参考,包含自然语言关键词(含行业代码示例;完整的 142 个代码列表见“行业代码”部分)
  • scripts/open_finviz_screener.py — URL 构建器和 Chrome 启动器

评论

支持 Markdown