superapp-finance

sahamstock

211 file · 15.2 MB

Sistem informasi live — sahamstock.vercel.appBuka di tab baru

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:

  1. Jalankan dari koneksi internet lain.
  2. Jalankan dari GitHub Actions (biasanya tidak kena rate-limit).
  3. Tambahkan delay lebih besar di scripts/lib/yahoo-client.mjs.

Deployment ke Vercel

  1. 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
  1. Hubungkan repo ke Vercel:
vercel --prod
  1. (Opsional) Tambahkan secrets di GitHub untuk macro data yang lebih kaya:

GitHub Actions

Workflow .github/workflows/saham-snapshot-refresh.yml akan:

  • Menjalankan npm run snapshot setiap 6 jam.
  • Commit assets/data/saham-snapshot.json jika 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