Metaheuristics for Portfolio Optimization: Application of PSO Algorithm
Alur Kerja Aplikasi
- 1Dataset
Unggah CSV harga aset atau gunakan data contoh.
- 2Preprocessing
Isi missing value, hitung log-return, bagi 4 periode pasar.
- 3Objective Function
Definisikan CVaR 95% sebagai fungsi yang diminimalkan.
- 4Particle Swarm Optimization
Jalankan swarm untuk mencari bobot portofolio optimal.
- 5Result & Sensitivity
Tinjau alokasi optimal dan uji ketahanan parameter.
Status Proyek
Konfigurasi parameter dapat diubah di halaman Particle Swarm Optimization. Ringkasan di atas akan ter-update otomatis.
Unggah Dataset
Format CSV: kolom pertama tanggal (Date), kolom berikutnya harga penutupan tiap aset — identik dengan struktur dataset Yahoo Finance pada notebook.
Belum ada file dipilih.
Belum ada data untuk dianalisis
Unggah dataset terlebih dahulu di halaman Dataset.
Belum ada data untuk diproses
Unggah dataset terlebih dahulu di halaman Dataset.
Fungsi Objektif: Conditional Value-at-Risk (CVaR)
CVaRα(w) = − E[ Rport | Rport ≤ VaRα ]
Rport = Σ wi · Ri
VaRα = persentil ke-(1−α) dari Rport
α = 0.95
PSO meminimasi CVaR — semakin kecil nilainya, semakin kecil potensi kerugian ekor (tail risk) portofolio. Bobot dinormalisasi terlebih dahulu (clip negatif → 0, lalu dibagi total) sebelum dihitung, sehingga constraint Σw=1 dan w≥0 selalu terpenuhi.
Coba kalkulator langsung
Unggah dataset untuk mencoba fungsi objektif pada bobot tertentu.
Dataset diperlukan sebelum menjalankan PSO
Unggah dataset terlebih dahulu di halaman Dataset.
Belum ada hasil optimasi
Jalankan PSO terlebih dahulu di halaman Particle Swarm Optimization.
Dataset diperlukan untuk analisis sensitivitas
Unggah dataset terlebih dahulu di halaman Dataset.
Tentang Portfolio Optimization
Optimasi portofolio bertujuan menentukan alokasi bobot dana ke sejumlah aset agar tercapai keseimbangan terbaik antara return yang diharapkan dan risiko yang ditanggung. Aplikasi ini menggunakan ukuran risiko Conditional Value-at-Risk (CVaR) — estimasi rata-rata kerugian pada skenario terburuk (ekor distribusi) — karena lebih sensitif terhadap risiko ekstrem dibanding varians biasa, dan cocok untuk aset dengan distribusi return yang tidak normal seperti cryptocurrency.
Tentang Particle Swarm Optimization
PSO adalah algoritma optimasi metaheuristik yang terinspirasi dari perilaku kawanan burung/ikan. Setiap particle merepresentasikan satu kandidat solusi (vektor bobot portofolio) yang bergerak di ruang pencarian, dipengaruhi oleh pengalaman terbaiknya sendiri (personal best) dan pengalaman terbaik kelompok (global best).
v(t+1) = w·v(t) + c1·r1·(pbest−x) + c2·r2·(gbest−x)
x(t+1) = x(t) + v(t+1)
Keunggulan PSO untuk kasus ini: tidak membutuhkan gradien fungsi objektif (CVaR non-differentiable), efektif di ruang pencarian berdimensi tinggi, dan sederhana diimplementasikan from-scratch.
Cara Kerja & Workflow Sistem
- 1Input Data
Pengguna mengunggah CSV harga aset (atau memuat data contoh). Seluruh komputasi berjalan di browser pengguna — tidak ada data yang dikirim ke server manapun.
- 2Preprocessing
Missing value diisi (ffill→bfill), harga ditransformasi ke log-return, lalu dibagi ke periode-periode pasar.
- 3Objective Function
CVaR 95% dihitung dari distribusi return portofolio historis untuk setiap kandidat bobot.
- 4PSO Engine
Swarm partikel diinisialisasi (distribusi Dirichlet agar otomatis berada di simplex), lalu posisi & kecepatan diperbarui secara iteratif untuk meminimalkan CVaR.
- 5Result
Bobot optimal, kurva konvergensi, dan berbagai visualisasi ditampilkan dan dapat diekspor.
Referensi
- Kennedy, J., & Eberhart, R. (1995). Particle swarm optimization. Proceedings of ICNN'95, 4, 1942–1948.
- Abdallah, A.B.H., Bedoui, R., & Boubaker, H. (2025). Metaheuristics for portfolio optimization: application of NSGA-II, SPEA2, and PSO algorithms. Risks, 13(11), 227.
- Markowitz, H. (1952). Portfolio selection. The Journal of Finance, 7(1), 77–91.
- Rockafellar, R.T., & Uryasev, S. (2002). Conditional value-at-risk for general loss distributions. Journal of Banking & Finance, 26(7), 1443–1471.
- Bulani, V., Bezbradica, M., & Crane, M. (2025). Improving portfolio management using clustering and particle swarm optimisation. Mathematics, 13(10), 1623.
Catatan Implementasi
Dashboard ini adalah terjemahan antarmuka dari notebook akademik "UAP Optimasi — Kategori 7: Manajemen Keuangan & Investasi — PSO From Scratch". Seluruh logika preprocessing, fungsi objektif, dan algoritma PSO (inisialisasi, update velocity/position, personal & global best, simplex projection) diterjemahkan satu-ke-satu dari Python ke JavaScript tanpa mengubah rumus maupun urutan langkah aslinya.