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.
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
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
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
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
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.
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.
| Strategy | Year to date | Against IHSG | Trades |
|---|---|---|---|
| Dividend Investingfrom January 1, 2026 to October 2, 2026 | +2.59% | +33.76% vs IHSG | 14 |
| Swing Tradingfrom January 1, 2026 to October 2, 2026 | +2.07% | +33.23% vs IHSG | 28 |
| Breakout and Retestfrom January 1, 2026 to October 2, 2026 | +0.21% | +31.37% vs IHSG | 29 |
| Bandarmologyfrom January 1, 2026 to October 2, 2026 | -0.26% | +30.91% vs IHSG | 17 |
| Smart Money Conceptsfrom January 1, 2026 to October 2, 2026 | -3.28% | +27.88% vs IHSG | 77 |
| Foreign Flow Followingfrom January 1, 2026 to October 2, 2026 | -3.41% | +27.75% vs IHSG | 32 |
| Trend Following from Newsfrom January 1, 2026 to October 2, 2026 | -7.03% | +24.13% vs IHSG | 30 |
| Price Action at Key Levelsfrom January 1, 2026 to October 2, 2026 | -25.13% | +6.03% vs IHSG | 57 |
| Mean Reversionfrom January 1, 2026 to October 2, 2026 | -32.99% | -1.82% vs IHSG | 67 |
| Sector Rotationfrom January 1, 2026 to October 2, 2026 | -36.53% | -5.37% vs IHSG | 19 |
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.