mirror of
https://github.com/0xrsydn/idx-cli.git
synced 2026-11-07 09:45:36 +00:00
`idx ownership movements [SYMBOL]` and the MCP tool
`get_shareholder_movements` list reported changes in insiders' and major
holders' stakes, newest first, from Stockbit's
/insider/company/majorholder: IDX insider disclosures (any size, with the
trade price) and KSEI changes of holders at 5% and above (Stockbit's
estimated price). Stockbit filters by date range, holder id, action and
source; each page is 50 rows and one request, up to 10 pages, cached an
hour per page under every filter.
Rows keep exact signed share counts and the stake in basis points as
Stockbit rounds it; unknown action labels are kept as `other` rather than
dropped. JSON is {movements, more}; JSONL is one movement per line. The
command lives under `ownership` but needs no import, and `ownership`
commands now take --offline / --no-cache for it.
The per-symbol summary score is the next PR; docs/STOCKBIT.md records the
endpoint's parameters and action types as checked on 2026-11-03.
Claude-Session: https://claude.ai/code/session_01RqPPVeVDrnLoP7NUZmLRxY
79 lines
4.3 KiB
Markdown
79 lines
4.3 KiB
Markdown
# Roadmap
|
|
|
|
Open work only. Shipped behavior is described in `README.md` and `docs/`;
|
|
history lives in git.
|
|
|
|
## Stocks
|
|
- `market summary`: market breadth and an index overview (index levels alone
|
|
are already `stocks intraday ^JKSE` and `--provider stockbit stocks quote IHSG`)
|
|
- `market movers`: top gainers, losers, and volume
|
|
- `market sectors`: sector performance overview
|
|
- `screen query "<EXPR>"`: filter stocks by expression
|
|
- `screen presets` / `screen run <PRESET>`: built-in screener presets
|
|
(graduate `screen` out of `stocks` only if these grow into a richer workflow)
|
|
- Multi-period financial statements (today `financials` is single-period)
|
|
- Order book depth without a login: no free source exists (IDX sells delayed
|
|
depth to vendors); `stocks orderbook` needs the user's Stockbit login.
|
|
- Shareholder movement follow-ups (`docs/STOCKBIT.md`): `ownership movements
|
|
--summary`, a per-symbol score (net value, distinct buyers, share-plan
|
|
flag), then an event study before calling any of it a signal; joining
|
|
holders to ownership entities by name. Corporate-action follow-ups:
|
|
ex-dates of splits, bonuses and rights noted in `stocks history`, and the
|
|
`stock_dividend` / `reversesplit` row shapes once Stockbit lists one.
|
|
- Stockbit login follow-ups: hourly OHLCV from the session's `1w` chart (the
|
|
`1d` chart is per-minute closes only); confirming session 1 is
|
|
`STATE_NAME_SESSION_1` (session 2, `BREAK` and `MARKET_CLOSED` were
|
|
recorded on 2026-11-03), and when `has_foreign_bs` turns on with the day's
|
|
foreign figures; an
|
|
opt-in daily refresh so a session outlives the refresh token's week, once
|
|
it is known whether Stockbit caps a session's total life; and the sign-in
|
|
response (`/login/v6/*`, read over DevTools' `Fetch`) as a second signal
|
|
beside the `credentialStorage` cookie, should Stockbit rename or move it.
|
|
- Google sign-in in idx's browser window: Google refused it on 2026-10-31,
|
|
most likely over `--remote-debugging-port`. First confirm by trying Google
|
|
in a plain window on a throwaway profile; if that works, sign in with no
|
|
debugging flag and reopen the profile with it, on a blank page, to read the
|
|
cookie.
|
|
- Observe Stockbit's `market_hour.status` in the pre-open (08:45-09:00) and
|
|
the closing auction (15:50-16:00) before `--watch` or alerts build on it;
|
|
`open`, `break` and `close` are known, and the bid/offer gate hides the book
|
|
for anything but `open`.
|
|
- Bandarmology follow-ups: a daily series (per-session readings and the
|
|
cumulative top-N net) and a price-move phase (quiet accumulation, markup),
|
|
calibration of the `top_concentration_v1` thresholds across more sessions,
|
|
and a market-wide foreign flow screen from one IDX trading summary
|
|
- News beyond MSN in `news` / `get_company` (`docs/IDX_NEWS.md`): Google News
|
|
RSS per ticker, and IDX disclosures and exchange news through a
|
|
maintainer-published feed
|
|
|
|
## Workflow
|
|
- `watchlist`: named symbol sets usable by other commands
|
|
- `alerts`: price alerts with a daemon
|
|
- CSV/TSV output
|
|
- Additional providers (Alpha Vantage, Twelve Data); IDX's own site serves
|
|
only `stocks flow --source idx` today
|
|
|
|
## Agent integration
|
|
- JSON Schema export for command output
|
|
- Composite `analyze` command (quote, fundamentals, ownership, sentiment)
|
|
|
|
## Known limits
|
|
- `stocks broker` and `stocks bandar` show only IPOT's top 10 buyers and
|
|
sellers, ranked by gross lots, with figures of a million and more rounded
|
|
to one decimal.
|
|
- `stocks flow --source idx` depends on IDX's Cloudflare passing a
|
|
curl-impersonate profile (only `curl_safari184` in October 2026) and on the
|
|
network; the default IPOT source rounds to one decimal.
|
|
- Stockbit's terms call its data delayed at least 10 minutes and for
|
|
personal, non-commercial use (on 2026-10-23 the last trade was within a
|
|
minute of the clock); its CDN refuses some user agents with a 403
|
|
(`UPSTREAMBLOCKED`). The public page's best bid/offer sizes are not shown
|
|
yet; they are shares (equal to the session API's book on 2026-10-23).
|
|
- Yahoo can return `429` from datacenter IPs; requests retry with backoff but
|
|
can still fail.
|
|
- `stocks technical` reports the SMA200 trend as unavailable when fewer than
|
|
200 daily candles are returned.
|
|
- MSN's `low-pe` screen returns no priced stocks (`PARSEERROR`; still so on
|
|
2026-10-23, upstream; other filters work).
|
|
- MSN history for IDX is price-only (`1mo`, `3mo`, `1y`); Yahoo stays the
|
|
default OHLCV source.
|