Files
Achmad c48e188b81 Update README and SKILL.md for get_historical_candles date/time range
Document the new from_date/to_date parameters, supported date formats,
resolution options, and usage examples including intraday time windows.
2026-05-17 08:14:10 +00:00

26 KiB
Raw Permalink Blame History

SKILL: Indonesian Stock Analysis Using TradingView Screener MCP

Overview

Use the TradingView Screener MCP tools to analyze Indonesian stocks (IDX: Jakarta Stock Exchange) by combining fundamental analysis (company financial health) and technical analysis (price/volume action). This skill provides structured methodologies to produce actionable stock analysis reports.

Indonesian stocks are accessed via market_type="stocks" and market_country="indonesia".


Available MCP Tools

Tool Purpose
get_stock_quotes(tickers=["IDX:SYMBOL"]) Get real-time price & indicators for 1+ tickers
screen_market(market_country="indonesia", ...) Screen across all IDX stocks with filters
find_top_gainers(market_country="indonesia") Top gainers by % change
find_top_losers(market_country="indonesia") Top losers by % change
find_most_active(market_country="indonesia") Most active by volume
technical_scan(market_country="indonesia", ...) Screen using technical conditions
fundamental_scan(market_country="indonesia", ...) Screen using fundamental metrics
get_historical_candles(ticker, resolution, ...) Fetch OHLCV candles with pattern detection; supports date/time ranges
check_holidays(mode="upcoming", limit=10) Check IDX holidays (SQLite-cached, refresh=True to re-fetch)
check_holidays(mode="check", date="2026-05-14") Check if a specific date is a holiday
check_holidays(mode="range", start_date="...", end_date="...") List holidays in a date range

1. Get Indonesian Stock Data

1.1 Quote Data for Specific Stocks

get_stock_quotes({
  "tickers": ["IDX:BBRI", "IDX:TLKM", "IDX:ASII"],
  "columns": ["name","close","change","volume","RSI","MACD.macd","MACD.signal","SMA50","SMA200","market_cap_basic","price_earnings_ttm","price_to_book_fq","dividends_yield_current","return_on_equity","sector","industry"]
})

1.2 Screen Indonesian Market

screen_market({
  "market_country": "indonesia",
  "columns": ["name","close","change","volume","RSI","market_cap_basic","price_earnings_ttm"],
  "order_by": "volume",
  "limit": 50
})

1.3 Fundamental Screen

fundamental_scan({
  "market_country": "indonesia",
  "filters": [
    {"field": "market_cap_basic", "operator": ">", "value": 10000000000000},
    {"field": "price_earnings_ttm", "operator": "between", "value": [5, 20]},
    {"field": "dividends_yield_current", "operator": ">", "value": 2},
    {"field": "return_on_equity", "operator": ">", "value": 10}
  ],
  "columns": ["name","close","market_cap_basic","price_earnings_ttm","price_to_book_fq","dividends_yield_current","return_on_equity","debt_to_equity","profit_margin","sector"]
})

1.4 Technical Scan

technical_scan({
  "market_country": "indonesia",
  "filters": [
    {"field": "RSI", "operator": "<", "value": 35},
    {"field": "close", "operator": "above_pct", "value": ["SMA200", 0.95]}
  ],
  "columns": ["name","close","change","RSI","SMA50","SMA200","volume","relative_volume_10d_calc"]
})

2. Fundamental Analysis Framework

Core Metrics Table

Metric Field Name What It Tells You Healthy Range (IDX)
Market Cap market_cap_basic Company size (in IDR) Large-cap: >10T IDR
P/E Ratio price_earnings_ttm Price per unit of earnings 8-18 (value); 18-30 (growth)
P/B Ratio price_to_book_fq Price vs book value <2.5 for banks; <1.5 for cyclicals
P/S Ratio price_to_sales Price per unit of revenue <3 (undervalued) >5 (premium)
P/CF Ratio price_to_cash_flow Price vs operating cash flow <15 (reasonable)
EPS (TTM) earnings_per_share_diluted_ttm Profit per share Positive & growing
EPS Growth earnings_per_share_diluted_yoy_growth_ttm Earnings momentum >10% YoY
Revenue Growth revenue_growth Top-line growth >5% (mature) >15% (growth)
Earnings Growth earnings_growth Bottom-line growth Should track revenue growth
ROE return_on_equity Return on shareholder equity >12% (good) >20% (excellent)
ROA return_on_assets Return on total assets >5% (good)
Profit Margin profit_margin Net profit margin >10% (good)
Operating Margin operating_margin Operating efficiency >15% (good)
Debt/Equity debt_to_equity Leverage ratio <1 (conservative) <2 (moderate)
Current Ratio current_ratio_fq Liquidity >1.5 (safe)
Dividend Yield dividends_yield_current Dividend return 2-6% (varies by sector)
Beta beta_1_year Volatility vs market 0.5-1.5 (typical)
Sector sector Industry classification
Industry industry Sub-industry

2.1 Valuation Analysis

Use this combo to assess if a stock is undervalued, fair, or overvalued:

P/E    + P/B    + P/S    + Dividend Yield + EPS Growth  → Valuation Picture
<10    + <1     + <1     + >4%             + positive   → Deep value
10-15  + 1-2    + 1-3    + 2-4%           + 5-15%      → Fair value
15-25  + 2-4    + 3-6    + 1-2%           + 15-25%     → Growth premium
>25    + >4     + >6     + <1%             + >25%       → Overvalued / high growth

2.2 Quality Analysis (PEG + ROE + Debt)

PEG Ratio = P/E ÷ EPS Growth
  - <1.0    → Undervalued relative to growth
  - 1.0-2.0 → Fairly valued
  - >2.0    → Overvalued relative to growth

Quality Score (0-3):
  - ROE > 15%         → +1
  - D/E < 1.0         → +1
  - Profit Margin > 10% → +1

2.3 Indonesian Market-Specific Notes

  • Sector concentration: IDX is dominated by Financials (banks: BBRI, BMRI, BBNI), Consumer (UNVR, ICBP, INDF), Telecom (TLKM), Mining/Energy (ADRO, ITMG, BUMI), and Infrastructure (JSMR, TLKM).
  • Liquidity matters: Only stocks with daily volume > 1M shares are reliably tradeable.
  • Foreign ownership: Sudden changes affect price — track institutional/insider ownership.
  • Regulatory influence: Government policy (energy, mining, banking) heavily impacts IDX.
  • Rupiah (IDR) risk: Currency depreciation hurts import-heavy sectors, benefits export/mining.
  • Dividend season: Most IDX companies pay dividends once a year around April-June.
  • ARB / ARA limits: IDX has daily price limits (7% down = ARB, up = ARA typically for most stocks, but can vary). Use low/high to check.

3. Technical Analysis Framework

Core Indicators

Indicator Field What It Does How to Interpret
RSI (14) RSI Momentum oscillator (0-100) >70 overbought, <30 oversold
RSI (5) RSI.5 Short-term momentum Same, faster signals
MACD MACD.macd, MACD.signal, MACD.histogram Trend-momentum Line > Signal → bullish, < Signal → bearish
Stochastic Stoch.K, Stoch.D %K & %D lines >80 overbought, <20 oversold; K crosses D → signal
Bollinger Bands BB.upper, BB.middle, BB.lower Volatility bands Touch upper → overextended; touch lower → potential bounce
SMA 20 SMA20 Short-term trend Price > SMA20 → short-term uptrend
SMA 50 SMA50 Medium-term trend Price > SMA50 → medium-term uptrend
SMA 200 SMA200 Long-term trend Price > SMA200 → long-term bull market
EMA 5/20/50/200 EMA5, EMA20, EMA50, EMA200 Exponential MA (faster response) Same as SMA but more current-price-sensitive
ADX ADX Trend strength >25 → trending; <25 → ranging
ATR ATR Volatility measure Higher → wider stops needed
CCI (20) CCI20 Commodity Channel Index >100 overbought, <-100 oversold
OBV OBV On-Balance Volume Confirms price trends; divergence warns of reversal
Williams %R Williams %R Momentum (-100 to 0) <-80 oversold, >-20 overbought
Awesome Osc AO Momentum (SMA5-SMA34) >0 bullish momentum, <0 bearish
VWAP VWAP Volume-weighted avg price Above VWAP → bullish intraday
52W High/Low 52 Week High, 52 Week Low Yearly range Near 52W high → strong trend; near 52W low → weak
Rel Volume relative_volume_10d_calc Volume vs 10d avg >1.5 → unusually active
Tech Rating TechRating_1D Aggregate daily rating 0-6 range (6 = best)

3.1 Trend Confirmation Pattern

Bullish Setup:
  - Price > SMA50 > SMA200 (golden arrangement)
  - SMA50 > SMA200 (golden cross already happened)
  - RSI between 40-70 (room to run)
  - MACD > Signal line (momentum up)
  - ADX > 25 (trending)

Bearish Setup:
  - Price < SMA50 < SMA200 (death arrangement)
  - SMA50 < SMA200 (death cross)
  - RSI between 30-50
  - MACD < Signal line
  - ADX > 25 (trending)

3.2 Reversal / Bounce Pattern

Potential Bottom:
  - RSI < 30 (oversold)
  - Price near BB.lower or below SMA200
  - MACD histogram narrowing (bearish momentum fading)
  - Stoch.K crossing above Stoch.D near <20
  - OBV diverging bullish (price lower, OBV higher)

Potential Top:
  - RSI > 70 (overbought)
  - Price near BB.upper or far above SMA200
  - MACD histogram narrowing (bullish momentum fading)
  - Stoch.K crossing below Stoch.D near >80
  - OBV diverging bearish (price higher, OBV lower)

3.3 Volume Analysis

relative_volume_10d_calc:
  - > 2.0  → Extraordinary volume (breakout / breakdown)
  - 1.5-2.0 → Above average (institutional interest)
  - 1.0-1.5 → Normal activity
  - < 0.5  → Low interest (illiquid)

Powerful signals:
  - Price up + Volume > 1.5x → Strong accumulation
  - Price up + Volume < 0.7x → Weak rally (may reverse)
  - Price down + Volume > 1.5x → Strong distribution
  - Price down + Volume < 0.7x → Exhaustion (may bottom)

4. Comprehensive Analysis Template

Use this structure when asked to analyze a specific Indonesian stock. Fetch data in a single batch call using get_stock_quotes with ALL relevant columns.

Required Data Fetch

get_stock_quotes({
  "tickers": ["IDX:{TICKER}"],
  "columns": [
    "name","description","sector","industry","exchange","currency",
    "close","open","high","low","volume","change","change_abs",
    "market_cap_basic","price_earnings_ttm","earnings_per_share_diluted_ttm",
    "earnings_per_share_diluted_yoy_growth_ttm","price_to_book_fq","price_to_sales",
    "price_to_cash_flow","dividends_yield_current","dividends_payout_ratio",
    "return_on_equity","return_on_assets","operating_margin","profit_margin",
    "revenue_growth","earnings_growth","debt_to_equity","current_ratio_fq",
    "beta_1_year","float","shares_outstanding",
    "RSI","RSI.5","Stoch.K","Stoch.D","MACD.macd","MACD.signal","MACD.histogram",
    "BB.upper","BB.middle","BB.lower","SMA20","SMA50","SMA200",
    "ADX","ATR","CCI20","OBV","AO","Williams %R",
    "VWAP","52 Week High","52 Week Low","relative_volume_10d_calc","volume_ma_10",
    "TechRating_1D"
  ]
})

4.1 Analysis Report Format

# Stock Analysis: {NAME} ({TICKER})

## Company Overview
- Sector: {sector}
- Industry: {industry}
- Market Cap: {market_cap_basic} IDR
- Description: {description}

## Price Snapshot
- Current Price: {close}
- Daily Change: {change}% ({change_abs})
- 52W Range: {52 Week Low} - {52 Week High}
- VWAP: {VWAP}

## Fundamental Analysis

### Valuation
- P/E (TTM): {price_earnings_ttm} — [Undervalued/Fair/Overvalued — explain vs sector avg]
- P/B: {price_to_book_fq} — [Price vs book value assessment]
- P/S: {price_to_sales}
- P/CF: {price_to_cash_flow}
- Dividend Yield: {dividends_yield_current}%

### Profitability
- ROE: {return_on_equity}%
- ROA: {return_on_assets}%
- Operating Margin: {operating_margin}%
- Profit Margin: {profit_margin}%

### Growth & Momentum
- EPS (TTM): {earnings_per_share_diluted_ttm}
- EPS YoY Growth: {earnings_per_share_diluted_yoy_growth_ttm}%
- Revenue Growth: {revenue_growth}%
- Earnings Growth: {earnings_growth}%

### Financial Health
- Debt/Equity: {debt_to_equity}
- Current Ratio: {current_ratio_fq}
- Beta (1Y): {beta_1_year}

## Technical Analysis

### Trend
- Price vs SMA20: {close vs SMA20}
- Price vs SMA50: {close vs SMA50}
- Price vs SMA200: {close vs SMA200}
- ADX: {ADX} — [Trending (ADX>25) or Ranging]
- Overall Trend: [Bullish/Bearish/Neutral]

### Momentum
- RSI (14): {RSI} — [Overbought/Oversold/Neutral]
- RSI (5): {RSI.5}
- MACD: {MACD.macd} vs Signal {MACD.signal} — [Bullish/Bearish crossover? Histogram {MACD.histogram}]
- Stochastic: %K {Stoch.K} vs %D {Stoch.D}
- CCI (20): {CCI20}
- Williams %R: {Williams %R}
- Awesome Osc: {AO} — [Positive=Bearish momentum waiting / Negative=Bearish / Positive=Bulish / Negative=Bearish momentum waiting]

### Volatility
- ATR: {ATR}
- Bollinger Bands Position: {close relative to BB.upper/BB.lower}
- 52W Range Position: {(close - 52W Low) / (52W High - 52W Low) * 100}%

### Volume
- Volume: {volume}
- vs 10d Avg: {relative_volume_10d_calc}x
- OBV: {OBV}
- Vol MA(10): {volume_ma_10}

### Technical Rating
- TechRating_1D: {TechRating_1D}/6

## Summary & Verdict

### Fundamental Verdict
- [BUY / HOLD / SELL] — Based on valuation, profitability, growth, and financial health

### Technical Verdict
- [BUY / HOLD / SELL] — Based on trend, momentum, volume, and volatility

### Overall Recommendation
- [Strong Buy / Buy / Hold / Sell / Strong Sell]
- Key Catalysts/Risks:
  1. ...
  2. ...
  3. ...

4.2 Interpretation for Specific Indonesian Sectors

Financials / Banks (BBRI, BMRI, BBNI, BBTN):

  • Focus on: P/B (<1.5 is cheap), ROE (>15%), NIM, D/E
  • Healthy D/E is higher for banks (5-10x is normal)
  • Low P/B + ROE > 15% = classic Graham-style buy for Indonesian banks

Consumer Goods (UNVR, ICBP, INDF, HMSP, GGRM):

  • Focus on: Profit Margin > 12%, Revenue Growth > 5%, Dividend Yield
  • Low D/E expected (< 0.8)
  • Stable performers during economic uncertainty

Mining / Energy (ADRO, ITMG, PTBA, MEDC):

  • Focus on: P/E (cyclical — buy at high P/E when earnings are low, avoid low P/E when earnings peak)
  • Revenue Growth & Earnings Growth are commodity-price-driven
  • High dividend yields common in coal sector

Infrastructure / Telco (TLKM, ISAT, JSMR, EXCL):

  • Focus on: D/E (cap-ex heavy), Profit Margin, Revenue Growth
  • P/E range 10-20 is normal for TLKM

Property / Real Estate (BSDE, PWON, CTRA, SMRA):

  • Focus on: P/B, Current Ratio, D/E
  • Highly sensitive to interest rates and BI policy

4.3 Rating Scale

When combining fundamental + technical into an overall verdict:

Score Rating Criteria
4.5-5.0 Strong Buy Undervalued + Bullish technical + Strong financials
3.5-4.4 Buy Fair/Undervalued + Bullish/neutral technical + Good financials
2.5-3.4 Hold Fair value + mixed technical + average financials
1.5-2.4 Sell Overvalued + bearish technical + weak financials
1.0-1.4 Strong Sell Overvalued + bearish technical + poor financials

5. Quick Screening Commands

Find Undervalued Large-Caps in IDX

fundamental_scan({
  "market_country": "indonesia",
  "filters": [
    {"field": "market_cap_basic", "operator": ">", "value": 10000000000000},
    {"field": "price_earnings_ttm", "operator": "between", "value": [5, 15]},
    {"field": "price_to_book_fq", "operator": "<", "value": 2},
    {"field": "return_on_equity", "operator": ">", "value": 12}
  ],
  "columns": ["name","close","change","market_cap_basic","price_earnings_ttm","price_to_book_fq","return_on_equity","dividends_yield_current","sector"],
  "order_by": "market_cap_basic",
  "limit": 20
})

Find Oversold Bounce Candidates

technical_scan({
  "market_country": "indonesia",
  "filters": [
    {"field": "RSI", "operator": "<", "value": 30},
    {"field": "close", "operator": "above_pct", "value": ["SMA200", 0.9]},
    {"field": "relative_volume_10d_calc", "operator": ">", "value": 1.2}
  ],
  "columns": ["name","close","change","RSI","SMA200","relative_volume_10d_calc","MACD.histogram"],
  "order_by": "RSI",
  "limit": 20
})

Find Breakout Candidates

technical_scan({
  "market_country": "indonesia",
  "filters": [
    {"field": "RSI", "operator": "between", "value": [50, 70]},
    {"field": "close", "operator": ">", "value": "SMA50"},
    {"field": "close", "operator": ">", "value": "SMA200"},
    {"field": "relative_volume_10d_calc", "operator": ">", "value": 1.5},
    {"field": "ADX", "operator": ">", "value": 25}
  ],
  "columns": ["name","close","change","RSI","SMA50","SMA200","ADX","relative_volume_10d_calc"],
  "order_by": "relative_volume_10d_calc",
  "limit": 20
})

Find High-Dividend Stocks

fundamental_scan({
  "market_country": "indonesia",
  "filters": [
    {"field": "dividends_yield_current", "operator": ">", "value": 4},
    {"field": "market_cap_basic", "operator": ">", "value": 5000000000000},
    {"field": "price_earnings_ttm", "operator": "<", "value": 20},
    {"field": "dividends_payout_ratio", "operator": "<", "value": 80}
  ],
  "columns": ["name","close","dividends_yield_current","dividends_payout_ratio","price_earnings_ttm","market_cap_basic","sector"],
  "order_by": "dividends_yield_current",
  "limit": 20
})

Find Growth Stocks

fundamental_scan({
  "market_country": "indonesia",
  "filters": [
    {"field": "revenue_growth", "operator": ">", "value": 15},
    {"field": "earnings_growth", "operator": ">", "value": 10},
    {"field": "return_on_equity", "operator": ">", "value": 10},
    {"field": "market_cap_basic", "operator": ">", "value": 1000000000000}
  ],
  "columns": ["name","close","revenue_growth","earnings_growth","return_on_equity","price_earnings_ttm","market_cap_basic","sector"],
  "order_by": "revenue_growth",
  "limit": 20
})

5. Historical Candle Data

Use get_historical_candles to retrieve OHLCV (Open, High, Low, Close, Volume) candlestick data for trend and pattern analysis. The tool also auto-detects common candlestick patterns (Doji, Hammer, Engulfing, etc.) on the latest candle.

Resolution Options

Resolution Value Use When
1 minute "1" Intraday scalping / micro windows
5 minutes "5" Short intraday sessions
15 minutes "15" Intraday analysis
30 minutes "30" Half-session analysis
1 hour "60" Multi-day intraday view
4 hours "240" Swing trade context
Daily "D" Standard daily chart (default)
Weekly "W" Long-term trend
Monthly "M" Macro view

Query Forms

# Last N daily candles (count-based)
get_historical_candles("IDX:BBRI", resolution="D", count=30)

# Specific date range — daily candles
get_historical_candles("IDX:BBRI", from_date="2026-05-08", to_date="2026-05-13")

# Specific date range — hourly candles
get_historical_candles("IDX:BBRI", resolution="60", from_date="2026-05-08", to_date="2026-05-13")

# From a date until now — daily
get_historical_candles("IDX:BBRI", from_date="2026-05-01")

# Intraday time window — 1-minute candles
get_historical_candles("IDX:BBRI", resolution="1", from_date="2026-05-17 09:00", to_date="2026-05-17 12:00")

Date format: YYYY-MM-DD or YYYY-MM-DD HH:MM or YYYY-MM-DD HH:MM:SS — all interpreted as UTC. IDX Session 1 opens at 02:00 UTC (09:00 WIB), Session 2 closes at 08:50 UTC (15:50 WIB).

When to Use Candle Data

  • Pattern detection: Doji, Hammer, Shooting Star, Engulfing — confirms entry/exit signals from screener scans
  • Price action around events: Earnings dates, BI rate decisions, commodity price shocks
  • Holiday gap analysis: Fetch candles across a multi-day holiday break to measure the gap at reopen
  • Intraday session analysis: Compare Session 1 vs Session 2 behavior using hourly resolution
  • Trend confirmation: Check that a breakout screener result is backed by clean candle structure

6. Pre-Analysis Checklist

Before running any analysis, always perform these 3 preliminary checks:

6.1 Check Today's Date & Market Status

IDX (Bursa Efek Indonesia) trading schedule:

  • Session 1: 09:00 12:00 WIB
  • Session 2: 13:30 15:50 WIB (pre-closing: 15:50-16:00)
  • Trading days: Monday Friday
  • Weekend: Closed Saturday & Sunday

Use bash with date to check today's date and day-of-week. Determine if market is open/closed.

6.2 Check Indonesian Holidays (MCP Tool — SQLite Cached)

IDX is also closed on national holidays. Holidays can cause multi-day breaks (e.g., 4 days off for long weekends), which significantly impacts BSJP and short-term strategies.

Use the check_holidays MCP tool instead of the shell script — the data is stored in holidays.db (SQLite) so subsequent calls are instant:

# Upcoming holidays (default, next 10):
check_holidays(mode="upcoming", limit=10)

# All holidays for a given year:
check_holidays(mode="year", year=2026)

# Check if a specific date is a holiday:
check_holidays(mode="check", date="2026-05-14")

# List holidays in a date range:
check_holidays(mode="range", start_date="2026-05-01", end_date="2026-05-31")

# Force re-fetch from API (bypass cache):
check_holidays(mode="upcoming", refresh=True)

The first call fetches from the API and caches. Subsequent calls read directly from SQLite. Pass refresh=True to force a fresh fetch.

Requires API_CO_ID_KEY in .env.

Holiday impact on analysis:

  • If today is the last trading day before a multi-day holiday, BSJP entries become extended holds (2-4 days instead of overnight). The gap at reopening can be larger.
  • Historical candle data showing "flat" prices across dates may actually mean the market was closed — that the stock didn't move.
  • Always cross-reference dates against the holiday calendar before drawing conclusions about price action.

6.3 Include Market Calendar in Every Report

Analysis Date: {YYYY-MM-DD HH:MM WIB}
Day: {Monday/Tuesday/...}
Market Status: [OPEN / CLOSED]
Last Trading Day: {YYYY-MM-DD}
Next Trading Day: {YYYY-MM-DD}
Upcoming Holidays: {list any within next 14 days}
Holiday Note: {if next trading day is after a break, flag this}

6.4 News Search for Target Stocks

Before analyzing any stock, search for recent news that may affect price:

websearch(query="{Stock Name} {Ticker} berita saham terbaru {YYYY}")

Key things to look for:

  • Earnings releases / financial reports
  • Insider buying/selling
  • Sector-wide news (commodity prices, regulation changes)
  • Corporate actions (stock split, rights issue, buyback)
  • Analyst ratings changes

Include relevant news in the report under a "Recent News & Catalysts" section.

6.5 Determine Analysis Type

Depending on what the user asks, pick one of these paths:

Analysis Type Data Needed
Full fundamental + technical All columns (Section 4 template)
BSJP (Beli Sore Jual Pagi) Top losers today, RSI, volume, BB.lower, market cap
Breakout scan RSI 50-70, SMA50/200, ADX >25, rel volume >1.5
Oversold bounce RSI <30, near SMA200/SMA50, volume confirmation
Dividend hunting Dividend yield, payout ratio, P/E, market cap

7. Workflow: How to Run Full Analysis

Step 0 — Run Pre-Analysis Checklist (Section 6):

date → check today's date & day
check_holidays(mode="upcoming") → check upcoming IDX holidays (SQLite-cached)
check_holidays(mode="check", date="YYYY-MM-DD") → verify if key dates are holidays
websearch → check news for target ticker

Step 1 — Get company overview & fundamentals:

get_stock_quotes(tickers=["IDX:BBRI"], columns=[all fundamental + general fields])

Step 2 — Get technical indicators:

get_stock_quotes(tickers=["IDX:BBRI"], columns=[all technical fields + price fields])

Step 3 — Get sector context:

screen_market({
  "market_country": "indonesia",
  "filters": [{"field": "sector", "operator": "==", "value": "Financials"}],
  "columns": ["name","close","change","price_earnings_ttm","return_on_equity","market_cap_basic"],
  "limit": 10
})

Step 4 — Produce report following Section 4 template.


8. Field Reference (for constructing queries)

Indonesian Stock Ticker Format

  • IDX:BBRI — Bank Rakyat Indonesia
  • IDX:TLKM — Telkom Indonesia
  • IDX:ASII — Astra International
  • IDX:UNVR — Unilever Indonesia
  • IDX:ICBP — Indofood CBP
  • IDX:INDF — Indofood Sukses Makmur
  • IDX:BMRI — Bank Mandiri
  • IDX:BBNI — Bank Negara Indonesia
  • IDX:ADRO — Adaro Energy
  • IDX:ITMG — Indo Tambangraya Megah
  • IDX:JSMR — Jasa Marga
  • IDX:PGAS — Perusahaan Gas Negara
  • IDX:SMGR — Semen Indonesia
  • IDX:CTRA — Ciputra Development
  • IDX:PWON — Pakuwon Jati
  • IDX:BSDE — Bumi Serpong Damai
  • IDX:EXCL — XL Axiata
  • IDX:ISAT — Indosat
  • IDX:HMSP — HM Sampoerna
  • IDX:GGRM — Gudang Garam

All Available Columns (for easy copy-paste)

General:    name, description, ticker, exchange, market, sector, industry, country, currency, type, typespecs, is_primary
Price:      open, high, low, close, volume, change, change_abs, premarket_change, postmarket_change, VWAP, 52 Week High, 52 Week Low
Fundamental: market_cap_basic, price_earnings_ttm, earnings_per_share_diluted_ttm, earnings_per_share_diluted_yoy_growth_ttm, dividends_yield_current, dividends_payout_ratio, price_to_book_fq, price_to_sales, price_to_cash_flow, return_on_equity, return_on_assets, operating_margin, profit_margin, revenue_growth, earnings_growth, debt_to_equity, current_ratio_fq, beta_1_year, float, shares_outstanding, insider_ownership, institutional_ownership, AnalystRating
Technical:  RSI, RSI.5, Stoch.K, Stoch.D, MACD.macd, MACD.signal, MACD.histogram, BB.upper, BB.middle, BB.lower, SMA, EMA, SMA20, SMA50, SMA200, EMA5, EMA20, EMA50, EMA200, ADX, ATR, AO, OBV, CCI20, ROC, Williams %R, relative_volume_10d_calc, volume_ma_10, TechRating_1D