METHODOLOGY

The terminal Indonesian retail was never supposed to have.

Foreign flow lifted straight off the exchange. Ownership filings nobody else bothers to parse. Named strategies with audited receipts, published whether they are green or red. And a frontier analyst that reads all of it before it says a word. Here is how every piece works, and where the edges are.

963 tickers · 683,996 price bars · 211,885 flow rows · 22,470 scored articles · counted at render, not written down

What we built. In order.

Five layers, each feeding the next. Primary records become evidence, evidence becomes strategies, strategies become receipts you can argue with.

01

Foreign flow, taken at the source

Most Indonesian tools buy foreign flow from a vendor and pass along whatever arrives. SahamKu takes the exchange's own daily per-stock trading summary directly from IDX: no reseller, no API key, no middleman with an incentive to round. Net buying in shares is reported fact. The rupiah value is derived from the day's volume weighted price, and we label it that way rather than pretending the exchange handed us a figure it never published.

211,885 TICKER-DAYS ON FILE · FIRST PARTY FROM IDX · EVERY WEEKDAY 17:30 WIB

02

Ownership, split eight ways

KSEI publishes who actually holds every listed share, broken into eight custodian investor types, once a month. It is the closest thing Indonesia has to an official record of the money behind a move, and almost nobody reads it because it arrives as a bulk publication nobody would open twice. We parse it, store it, and diff it. The month-on-month shift is the whole point: this is the bandarmology foundation that retail was never handed.

8 INVESTOR TYPES · 14 MONTHS ON FILE · 2025-07 TO 2026-08

03

The rest of the record, in one place

Daily open, high, low, close and volume across the full listed board. Key ratios refreshed after every close. Indonesian market news pulled from thirteen sources and scored for sentiment by a language model in both Bahasa and English, each article linked back to the publisher. Macro from Bank Indonesia, BPS and the World Bank. Separately these are four chores nobody does. Assembled, they are context.

963 TICKERS · 683,996 PRICE BARS · 22,470 SCORED ARTICLES

04

Strategies that compile, not slogans

11 of the strategies Indonesians actually trade, each written once as a declarative ruleset. That single definition drives both the live screener and the historical backtest, so what matches this morning and what would have happened last year are read off the same source of truth. A card that lacks the data it needs says so and refuses to run, rather than quietly screening on a subset and calling it a result.

11 RULESETS WRITTEN · 10 RUNNING · 1 LOCKED FOR MISSING DATA

05

A backtest that pays the bill

The engine walks the calendar one session at a time. Orders queued yesterday fill at today's open, the portfolio is marked at today's close, and the rules then see only data available through that close. Nothing is ever filled on the bar that produced its signal, and indicators return nothing during warm-up rather than a guess. Costs are the real IDX retail ones, taken out of the cash flow, and every run is benchmarked against simply holding IHSG.

0.15% BUY · 0.25% SELL · 0.10% SLIPPAGE EACH WAY · 50 ENGINE TESTS PASSING

BY THE NUMBERS

Read live from the database. Every page load.

963
Listed names covered
683,996
Daily price bars on file
211,885
Foreign flow ticker-days
22,470
News articles scored
14mo
KSEI ownership on file
11
Strategy rulesets written

These counts are queried when this page renders. Nothing on this band was typed into the copy, which is the only way a claim like this stays true six months from now.

THE RECEIPTS

We publish the losers too. That is the point.

Every unlocked ruleset is run against real IDX history, after costs, benchmarked against holding IHSG. The results are recomputed nightly and printed here in full, ranked, red numbers included. A track record you can only see when it flatters the product is not a track record.

StrategyYear to dateAgainst IHSGTrades
Dividend Investingfrom January 1, 2026 to October 2, 2026+2.59%+33.76% vs IHSG14
Swing Tradingfrom January 1, 2026 to October 2, 2026+2.07%+33.23% vs IHSG28
Breakout and Retestfrom January 1, 2026 to October 2, 2026+0.21%+31.37% vs IHSG29
Bandarmologyfrom January 1, 2026 to October 2, 2026-0.26%+30.91% vs IHSG17
Smart Money Conceptsfrom January 1, 2026 to October 2, 2026-3.28%+27.88% vs IHSG77
Foreign Flow Followingfrom January 1, 2026 to October 2, 2026-3.41%+27.75% vs IHSG32
Trend Following from Newsfrom January 1, 2026 to October 2, 2026-7.03%+24.13% vs IHSG30
Price Action at Key Levelsfrom January 1, 2026 to October 2, 2026-25.13%+6.03% vs IHSG57
Mean Reversionfrom January 1, 2026 to October 2, 2026-32.99%-1.82% vs IHSG67
Sector Rotationfrom January 1, 2026 to October 2, 2026-36.53%-5.37% vs IHSG19

Measured through October 2, 2026 · after costs · recomputed nightly

The cost model, applied to every fill

Slippage moves the price against you first, then commission comes out of the cash flow. A backtest that skips this step is a screenshot, not a result.

Buy commission
0.15%
Sell commission, levy included
0.25%
Slippage, each way
0.10%
Execution
Next session open
Lot size
100 shares

Why the number is trustworthy

The engine cannot see tomorrow, by construction rather than by promise.

  • Orders queued on one session fill at the next session's open, never on the bar that produced the signal.
  • The rules read only data available through the close being marked, so a revision cannot leak backwards.
  • Indicators return nothing during warm-up instead of a partial average dressed up as a value.
  • Every closed trade, exit reason and drawdown is listed, so you can find the one trade that made the year.
  • Fifty tests hold the engine to this behaviour on every commit.

THE AI DESK

An analyst that has read everything before it opens its mouth.

Ask a chatbot about IDX and you get a horoscope, because it is working from memory. The SahamKu desk is handed a dossier first: twelve numbered sections covering the index and breadth, sector performance, movers, twenty days of first-party foreign flow, KSEI ownership shifts by investor type, live signals, every scored headline, all strategy matches with their audited results, fundamentals and price structure for each name in play, the dividend and macro calendar, and a freshness table that admits what is stale. Each section carries its own as-of date, so the model can tell a three week old signal from last night’s close.

Then it goes to the open web for the overnight global tape and cites what it found. Then it commits. Ranked ideas with entries, targets, stops and invalidation levels. Scenarios with probabilities attached. And a footer where it declares, in its own words, what it was unsure about. Numbers come from the dossier or from a cited source. There is no third option.

Scoutfast

A read of the tape while you are still on the platform. Good for a name you want an opinion on before the open.

Analystbalanced

The default. Reads the full dossier, browses for the overnight tape, and writes a ranked view with levels attached.

Strategistdeepest

Maximum reasoning effort. Slow on purpose, for the position you are about to size up rather than the one you are curious about.

The Morning Brief, 09:00 WIB

One structured pre-market brief, written every trading day, an hour before the opening auction. A traffic-light checklist of what matters, the scenarios in play, a ranked shortlist of names, and the web sources it read overnight, cited. It is waiting when you sit down, and it is dated, so you always know whether you are reading today or yesterday.

Weekdays only · no market, no brief

What a desk run guarantees

What it reads
12 numbered dossier sections
Timestamps
One per section, not one per page
Live web
Every run, with URL citations
Commits to
Entry, target, stop, invalidation
Scenarios
Named, with probabilities
Signs off with
A self-declared honesty footer

THE HONESTY LAYER

What we refuse to fake.

Every domain in the terminal carries a staleness threshold drawn from its real cadence. Cross it and the interface says so, in red, everywhere that number appears. An empty panel is a legitimate answer here, and a competitor filling that panel with an estimate is not being more helpful. They are being less honest.

PRICES 1 TRADING DAY · NEWS 12 HOURS · SIGNALS 14 DAYS · OWNERSHIP 75 DAYS · FLOW 3 TRADING DAYS

There is no intraday tape

We hold daily bars, not ticks and not the order book. Anything that needs to watch a level break in real time is out of scope, and the one ruleset that needs it stays locked instead of shipping on a proxy.

KSEI names a type, not a person

Custodian filings tell you that foreign corporates added and local individuals sold. They do not name the holder. Anyone selling you a named Indonesian shareholder list off KSEI is selling you a guess.

The signal record is still young

Signal accuracy against 30, 60 and 90 day forward returns is recorded every cycle, but the sample is not yet large enough to publish a hit rate. Confidence is a model output, not a measured frequency, and we will not print it as one.

The house rules

These are not preferences. They are the reasons a panel is allowed to look empty.

Estimate a missing figure
Never
Backfill a signal after the fact
Never
Reword stale data as current
Never
Show a number without a timestamp
Never
Fill an empty table with a placeholder
Never

A backtest is not a forecast. Sentiment reads text, not markets. Ownership data describes what already happened. SahamKu holds no non-public information and makes no recommendation.

Pipelines run as scheduled jobs against a Postgres database. Schedule times are UTC, and the IDX session runs 09:00 to 15:00 Jakarta time, which is 02:00 to 08:00 UTC. You carry your own risk.

Open the TerminalEverything above, on one screen.

Every smart decision on IDX starts here.

Run on facts. Not feelings.

Open the Terminal