SKILL.md
FinViz Screener
Overview
Translate natural-language stock screening requests into FinViz screener filter codes, build the URL, and open it in Chrome. No API key required for public screener; FINVIZ Elite is auto-detected from $FINVIZ_API_KEY for enhanced functionality.
Key Features:
- Natural language → filter code mapping (Japanese + English)
- URL construction with view type and sort order selection
- Elite/Public auto-detection (environment variable or explicit flag)
- Chrome-first browser opening with OS-appropriate fallbacks
- Strict filter validation to prevent URL injection
When to Use This Skill
Explicit Triggers:
- "高配当で成長している小型株を探したい"
- "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%以上の銘柄を探して"
Implicit Triggers:
- User describes stock screening criteria using fundamental or technical terms
- User mentions FinViz screener or stock filtering
- User asks to find stocks matching specific financial characteristics
When NOT to Use:
- Deep fundamental analysis of a specific stock (use us-stock-analysis)
- Portfolio review with holdings (use portfolio-manager)
- Chart pattern analysis on images (use technical-analyst)
- Earnings-based screening (use earnings-trade-analyzer or pead-screener)
Workflow
Step 1: Load Filter Reference
Read the filter knowledge base:
cat references/finviz_screener_filters.md
Step 2: Interpret User Request
Map the user's natural-language request to FinViz filter codes. Use the Common Concept Mapping table below for quick translation, and reference the full filter list for precise code selection.
Note: For range criteria (e.g., "dividend 3-8%", "P/E between 10 and 20"), use the {from}to{to} range syntax as a single filter token (e.g., fa_div_3to8, fa_pe_10to20) instead of combining separate _o and _u filters.
Common Concept Mapping:
User Concept (EN)
User Concept (JP)
Filter Codes
High dividend
高配当
fa_div_o3 or fa_div_o5
Small cap
小型株
cap_small
Mid cap
中型株
cap_mid
Large cap
大型株
cap_large
Mega cap
超大型株
cap_mega
Value / cheap
割安
fa_pe_u20,fa_pb_u2
Growth stock
成長株
fa_epsqoq_o25,fa_salesqoq_o15
Oversold
売られすぎ
ta_rsi_os30
Overbought
買われすぎ
ta_rsi_ob70
Near 52W high
52週高値付近
ta_highlow52w_b0to5h
Near 52W low
52週安値付近
ta_highlow52w_a0to5l
Breakout
ブレイクアウト
ta_highlow52w_b0to5h,sh_relvol_o1.5
Technology
テクノロジー
sec_technology
Healthcare
ヘルスケア
sec_healthcare
Energy
エネルギー
sec_energy
Financial
金融
sec_financial
Semiconductors
半導体
ind_semiconductors
Biotechnology
バイオテク
ind_biotechnology
US stocks
米国株
geo_usa
Profitable
黒字
fa_pe_profitable
High ROE
高ROE
fa_roe_o15 or fa_roe_o20
Low debt
低負債
fa_debteq_u0.5
Insider buying
インサイダー買い
sh_insidertrans_verypos
Short squeeze
ショートスクイーズ
sh_short_o20,sh_relvol_o2
Dividend growth
増配
fa_divgrowth_3yo10
Deep value
ディープバリュー
fa_pb_u1,fa_pe_u10
Momentum
モメンタム
ta_perf_13wup,ta_sma50_pa,ta_sma200_pa
Defensive
ディフェンシブ
ta_beta_u0.5 or sec_utilities,sec_consumerdefensive
Liquid / high volume
高出来高
sh_avgvol_o500 or sh_avgvol_o1000
Pullback from high
高値からの押し目
ta_highlow52w_10to30-bhx
Near 52W low reversal
安値圏リバーサル
ta_highlow52w_10to30-alx
Fallen angel
急落後反発
ta_highlow52w_b20to30h,ta_rsi_os40
AI theme
AIテーマ
--themes "artificialintelligence"
Cybersecurity theme
サイバーセキュリティ
--themes "cybersecurity"
AI + Cybersecurity
AI&サイバーセキュリティ
--themes "artificialintelligence,cybersecurity"
AI Cloud sub-theme
AIクラウド
--subthemes "aicloud"
AI Compute sub-theme
AI半導体
--subthemes "aicompute"
Yield 3-8% (trap excluded)
配当3-8%(トラップ除外)
fa_div_3to8
Mid-range P/E
適正PER帯
fa_pe_10to20
EV undervalued
EV割安
fa_evebitda_u10
Earnings next week
来週決算
earningsdate_nextweek
IPO recent
直近IPO
ipodate_thismonth
Target price above
目標株価以上
targetprice_a20
Recent news
最新ニュースあり
news_date_today
High institutional
機関保有率高
sh_instown_o60
Low float
浮動株少
sh_float_u20
Near all-time high
史上最高値付近
ta_alltime_b0to5h
High ATR
高ボラティリティ
ta_averagetruerange_o1.5
Step 3: Present Filter Selection
Before executing, present the selected filters in a table for user confirmation:
| 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)
Ask the user to confirm or adjust before proceeding.
Step 4: Execute Script
Run the screener script to build the URL and open 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
Script arguments:
--filters(optional): Comma-separated filter codes. Note:theme_*andsubtheme_*tokens are not allowed here — use--themes/--subthemesinstead.
--themes(optional): Comma-separated theme slugs (e.g.,artificialintelligence,cybersecurity). Accepts bare slugs ortheme_-prefixed values.
--subthemes(optional): Comma-separated sub-theme slugs (e.g.,aicloud,aicompute). Accepts bare slugs orsubtheme_-prefixed values.
--elite: Force Elite mode (auto-detected from$FINVIZ_API_KEYif not set)
--view: View type — overview, valuation, financial, technical, ownership, performance, custom
--order: Sort order (e.g.,-marketcap,dividendyield,-change)
--url-only: Print URL without opening browser
At least one of --filters, --themes, or --subthemes must be provided.
Step 5: Report Results
After opening the screener, report:
- The constructed URL
- Elite or Public mode used
- Summary of applied filters
- Suggested next steps (e.g., "Sort by dividend yield", "Switch to Financial view for detailed ratios")
Usage Recipes
Real-world screening patterns distilled from repeated use. Each recipe includes a starter filter set, recommended view, and tips for iterative refinement.
Recipe 1: High-Dividend Growth Stocks (Kanchi-Style)
Goal: High yield + dividend growth + earnings growth, excluding yield traps.
--filters "fa_div_3to8,fa_sales5years_pos,fa_eps5years_pos,fa_divgrowth_5ypos,fa_payoutratio_u60,geo_usa"
--view financial
Filter Code
Purpose
fa_div_3to8
Yield 3-8% (caps high-yield traps)
fa_sales5years_pos
Positive 5Y revenue growth
fa_eps5years_pos
Positive 5Y EPS growth
fa_divgrowth_5ypos
Positive 5Y dividend growth
fa_payoutratio_u60
Payout ratio < 60% (sustainability)
geo_usa
US-listed stocks
Iterative refinement: Start broad with fa_div_o3 → review results → add fa_div_3to8 to cap yield → add fa_payoutratio_u60 to exclude traps → switch to financial view for payout and growth columns.
Recipe 2: Minervini Trend Template + VCP
Goal: Stocks in a Stage 2 uptrend with volatility contraction (VCP setup).
--filters "ta_sma50_pa,ta_sma200_pa,ta_sma200_sb50,ta_highlow52w_0to25-bhx,ta_perf_26wup,sh_avgvol_o300,cap_midover"
--view technical
Filter Code
Purpose
ta_sma50_pa
Price above 50-day SMA
ta_sma200_pa
Price above 200-day SMA
ta_sma200_sb50
200 SMA below 50 SMA (uptrend)
ta_highlow52w_0to25-bhx
Within 25% of 52W high
ta_perf_26wup
Positive 26-week performance
sh_avgvol_o300
Avg volume > 300K
cap_midover
Mid cap and above
VCP tightening filters (add to narrow): ta_volatility_wo3,ta_highlow20d_b0to5h,sh_relvol_u1 — low weekly volatility, near 20-day high, below-average relative volume (contraction signal).
Recipe 3: Unfairly Sold-Off Growth Stocks
Goal: Fundamentally strong companies with recent sharp declines — potential mean reversion candidates.
--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
Filter Code
Purpose
fa_sales5years_o5
5Y sales growth > 5%
fa_eps5years_o10
5Y EPS growth > 10%
fa_roe_o15
ROE > 15%
fa_salesqoq_pos
Positive QoQ sales growth
fa_epsqoq_pos
Positive QoQ EPS growth
ta_perf_13wdown
Negative 13-week performance
ta_highlow52w_10to30-bhx
10-30% below 52W high
cap_large
Large cap
sh_avgvol_o200
Avg volume > 200K
After review: Switch to valuation view to check P/E and P/S for entry attractiveness.
Recipe 4: Turnaround Stocks
Goal: Companies with previously declining earnings now showing recovery — bottom-fishing with fundamental confirmation.
--filters "fa_eps5years_neg,fa_epsqoq_pos,fa_salesqoq_pos,ta_highlow52w_b30h,ta_perf_13wup,cap_smallover,sh_avgvol_o200"
--view performance
Filter Code
Purpose
fa_eps5years_neg
Negative 5Y EPS growth (prior decline)
fa_epsqoq_pos
Positive QoQ EPS growth (recovery)
fa_salesqoq_pos
Positive QoQ sales growth (recovery)
ta_highlow52w_b30h
Within 30% of 52W high (not at bottom)
ta_perf_13wup
Positive 13-week performance
cap_smallover
Small cap and above
sh_avgvol_o200
Avg volume > 200K
Recipe 5: Momentum Trade Candidates
Goal: Short-term momentum leaders near 52W highs with increasing volume.
--filters "ta_sma50_pa,ta_sma200_pa,ta_highlow52w_b0to3h,ta_perf_4wup,sh_relvol_o1.5,sh_avgvol_o1000,cap_midover"
--view technical
Filter Code
Purpose
ta_sma50_pa
Price above 50-day SMA
ta_sma200_pa
Price above 200-day SMA
ta_highlow52w_b0to3h
Within 3% of 52W high
ta_perf_4wup
Positive 4-week performance
sh_relvol_o1.5
Relative volume > 1.5x
sh_avgvol_o1000
Avg volume > 1M
cap_midover
Mid cap and above
Recipe 6: Theme Screening (AI + Sub-theme Drill-Down)
Goal: Find mid-cap+ AI stocks focused on cloud infrastructure and compute acceleration.
--themes "artificialintelligence"
--subthemes "aicloud,aicompute"
--filters "cap_midover"
--view overview
Type
Value
Purpose
Theme
artificialintelligence
AI theme universe
Sub-theme
aicloud
Cloud & Infrastructure vertical
Sub-theme
aicompute
Compute & Acceleration vertical
Filter
cap_midover
Mid cap and above
Multi-theme example: --themes "artificialintelligence,cybersecurity" selects stocks tagged with either theme (OR logic via | grouping).
Tips: Iterative Refinement Pattern
Screening works best as a dialogue, not a one-shot query:
- Start broad — use 3-4 core filters to get an initial result set
- Review count — if too many results (>100), add tightening filters; if too few (<5), relax constraints
- Switch views — start with
overviewfor a quick scan, then switch tofinancialorvaluationfor deeper inspection
- Layer in technicals — after confirming fundamental quality, add
ta_filters to time entries
- Save and iterate — bookmark the URL, then adjust one filter at a time to understand its impact
Resources
references/finviz_screener_filters.md— Complete filter code reference with natural language keywords (includes industry code examples; full 142-code list is in the Industry Codes section)
scripts/open_finviz_screener.py— URL builder and Chrome opener