OpenChart
Claude·Codex와 함께하는 무료 데스크톱 차트 도구. 알림 설정·차트 움직임 분석·데이터 제공자 선택
인도네시아 증시 전용 평균 매입 전략을 수수료·세금까지 정밀 계산해 시뮬레이션한다
Simulasikan rencana pembelian saham Average Down (pembelian bertahap) secara presisi dengan kalkulasi broker fee (pajak transaksi, levy, PPh) khusus pasar saham Indonesia (BEI/IDX).
금융TypeScript · HTMLGitHub @alfitranurr온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Nunnn-Stock-Analyzer adalah platform finansial modern, profesional, dan premium yang dirancang khusus untuk mempermudah investor serta trader saham di Bursa Efek Indonesia (BEI / IDX) dalam melakukan analisis fundamental, teknikal, analisis sentimen pasar berbasis AI (Artificial Intelligence), serta mengoptimalkan alokasi strategi investasi melalui kalkulator finansial presisi tinggi dan pelacakan portofolio real-time.
Platform ini mengintegrasikan data harga real-time dari Yahoo Finance API, agregasi berita keuangan Google News RSS, decoding redirection protocol otomatis, serta teknologi analisis bahasa alami (Natural Language Processing) mutakhir dari Google Gemini AI SDK (dengan arsitektur Multi-Model Fallback Chain otomatis) untuk menyajikan ringkasan sentimen pasar terstruktur dan obyektif.
Antarmuka dirancang menggunakan filosofi Card-in-Card Design System yang ultra-konsisten, responsif di seluruh resolusi layar (dari seluler, tablet, hingga layar monitor full-screen ultra-wide), serta dilengkapi animasi mikro dinamis berbasis Framer Motion.
0.15% / Jual 0.25%0.15% / Jual 0.25%0.19% / Jual 0.29%DividendTab)0% Tax-Free: Insentif dividen dalam negeri yang diinvestasikan kembali (UU HPP).10% Final Tax: PPh Final dividen WPOPS standar.Custom Tax Rate: Penyesuaian persentase pajak kustom..xlsx) via SheetJS serta fitur salin teks laporan terformat.batchexecute protocol) guna mengambil teks berita orisinal.rounded-2xl bg-white/[0.03] border border-white/10 dengan tata letak grid responsif (grid-cols-1 md:grid-cols-2 2xl:grid-cols-4 items-stretch) yang mencegah elemen terpotong saat layar di-fullscreen.lib/language-context.tsx).globals.css), dan Ikonografi Lucide React.xlsx) untuk ekspor spreadsheet Excel.Nunnn-Stock-Analyzer/
├── src/
│ ├── app/ # Next.js App Router Pages & API Endpoints
│ │ ├── api/
│ │ │ ├── analysis/ # API Analisis Saham BEI (Fundamental, Technical, News)
│ │ │ │ ├── fundamentals/ # GET: Metrik keuangan & valuasi emiten
│ │ │ │ ├── news/ # GET: Analisis sentimen berita agregatif
│ │ │ │ └── technical/ # GET: Data historis harga chart TradingView
│ │ │ ├── dividend/ # API Dividen Saham
│ │ │ │ └── route.ts # GET: Data historis & proyeksi dividen emiten BEI
│ │ │ ├── news/ # API Management Feed Berita
│ │ │ │ ├── route.ts # GET: Fetch berita Google News RSS
│ │ │ │ └── summary/ # POST: Scraping teks asli & AI Summary Gemini
│ │ │ └── ticker/
│ │ │ └── route.ts # GET: Pencarian emiten & harga real-time Yahoo Finance
│ │ ├── favicon.ico # Aset Ikon Aplikasi
│ │ ├── globals.css # Styling Global & Variabel CSS Tailwind v4
│ │ ├── layout.tsx # Root Layout, Providers (Theme & Language)
│ │ └── page.tsx # Dasbor Utama (Tab Switcher & Layout Container)
│ ├── components/ # Modul Komponen Antarmuka (UI Components)
│ │ ├── admin-panel-tab.tsx # Tab Admin: Whitelist pengguna & Audit Logs
│ │ ├── analysis-tab.tsx # Tab Analisis: TradingView Technical & Custom SVG Fundamental Cards
│ │ ├── auth-modal.tsx # Modal Login, Signup, & Google OAuth
│ │ ├── calculator-form.tsx # Form Kalkulator Average Down (Card-in-Card Design)
│ │ ├── compounding-tab.tsx # Tab Compounding: Standard & Scalping Trading Mode
│ │ ├── confirm-modal.tsx # Modal Dialog Konfirmasi Aksi
│ │ ├── dividend-tab.tsx # Tab Dividen: Proyeksi, Opsi Pajak & Simulasi DRIP
│ │ ├── history-table.tsx # Tabel Riwayat Rencana Average Down
│ │ ├── ipo-tab.tsx # Tab E-IPO: Kalkulator Allotment Golongan I-V
│ │ ├── news-tab.tsx # Tab Feed Berita & AI Summary Gemini Modal
│ │ ├── portfolio-tab.tsx # Tab Portofolio: Tracker Asset, PnL & RDN Cash
│ │ ├── results-display.tsx # Output Visualisasi Hasil Kalkulasi Average Down
│ │ ├── sidebar.tsx # Sidebar Navigasi Utama (Expand/Collapse)
│ │ └── theme-provider.tsx # Provider Tema Next-Themes
│ └── lib/ # Modul Logika Finansial, Helper & Utilities
│ ├── calculator.ts # Algoritma matematika Average Down & BEP
│ ├── compounding.ts # Algoritma bunga majemuk standard & daily trading
│ ├── e-ipo.ts # Logika estimasi alokasi penjatahan E-IPO IDX
│ ├── language-context.tsx # Context Provider sistem multi-bahasa (ID/EN)
│ ├── polyfills.ts # Polyfill ketahanan API & penanganan error
│ ├── supabase.ts # Inisialisasi Klien Supabase & status check
│ ├── translations.ts # Kamus terjemahan Bahasa Indonesia & English
│ └── utils.ts # Helper pembersihan nama emiten & formatting angka
├── supabase/ # Schema Migrasi Database Supabase PostgreSQL
│ └── migrations/ # Migrasi SQL PostgreSQL & RLS Policies
│ ├── 20260531000000_create_calculations.sql # Tabel avg_down_plans
│ ├── 20260531000001_create_portfolio.sql # Tabel portfolio_holdings & cash
│ ├── 20260612000002_create_compounding_plans.sql # Tabel compounding_plans
│ └── 20260613000003_create_ipo_plans.sql # Tabel ipo_plans
├── package.json # Package Manifest & Scripts
├── next.config.ts # Konfigurasi Next.js
├── tsconfig.json # Konfigurasi Compiler TypeScript
└── README.md # Dokumentasi Utama Proyek
Seluruh tabel dilindungi dengan Row Level Security (RLS) untuk menjamin keamanan data antar pengguna berdasarkan user_id.
-- 1. Tabel avg_down_plans
create table public.avg_down_plans (
id uuid default gen_random_uuid() primary key,
user_id uuid references auth.users(id) on delete cascade not null,
ticker varchar(10) not null,
company_name varchar(100),
lot_awal integer not null check (lot_awal > 0),
avg_price_awal numeric not null check (avg_price_awal > 0),
current_price numeric not null check (current_price > 0),
lot_baru integer not null check (lot_baru > 0),
harga_beli_baru numeric not null check (harga_beli_baru > 0),
fee_beli numeric default 0.15 check (fee_beli >= 0 and fee_beli <= 100),
fee_jual numeric default 0.25 check (fee_jual >= 0 and fee_jual <= 100),
created_at timestamptz default now() not null,
updated_at timestamptz default now() not null
);
-- 2. Tabel portfolio_holdings
create table public.portfolio_holdings (
id uuid default gen_random_uuid() primary key,
user_id uuid references auth.users(id) on delete cascade not null,
ticker varchar(10) not null,
company_name varchar(100),
lot integer not null check (lot >= 0),
avg_price numeric not null check (avg_price >= 0),
created_at timestamptz default now() not null,
updated_at timestamptz default now() not null,
unique (user_id, ticker)
);
-- 3. Tabel portfolio_cash
create table public.portfolio_cash (
user_id uuid references auth.users(id) on delete cascade primary key,
cash_balance numeric default 0 not null check (cash_balance >= 0),
created_at timestamptz default now() not null,
updated_at timestamptz default now() not null
);
-- 4. Tabel compounding_plans
create table public.compounding_plans (
id uuid default gen_random_uuid() primary key,
user_id uuid references auth.users(id) on delete cascade not null,
title varchar(100) not null,
initial_amount numeric not null check (initial_amount >= 0),
contribution_amount numeric default 0 check (contribution_amount >= 0),
contribution_frequency varchar(20) default 'monthly',
annual_return_rate numeric not null check (annual_return_rate >= 0),
compounding_frequency varchar(20) default 'monthly',
duration_years numeric default 0 check (duration_years >= 0),
duration_months numeric default 0 check (duration_months >= 0),
inflation_rate numeric default 0 check (inflation_rate >= 0),
tax_rate numeric default 0 check (tax_rate >= 0),
created_at timestamptz default now() not null,
updated_at timestamptz default now() not null
);
-- 5. Tabel ipo_plans
create table public.ipo_plans (
id uuid default gen_random_uuid() primary key,
user_id uuid references auth.users(id) on delete cascade not null,
ticker varchar(10) not null,
company_name varchar(100) not null,
price numeric not null check (price > 0),
total_lots numeric not null check (total_lots > 0),
oversubscription numeric not null check (oversubscription >= 1),
total_subscribers numeric not null check (total_subscribers > 0),
retail_ratio numeric not null check (retail_ratio >= 0 and retail_ratio <= 100),
personal_order_lots numeric default 0 check (personal_order_lots >= 0),
created_at timestamptz default now() not null,
updated_at timestamptz default now() not null
);
-- 6. Tabel user_approvals
create table public.user_approvals (
id uuid default gen_random_uuid() primary key,
email varchar(255) unique not null,
approved boolean default false not null,
created_at timestamptz default now() not null,
updated_at timestamptz default now() not null
);
/api/tickerGETq=[Keyword] atau symbol=[Ticker] (contoh: /api/ticker?symbol=BBCA)./api/dividendGETsymbol=[Ticker] (contoh: /api/dividend?symbol=BBRI)./api/newsGETq=[Topic/Ticker] & category=[saham|domestik|foreign|global|politik]./api/news/summaryPOST/api/analysis/fundamentalsGET/api/analysis/technicalGET/api/analysis/newsGETgit clone https://github.com/alfitranurr/Nunnn-Stock-Analyzer.git
cd Nunnn-Stock-Analyzer
npm install
.env.local)Buat file .env.local pada direktori root:
# Supabase Configuration (opsional - jika dikosongkan, web otomatis menggunakan fallback Local Storage browser)
NEXT_PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
# Google OAuth Credentials
GOOGLE_CLIENT_ID=your-google-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-google-client-secret
# Google Gemini API Key (wajib untuk analisis AI Summary & sentimen)
GEMINI_API_KEY=your-gemini-api-key
# Email Administrator Utama (untuk Whitelist System)
[email protected]
npm run dev
Buka browser Anda di http://localhost:3000.
Kontribusi dari komunitas sangat diterima! Silakan buka Issue atau kirimkan Pull Request (PR) untuk penyempurnaan fitur finansial, rendering grafik, atau lokalisasi terjemahan.
Proyek ini terlisensi di bawah MIT License. Hak Cipta © 2026 alfitranurr.