sahamstock
211 file · 15.2 MB
README
SahamStock
Sistem informasi saham pribadi yang komprehensif untuk dua pasar utama:
- Saham Indonesia (IDX)
- Saham US (NYSE/NASDAQ)
Terinspirasi dari Ibnu Cryptosphere, SahamStock menjadi private knowledge base untuk analisis, screening, pelacakan, dan riset saham.
Status
✅ Arsitektur dan semua halaman utama telah dibangun. ✅ Data pipeline (Node.js + Yahoo Finance direct API) siap dijalankan. ⚠️ Snapshot data saat ini adalah sample data karena environment pengembangan ini mengalami rate-limit dari Yahoo Finance. Pipeline asli akan berjalan dengan baik dari GitHub Actions atau mesin lokal dengan IP yang tidak diblokir.
Fitur Utama
- Dashboard: market pulse IHSG, S&P 500, NASDAQ, DJIA, USDIDR, VIX.
- Indonesia Stock Hub: saham unggulan, top movers, indeks sektoral.
- US Stock Hub: Magnificent 7, ETF flows, top movers.
- Stock Terminal: Bloomberg-style multi-panel terminal.
- Probability Engine: multi-factor directional probability model.
- Screener: filter saham ID & US by metrics + export CSV.
- AI Analyze: technical + fundamental narrative analysis.
- Watchlist, Portfolio, Compare, Position Calculator, Trading Journal.
- Macro Factors & Sector Analysis.
Tech Stack
- Frontend: Static HTML + Tailwind CSS (CDN) + Chart.js + vanilla JavaScript
- Data pipeline: Node.js ES modules, direct Yahoo Finance chart API
- Macro: FRED & BLS (optional API keys)
- News: RSS feeds
- Automation: GitHub Actions cron
- Deployment: Vercel static
Struktur Folder
sahamstock/
├── index.html # Dashboard utama
├── indonesia-stocks.html # Hub saham Indonesia
├── us-stocks.html # Hub saham US
├── stock-terminal.html # Bloomberg-style terminal
├── stock-probability-engine.html # Multi-factor probability model
├── screener.html # Stock screener
├── ai-analyze.html # Technical narrative analysis
├── watchlist.html # Watchlist pribadi
├── portfolio.html # Portfolio tracker
├── compare.html # Compare stocks
├── position-calculator.html # Risk/reward calculator
├── journal.html # Trading journal
├── sectors.html # Sector analysis
├── macro-factors.html # Macro dashboard
├── about.html # About
├── assets/
│ ├── css/sahamstock.css # Design system
│ ├── js/ # Shared JS modules
│ └── data/saham-snapshot.json # Generated data cache
├── scripts/
│ ├── build-saham-snapshot.mjs # Real snapshot pipeline
│ ├── generate-sample-snapshot.mjs # Sample data generator
│ ├── lib/ # Pipeline helpers
│ └── data/ # Ticker universe files
├── api/quote.mjs # Vercel serverless quote proxy
├── .github/workflows/ # GitHub Actions cron
├── package.json
├── vercel.json
└── README.md
Setup Lokal
cd sahamstock
npm install
Jalankan dengan sample data
npm run sample
npm run dev
Buka http://localhost:3000.
Jalankan pipeline data real
npm run snapshot
Catatan: Jika Anda mendapatkan error 429 dari Yahoo Finance, itu berarti IP Anda sedang di-rate-limit. Coba:
- Jalankan dari koneksi internet lain.
- Jalankan dari GitHub Actions (biasanya tidak kena rate-limit).
- Tambahkan delay lebih besar di
scripts/lib/yahoo-client.mjs.
Deployment ke Vercel
- Push repo ke GitHub:
git init
git add .
git commit -m "Initial SahamStock"
git remote add origin https://github.com/subkhanibnuaji/sahamstock.git
git push -u origin main
- Hubungkan repo ke Vercel:
vercel --prod
- (Opsional) Tambahkan secrets di GitHub untuk macro data yang lebih kaya:
FRED_API_KEY— daftar di https://fred.stlouisfed.org/docs/api/api_key.htmlBLS_API_KEY— daftar di https://data.bls.gov/registrationEngine/
GitHub Actions
Workflow .github/workflows/saham-snapshot-refresh.yml akan:
- Menjalankan
npm run snapshotsetiap 6 jam. - Commit
assets/data/saham-snapshot.jsonjika ada perubahan.
Sumber Data
- Yahoo Finance — harga, indeks, ETF sektoral, chart historis.
- FRED — DXY, VIX, yields, Fed balance sheet, commodities.
- BLS — CPI, unemployment, nonfarm payrolls.
- RSS — CNBC, MarketWatch, Bisnis Indonesia, Kontan, Yahoo Finance, Reuters.
Catatan Penting
- Ticker saham Indonesia menggunakan suffix
.JK(contoh:BBCA.JK,TLKM.JK). - Password gate (
assets/js/saham-auth.js) bersifat client-side dan tidak untuk data sensitif. - Sistem ini untuk penggunaan pribadi dan edukasi, bukan saran finansial.
TODO / Enhancements
- Integrasi API key Alpha Vantage / FMP untuk fundamental data (PE, market cap, EPS).
- Real-time quote via WebSocket atau polling.
- Alert harga untuk watchlist.
- Backtesting strategy sederhana.
- Export PDF report.
File Utama
- .env.example
- .gitignore
- 404.html
- CHANGELOG.md
- README.md
- ROADMAP.md
- about.html
- ai-analyze.html