An AI agent that monitors every Indonesian equity mutual fund (reksadana saham), tracks which stocks the fund managers hold most and which ones they're accumulating / trimming month over month — then pushes the report to Telegram.
Reksadana Radar pulls each fund's monthly Fund Fact Sheet holdings (via the Pasardana API), computes a consensus of where the "big money" is positioned, and detects allocation shifts month-over-month. The goal: help retail investors position their portfolio alongside the stocks the manager consensus considers "safe".
- Consensus — most widely held stocks, measured by total Rupiah exposure (fund AUM × weight%) and the share of funds holding them.
- MoM accumulation — stocks whose exposure rose versus last month (including brand-new positions).
- MoM distribution — stocks being trimmed or fully exited.
- AI summary — a short Bahasa-Indonesia narrative (optional, via Claude).
Beyond the monthly push report, an interactive Telegram bot lets you browse
historical data through / commands (/consensus, /movers, /stock, etc.).
git clone https://github.com/brianabdl/reksadana-radar.git && cd reksadana-radar
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
cp .env.example .env # fill in Telegram token (+ optional ANTHROPIC_API_KEY)
# Test connectivity, then send the first report
PYTHONPATH=src .venv/bin/python -m reksadana_radar test-telegram
PYTHONPATH=src .venv/bin/python -m reksadana_radar runFill in .env:
TELEGRAM_BOT_TOKEN— from @BotFather.TELEGRAM_CHAT_ID— your chat id (use @userinfobot, or checkgetUpdates).ANTHROPIC_API_KEY— optional; leave empty for a numbers-only report without the AI narrative.
Tune behavior (AUM threshold, fund count, top-N, LLM model, schedule) in
config.yaml.
| Doc | Contents |
|---|---|
| docs/usage.md | All CLI commands, history backfill, bot command reference, smoke test |
| docs/architecture.md | Pipeline flow, analysis methodology, stock identity, backfill & bot internals |
| docs/deployment.md | Deploy to a VPS via Docker / cron |
⚠️ FFS holding data is lagging by ~1 month and usually covers only the Top 10 holdings. This is a consensus radar, not a real-time signal, and not buy/sell advice. Fund managers have already moved by the time the data is published.- Unit classes (Class A/B/C) of the same fund are counted as separate funds, so AUM is slightly double-counted. The signal direction is still valid; dedup by manager + holding fingerprint is not implemented.
- MoM deltas use the current AUM for both months, so the delta reflects pure manager allocation change, not AUM/price drift.
- The Pasardana API credential in
pasardana.pyis a public key embedded in their SPA frontend, used with an inter-request delay. Respect Pasardana's ToS — this is for personal monitoring, not data redistribution. - Not financial advice. DYOR.