| Beli sekarang | Rp {{ fmtN(p.entry) }} |
| Jual kalau untung | Rp {{ fmtN(p.sell_target) }} |
| Batas aman 🛡️ | Rp {{ fmtN(p.stop) }} |
| Simpan kira-kira | {{ p.hold }} |
| # | TICKERⓘKode SahamSingkatan nama perusahaan di bursa. Contoh: BBCA = Bank BCA, TLKM = Telkom Indonesia. | PERUSAHAAN | SEKTOR | HARGA | HARI INIⓘPerubahan Harga Hari IniNaik/turunnya harga saham dibanding penutupan kemarin. Hijau = naik, merah = turun. | TREN 20HRⓘTren 20 HariPerubahan harga dalam 20 hari terakhir. Positif = sedang naik (tren baik), negatif = sedang turun. | POSISIⓘPosisi Harga dalam SetahunBar ini menunjukkan posisi harga sekarang vs 52 minggu terakhir. Bar kecil = harga masih rendah (peluang beli bagus!). | RSIⓘRSI — Relative Strength IndexAngka 0–100 untuk ukur kondisi saham. Hijau (30–55): zona ideal beli. Merah (>70): sudah terlalu mahal, hati-hati. | SKORⓘSkor Pilihan GuruNilai gabungan dari kualitas perusahaan, diskon harga, RSI, dan momentum. Makin tinggi makin menarik untuk dibeli. | KUALITASⓘStatus KualitasBERKUALITAS = perusahaan bagus, harga menarik ✓. DISKON = harga lagi turun tapi oke. LEMAH = hindari dulu. | AKSI |
|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ s.rnk }} | {{ s.ticker }} | {{ s.company }} | {{ s.sector }} | {{ fmtN(s.price) }} | {{ (s.change_pct??0)>=0?'+':'' }}{{ s.change_pct }}% | {{ (s.mom_pct??0)>=0?'+':'' }}{{ s.mom_pct }}% | {{ s.rsi ?? '—' }} | {{ Math.round(s.score) }} | {{ s.score>=40?'BERKUALITAS':s.score>=27?'DISKON':'LEMAH' }} |
| SAHAM | TGL MASUK | HARGA MASUK | HARIⓘHari DipegangSudah berapa hari simulasi ini berjalan. Otomatis ditutup di hari ke-28. | SKORⓘSkor saat MasukNilai screener waktu saham ini dipilih. Makin tinggi = makin menarik waktu itu. | RANK |
|---|---|---|---|---|---|
| {{ t.ticker }} | {{ t.entry_date }} | {{ Number(t.entry_price).toLocaleString('id-ID') }} | {{ t.holding_days }}h | {{ Math.round(t.entry_score) }} | #{{ t.entry_rank }} |
| SAHAM | TGL MASUK | TGL KELUAR | RETURNⓘHasil (Return)Keuntungan atau kerugian dalam persen. Hijau (+) = untung, merah (-) = rugi. | HARI |
|---|---|---|---|---|
| {{ t.ticker }} | {{ t.entry_date }} | {{ t.exit_date }} | {{ (t.return_pct??0)>=0?'+':'' }}{{ t.return_pct }}% | {{ t.holding_days }}h |
| MODALⓘCapital / ModalTotal uang yang kamu siapkan untuk investasi saham. | {{ fmt(portfolio.capital) }} |
| TOTAL P&LⓘTotal Untung/RugiJumlah keuntungan atau kerugian dari semua transaksi yang sudah ditutup. | {{ portfolio.total_pnl >= 0 ? '+' : '' }}{{ fmt(portfolio.total_pnl) }} |
| P&L %ⓘPersentase Untung/RugiHasil investasimu dalam persen. Contoh +5% artinya dari Rp 100 juta, kamu untung Rp 5 juta. | {{ portfolio.capital ? ((portfolio.total_pnl/portfolio.capital)*100).toFixed(2) + '%' : '-' }} |
| TERBUKAⓘPosisi TerbukaJumlah saham yang masih kamu pegang (belum dijual). | {{ portfolio.open_trades ?? 0 }} |
| SELESAIⓘTransaksi SelesaiJumlah transaksi yang sudah tuntas (sudah dijual, untung atau rugi sudah terhitung). | {{ portfolio.closed_trades ?? 0 }} |
| USD/IDRⓘKurs Dolar ke RupiahBerapa Rupiah yang dibutuhkan untuk beli 1 Dollar AS. Naik = Rupiah melemah, bisa pengaruhi harga barang impor dan saham. | {{ latestMacro.usd_idr ?? '-' }} |
| BI RATEⓘSuku Bunga Bank IndonesiaBunga acuan resmi dari Bank Indonesia. Naik = tabungan berbunga lebih tinggi, tapi saham bisa tertekan karena biaya pinjam naik. | {{ latestMacro.bi_rate != null ? latestMacro.bi_rate + '%' : '-' }} |
| 10Y YIELDⓘBunga Obligasi Pemerintah 10 TahunImbal hasil surat utang negara. Naik = investasi obligasi lebih menarik dari saham, bisa tekan harga saham. | {{ latestMacro.bond_yield_10y != null ? latestMacro.bond_yield_10y + '%' : '-' }} |
| ASINGⓘAliran Dana Investor AsingApakah investor asing sedang beli (+) atau jual (-) saham Indonesia. Hijau (positif) = asing masuk, kabar baik untuk pasar. | {{ latestMacro.foreign_flow != null ? (latestMacro.foreign_flow>=0?'+':'') + latestMacro.foreign_flow + 'B' : '-' }} |
| IHSGⓘIHSG — Indeks Harga Saham GabunganUkuran kesehatan pasar saham Indonesia secara keseluruhan. Naik = pasar sehat, turun = pasar lesu. | {{ latestMacro.ihsg_close ?? '-' }} |
| BATU BARAⓘHarga Batu Bara (USD/ton)Komoditas ekspor utama Indonesia. Harga naik = bagus untuk saham tambang batu bara seperti ITMG, PTBA, ADRO. | {{ latestMacro.coal_price ? '$'+latestMacro.coal_price : '-' }} |
| CPOⓘHarga Minyak Sawit (CPO)Crude Palm Oil — minyak kelapa sawit mentah. Indonesia eksportir terbesar. Naik = bagus untuk saham perkebunan seperti AALI, SIMP. | {{ latestMacro.cpo_price ?? '-' }} |
| NIKELⓘHarga Nikel (USD/ton)Indonesia cadangan nikel terbesar dunia. Penting untuk baterai EV (mobil listrik). Naik = bagus untuk saham nikel seperti INCO, TINS. | {{ latestMacro.nickel_price ? '$'+latestMacro.nickel_price : '-' }} |
| MINYAKⓘHarga Minyak Brent (USD/barrel)Patokan harga minyak dunia. Naik = biaya energi naik, pengaruhi banyak sektor industri. | {{ latestMacro.oil_price ? '$'+latestMacro.oil_price : '-' }} |
| TGL | SAHAM | DIRⓘArah TransaksiBUY = beli saham. SELL = jual saham. | ENTRYⓘHarga BeliHarga per lembar saham waktu kamu beli. | LOTⓘLotSatuan beli saham di Indonesia. 1 lot = 100 lembar saham. | EXITⓘHarga JualHarga per lembar saham waktu kamu jual. Kosong jika masih dipegang. | P&LⓘProfit & Loss (Untung/Rugi)Hasil dari transaksi ini. Hijau = untung, merah = rugi. | STATUS |
|---|---|---|---|---|---|---|---|
| {{ t.trade_date }} | {{ t.ticker }} | {{ t.direction }} | {{ fmtN(t.entry_price) }} | {{ t.entry_lots }} | {{ t.exit_price ? fmtN(t.exit_price) : '-' }} | {{ t.pnl != null ? (t.pnl>=0?'+':'') + fmt(t.pnl) : '-' }} | {{ t.status.toUpperCase() }} |
| RISK ITEM | CONSERVATIVE RULE |
|---|---|
| RISK PER TRADE | 0.5% – 1.0% OF PORTFOLIO |
| MAX SINGLE STOCK (LIQUID) | 5% – 10% OF PORTFOLIO |
| MAX SECTOR EXPOSURE | 20% – 30% |
| MAX ILLIQUID EXPOSURE | 10% – 15% TOTAL |
| MAX DAILY LOSS | STOP TRADING AFTER 1.5%–2.0% DRAWDOWN |
| MAX MONTHLY LOSS | REDUCE SIZE AFTER 5% DRAWDOWN |
| FREE FLOAT MIN (2026) | 15% — PHASED OVER 1–3 YRS (UP FROM 7.5%) |
| TGL | SAHAM | SEKTOR | STRATⓘStrategiCara masuk ke saham ini. Contoh: pullback (beli saat harga turun), breakout (beli saat harga tembus level), dll. | DIRⓘArahBUY = beli saham. SELL = jual saham. | ENTRYⓘHarga BeliHarga per lembar saham waktu masuk transaksi. | LOTⓘLotSatuan beli di Indonesia. 1 lot = 100 lembar saham. Beli 2 lot = 200 lembar saham. | STOPⓘStop LossHarga batas merah. Kalau harga turun ke sini, jual sahammu untuk batasi kerugian. Disiplin di sini kunci sukses investasi! | TARGETⓘTarget HargaHarga yang ingin dicapai. Kalau harga naik ke sini, pertimbangkan jual untuk ambil keuntungan. | EXITⓘHarga JualHarga aktual waktu kamu jual. Kosong = masih dipegang. | P&LⓘUntung/RugiHasil akhir transaksi ini dalam Rupiah. | STATUS | FF%ⓘFree Float %Persen saham yang bebas diperdagangkan publik. Di bawah 15% = risiko harga mudah dimanipulasi. Aturan BEI 2026: minimal 15%. | CHKⓘCek Tanda BahayaApakah kamu sudah cek hal-hal berisiko sebelum beli (laporan keuangan, berita negatif, dll). OK = sudah dicek. | AKSI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ t.trade_date }} | {{ t.ticker }} | {{ t.sector ? t.sector.toUpperCase() : '-' }} | {{ (t.strategy||'').toUpperCase() }} | {{ t.direction }} | {{ fmtN(t.entry_price) }} | {{ t.entry_lots }} | {{ t.stop_price ? fmtN(t.stop_price) : '-' }} | {{ t.target_price ? fmtN(t.target_price) : '-' }} | {{ t.exit_price ? fmtN(t.exit_price) : '-' }} | {{ t.pnl != null ? (t.pnl>=0?'+':'') + fmt(t.pnl) : '-' }} | {{ (t.status||'').toUpperCase() }} | {{ t.free_float != null ? t.free_float + '%' : '-' }} | {{ t.red_flags_checked ? 'OK' : 'NO' }} |
| WEEK | USD/IDR | BI% | INFL% | 10Y% | FOREIGN(B) | IHSG | COAL | CPO | NICKEL | BRENT | NOTES | DEL |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ m.week_date }} | {{ m.usd_idr ?? '-' }} | {{ m.bi_rate ?? '-' }} | {{ m.inflation ?? '-' }} | {{ m.bond_yield_10y ?? '-' }} | {{ m.foreign_flow != null ? (m.foreign_flow>=0?'+':'') + m.foreign_flow : '-' }} | {{ m.ihsg_close ?? '-' }} | {{ m.coal_price ?? '-' }} | {{ m.cpo_price ?? '-' }} | {{ m.nickel_price ?? '-' }} | {{ m.oil_price ?? '-' }} | {{ m.notes || '-' }} |
| SAHAM | PERUSAHAAN | SEKTOR | IDXⓘIndeks BursaLQ45 = 45 saham paling aktif. IDX30 = 30 saham terkuat. IDX80 = 80 perusahaan terbesar. UMA = harga bergerak tidak wajar, BEI sedang awasi. MON = dalam pengawasan khusus BEI. | HARGA | TREN 30HⓘGrafik Tren 30 HariMini grafik pergerakan harga 30 hari terakhir. Naik ke kanan = tren positif. | FF%ⓘFree Float %Persen saham yang bebas diperdagangkan publik. Di bawah 15% = risiko harga mudah dimanipulasi pemilik besar. | KONDISIⓘRegime / Kondisi PasarStatus tren saham ini: BULL/GREEN = sedang naik, BEAR/RED = sedang turun, SIDEWAYS = datar tidak kemana-mana. | MOMENTUMⓘKekuatan TrenSeberapa kuat dan konsisten arah gerak harga. STRONG BUY = sinyal beli kuat, STRONG SELL = sinyal jual kuat. | NET×ⓘPengali Posisi BersihSkor gabungan semua sinyal dalam satu angka. Di atas 1× = sinyal beli lebih kuat. Di bawah 0.5× = sinyal jual lebih kuat. | DIVIDEN 💰ⓘTanggal Ex-DividenTanggal batas untuk berhak dapat dividen (bagi hasil keuntungan). Harus punya saham sebelum tanggal ini. | ALARMⓘAlarm HargaTarget harga (🎯) dan stop loss (🚨) yang sudah kamu set. Bot akan kirim notifikasi kalau harga tercapai. | PEⓘPrice to Earnings (P/E)Harga saham dibagi laba per saham. Contoh PE 15x = investor bayar 15x lipat laba tahunan. Makin kecil = makin murah. Ideal: 10–20x. | PBⓘPrice to Book (P/B)Harga saham dibagi nilai aset bersih perusahaan. Di bawah 1 = harga saham lebih murah dari total aset perusahaan! | ROE%ⓘReturn on EquitySeberapa efisien perusahaan menghasilkan untung dari modal sendiri. Makin tinggi makin bagus. Di atas 15% = perusahaan sehat. | DIV%ⓘDividend YieldPersen dividen dari harga saham. Contoh DIV% 5% + harga Rp 1.000 = dapat Rp 50/lembar/tahun. Cocok untuk investasi pasif. | RISIKOⓘTanda Bahaya (Red Flags)Jumlah hal berisiko yang ditemukan pada saham ini. Makin banyak = makin hati-hati. Klik EDT untuk lihat detailnya. | CATATAN | AKSI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ s.ticker }} | {{ s.sector ? s.sector.split('/')[0].toUpperCase() : '-' }} | LQ45 IDX30 IDX80 UMA MON | {{ s.last_price ? fmtN(s.last_price) : '-' }} | {{ s.free_float != null ? s.free_float + '%' : '-' }} | {{ watchSignals[s.ticker].regime || '—' }} — | {{ watchSignals[s.ticker].momentum || '—' }} — | {{ watchSignals[s.ticker].net_mult }}× — | {{ watchSignals[s.ticker].div_ex_date }} · IDR {{ watchSignals[s.ticker].div_amount }} — | 🎯 {{ fmt(s.target_price) }} 🚨 {{ fmt(s.stop_price) }} — | {{ s.pe_ratio ?? '-' }} | {{ s.pb_ratio ?? '-' }} | {{ s.roe ?? '-' }} | {{ s.div_yield != null ? s.div_yield + '%' : '-' }} | ⚠ {{ s.red_flags.length }} — | {{ s.thesis || '-' }} |
Masukkan angka-angka di bawah — kalkulator otomatis hitung berapa lot yang bisa kamu beli tanpa ambil risiko terlalu besar.
Total uang yang kamu siapkan untuk investasi. Ini jadi dasar semua perhitungan.
Rekomendasi: 0.5–1%. Jangan lebih dari 2% — investor berpengalaman pun pakai aturan ini.
Biasanya 5–10%. Lihat grafik saham — taruh di bawah support terdekat.
Harga 1 lembar saham yang mau kamu beli sekarang.
Opsional. Isi kalau mau cek apakah posisimu terlalu besar untuk saham ini.
Opsional. Lihat di broker kamu — biasanya tertulis "volume" atau "nilai transaksi".
Contoh: Modal Rp 10 juta, rugi maks 1%, stop 8% → beli Rp 1.250.000 = 12 lot saham Rp 1.000
| Maks. Rugi DiizinkanⓘMaksimal Rugi yang DiizinkanIni angka sakral — jangan pernah dilampaui! Kalau harga saham turun ke level stop, total kerugianmu tidak akan melebihi angka ini. | {{ fmt(calcResults.riskAmount) }} |
| Total Uang DibelanjakanⓘTotal Posisi BeliBerapa Rupiah total yang kamu keluarkan untuk beli saham ini. Ingat: 1 lot = 100 lembar, jadi kalikan harga × 100 × jumlah lot. | {{ fmt(calcResults.positionSize) }} |
| Jumlah Lembar | {{ calcResults.shares.toLocaleString() }} lembar |
| 🛒 Jumlah Lot (BELI INI) | {{ calcResults.lots.toLocaleString() }} LOT |
| Harga Stop LossⓘHarga Jual PaksaKalau harga turun ke angka ini, JUAL segera. Jangan tunggu. Ini yang melindungi modalmu dari kerugian besar. | Rp {{ fmtN(calcResults.stopPrice) }} |
| Batas Likuiditas | {{ fmt(calcResults.liquidityMax) }} |
| Maks Lot (Likuiditas) | {{ calcResults.liquidityLots }} LOT |
Beli {{ calcResults.lots }} lot saham di harga Rp {{ fmtN(calc.entryPrice) }}
Pasang stop loss di Rp {{ fmtN(calcResults.stopPrice) }}
Maksimal rugi: {{ fmt(calcResults.riskAmount) }}
Stop loss bukan berarti gagal — ini alat pelindung modal. Investor hebat pun pakai ini tiap hari.
| STYLE | {{ g.style }} |
| EDGE | {{ g.edge }} |
| CONC. | {{ g.concentration }} |
| RISK | {{ g.risk }} |
| # | PRACTICE | WHAT BIG FIRMS DO | RETAIL VERSION |
|---|---|---|---|
| {{ i+1 }} | {{ c.practice }} | {{ c.firms }} | {{ c.retail }} |
| PORTFOLIO | api/portfolio.php | LIVE |
| TRADES | api/trades.php | LIVE |
| MACRO | api/macro.php | LIVE |
| WATCHLIST | api/watchlist.php | LIVE |
| AI PROXY | api/ai.php | LIVE |
| SETTINGS | api/settings_api.php | LIVE |
| LAYER | ENDPOINT | STATUS | PLUG IN |
|---|---|---|---|
| LIVE PRICES | api/market_data.php | ● LIVE | Yahoo Finance v8 (~15min delay) |
| FUNDAMENTALS | api/fundamentals_lib.php | ● LIVE | Yahoo quoteSummary — PE/PB/ROE + analyst consensus |
| NEWS FEED | api/news.php | ● LIVE | NewsAPI + Google News RSS |
| SENTIMENT | api/sentiment.php | ● LIVE | FinBERT (HuggingFace) primary · OpenRouter fallback |
| PRICE ALERTS | api/alerts.php | ● LIVE | Telegram bot (cron push, market hours) |
| VECTOR DB | api/qdrant.php | ● LIVE | Qdrant Cloud (1536-dim) |
| ORDER JOURNAL | api/orders.php | ◐ MANUAL | Saves AI picks you acted on; execute in your own broker |
| portfolios | Capital + currency config | ● LIVE |
| trades | Journal + auto P&L | ● LIVE |
| macro_data | Weekly IDX macro snapshot | ● LIVE |
| watchlist | Stock radar + auto fundamentals | ● LIVE |
| app_settings | API keys + model config | ● LIVE |
| orders | AI picks you acted on (journal) | ● LIVE |
| ai_recommendations | Every AI call → scored by learning loop | ● LIVE |
| screener_results | Buy-Now ranking cache (cron) | ● LIVE |
| watchlist_alerts | Alert events → Telegram push | ● LIVE |
| news_items | NewsAPI + Google cache + sentiment | ● LIVE |
| login_attempts | Brute-force lockout ledger | ● LIVE |
| alerts | User alert rules (awaiting rules) | ◐ READY |
| sentiment_log | Sentiment snapshots (awaiting data) | ◐ READY |
| PRICE | IDR {{ flowLivePrice.last_price?.toLocaleString() }} {{ (flowLivePrice.change_pct??0)>=0?'+':'' }}{{ flowLivePrice.change_pct }}% · VOL {{ flowLivePrice.volume_b }}B TYPE TICKER → AUTO-FETCHES |
| PORTFOLIO | IDR {{ fmt(portfolio.capital) }} · {{ portfolio.open_trades }} open trades |
| MACRO | USD/IDR {{ latestMacro.usd_idr?.toLocaleString() }} · BI {{ latestMacro.bi_rate }}% · IHSG {{ latestMacro.ihsg_close?.toLocaleString() }} None — add via F3 MACRO |
| SENTIMENT | {{ sentiment?.label?.replace('_',' ')?.toUpperCase() || 'N/A' }} · F/G {{ sentiment.fear_greed }}/100 |
6 expert AI models are debating right now
This takes 20–40 seconds
| Harga | {{ flowResult.provenance.price_as_of ? ('per ' + flowResult.provenance.price_as_of + ' · delay ~' + flowResult.provenance.price_delay_min + ' menit') : 'tidak ada' }} |
| Suasana pasar | {{ flowResult.provenance.signals.regime || '—' }} (VIX {{ flowResult.provenance.signals.vix }}) |
| Aliran asing | {{ flowResult.provenance.signals.foreign_flow }} |
| Peringkat sektor | {{ flowResult.provenance.signals.sector_rank || '—' }} |
{{ flowOrderResult.note || 'Connect your broker in Settings to place live orders.' }}
and get a clear recommendation with step-by-step instructions.
2. Live price & news auto-fetched for you
3. Add notes, or leave blank
4. Click "Get AI Recommendation"
5. Follow the plain-language steps shown
| {{ i+1 }} | {{ c }} |
| GRIFFIN | Factor exposure · data validation · probability-weighted R/R |
| HOHN | Durable moat · FCF quality · 8-year thesis · governance |
| D.E.SHAW | Testable thesis · quant signals · statistical edge |
| ENGLANDER | Pre-define loss limit · exit triggers · pod risk budget |
| CITRONE | Macro regime · best instrument · IDR/USD · short hedge |
| RESNICK | Secular vs cyclical · value compounding · sector depth |
| ↳ All 6 debate → panel votes → ONE consensus recommendation | |
| RISK/TRADE | 0.5 – 1.0% PORTFOLIO |
| MAX STOCK | 5 – 10% (LIQUID) |
| MAX SECTOR | 20 – 30% |
| DAILY STOP | STOP @ 1.5 – 2.0% LOSS |
| MONTHLY STOP | REDUCE SIZE @ 5% LOSS |
| FREE FLOAT | MIN 15% (2026 REFORM) |
| 1 LOT | 100 SHARES |
| SETTLEMENT | T+2 |
PROVIDERS: newsapi (100req/day) · gnews · rss (implement XML parser)
| TIME | TICKER | CAT | SIGNAL | HEADLINE | SOURCE |
|---|---|---|---|---|---|
| {{ n.published_at ? n.published_at.slice(5,16) : '—' }} | {{ n.ticker || '—' }} | {{ n.category?.toUpperCase() }} | {{ n.sentiment?.toUpperCase() || 'UNKNOWN' }} {{ (n.sentiment_score*100).toFixed(0) }}% |
{{ n.title }}
{{ n.title }}
{{ n.summary?.slice(0,120) }}...
|
{{ n.source }} |
SET qdrant_url=http://localhost:6333 in app_settings
RUN: POST /api/qdrant.php?action=setup
EMBED: POST /api/qdrant.php?action=embed_batch&type=news
| NEWS SCORING | FinBERT (HuggingFace) · OpenRouter AI |
| FLOW DATA | IDX foreign net buy/sell (macro table) |
| TECHNICAL | Price vs SMA — stub (watchlist) |
| SOCIAL | X/Telegram/StockTwits — stub |
| HF KEY | Set huggingface_api_key in SETUP |
| newsapi | 100req/day free · set news_api_key |
| gnews | 100req/day free · set gnews_api_key |
| finnhub | Company news by ticker · set finnhub_api_key |
| rss | Free · implement XML parser in api/news.php |