Minervini Trend Template Screener (FinBridge DB)
screen_minerviniScreen KR, US and/or TW stocks that pass Mark Minervini's 8-point Trend Template (from "Trade Like a Stock Market Wizard"), evaluated on the nightly indicators_latest snapshot (daily corporate-action-adjusted KR prices). Returns stage-2 uptrend leaders, sorted by relative strength by default.
The 8 criteria (all required):
Price above the 150-day and 200-day moving averages
150-day MA above the 200-day MA
200-day MA rising (vs ~1 month ago) [can be relaxed via require_sma200_rising]
50-day MA above both the 150- and 200-day MAs
Price above the 50-day MA
Price at least 'above_low_pct'% above its 52-week low (default 25)
Price within 'near_high_pct'% of its 52-week high (default 25)
RS rating >= 'rs_min' (default 70), where RS is the national percentile (1-99) of blended 3/6/12-month momentum vs the stock's own market
Optionally also require a Volatility Contraction Pattern base via require_vcp. VCP detection here is an APPROXIMATION (heuristic swing/contraction count, not a discretionary chart read) and can miss valid bases or flag false positives.
Args:
market: 'kr' (DART/KOSPI+KOSDAQ), 'us' (EDGAR), or 'all' (default)
rs_min: minimum RS percentile 1-99 (default 70; Minervini prefers higher)
near_high_pct: max % below the 52-week high (default 25; smaller = tighter/closer to high)
above_low_pct: min % above the 52-week low (default 25)
require_sma200_rising: require criterion 3 (default true)
require_vcp: also require a heuristically-detected VCP base (vcp_setup=1) (default false; VCP is approximate)
min_vol_avg20: optional minimum 20-day average volume (liquidity filter; recommended to exclude illiquid microcaps)
min_price: optional minimum close price (Minervini avoids low-priced/penny stocks; e.g. 10 for US$, 5000 for KRW)
sort_by: rs_pctile|rs_120d|ret_120d|ret_20d|pct_from_52w_hi|close (default rs_pctile)
order: 'asc'|'desc' (default 'desc'); limit: 1-50 (default 20); response_format: 'markdown'|'json'
Returns: {count, market, criteria:{rs_min, near_high_pct, above_low_pct, require_sma200_rising}, rows:[{name, source, ticker|stock_code, as_of, close, sma50, sma150, sma200, rs_pctile, rs_120d, pct_from_52w_hi, pct_from_52w_lo, ret_120d}]}.
Examples:
US leaders in a confirmed uptrend: {market:'us', min_vol_avg20: 500000}
Strict KR setups near highs with strong RS: {market:'kr', rs_min: 85, near_high_pct: 15, min_vol_avg20: 100000}
Use when: finding stage-2 momentum leaders (Minervini/CAN SLIM style). Don't use for a single stock's detail (get_technicals), fundamentals (screen_companies/get_valuation), or arbitrary technical signals (screen_technical). Notes: RS threshold of 70 keeps only stocks outperforming ~70% of their national market. KR/US/TW prices are adjusted for corporate actions but not dividends (indicators around dividend events may be slightly distorted); US history starts 2023-03-28 (volume from 2024-07-01) so long-window figures are shallower there. Market data, not investment advice. Errors: an empty result is not an error (count 0 = nothing passed today); 'database has not been built yet' -> ingest/indicators has not run.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows, 1-50 (default 20) | |
| order | No | Sort direction (default desc) | desc |
| market | No | Market: 'kr' (default), 'us', 'tw', or 'all'. Japan has no redistributable price source, so it is not screenable. | kr |
| rs_min | No | Minimum RS percentile (default 70) | |
| sort_by | No | Sort column (default rs_pctile) | rs_pctile |
| min_price | No | Minimum close price (Minervini avoids low-priced stocks; e.g. 10 for US$, 5000 for KRW) | |
| require_vcp | No | Also require a heuristically-detected VCP base (vcp_setup=1). VCP detection is approximate. | |
| above_low_pct | No | Min % above the 52-week low (default 25) | |
| min_vol_avg20 | No | Minimum 20-day average volume (liquidity filter) | |
| near_high_pct | No | Max % below the 52-week high (default 25) | |
| response_format | No | 'markdown' for a table, 'json' for compact machine-readable output | markdown |
| require_sma200_rising | No | Require the 200-day MA to be rising (criterion 3) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | ||
| count | Yes | ||
| notes | No | ||
| order | No | ||
| market | Yes | ||
| signals | No | ||
| sort_by | No | ||
| us_note | No | ||
| criteria | No |