pso-portfolio

Dashboard

Ringkasan proyek optimasi portofolio dengan Particle Swarm Optimization

particle-swarm-engine

Metaheuristics for Portfolio Optimization: Application of PSO Algorithm

Jumlah Aset kolom pada dataset aktif
Jumlah Data (hari) baris harga harian
Jumlah Iterasi 100 parameter PSO aktif
Jumlah Particle 40 ukuran swarm
Inertia Weight (w) 1.0 damping 0.99/iterasi
c1 / c2 2.0 / 2.0 cognitive / social coefficient

Alur Kerja Aplikasi

  1. 1
    Dataset

    Unggah CSV harga aset atau gunakan data contoh.

  2. 2
    Preprocessing

    Isi missing value, hitung log-return, bagi 4 periode pasar.

  3. 3
    Objective Function

    Definisikan CVaR 95% sebagai fungsi yang diminimalkan.

  4. 4
    Particle Swarm Optimization

    Jalankan swarm untuk mencari bobot portofolio optimal.

  5. 5
    Result & Sensitivity

    Tinjau alokasi optimal dan uji ketahanan parameter.

Status Proyek

Dataset belum dimuat
Preprocessing belum dijalankan
PSO belum dijalankan

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α ]

Return Portofolio

Rport = Σ wi · Ri

VaR (ambang kerugian)

VaRα = persentil ke-(1−α) dari Rport

Tingkat Kepercayaan

α = 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).

Update Kecepatan

v(t+1) = w·v(t) + c1·r1·(pbest−x) + c2·r2·(gbest−x)

Update Posisi

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

  1. 1
    Input Data

    Pengguna mengunggah CSV harga aset (atau memuat data contoh). Seluruh komputasi berjalan di browser pengguna — tidak ada data yang dikirim ke server manapun.

  2. 2
    Preprocessing

    Missing value diisi (ffill→bfill), harga ditransformasi ke log-return, lalu dibagi ke periode-periode pasar.

  3. 3
    Objective Function

    CVaR 95% dihitung dari distribusi return portofolio historis untuk setiap kandidat bobot.

  4. 4
    PSO Engine

    Swarm partikel diinisialisasi (distribusi Dirichlet agar otomatis berada di simplex), lalu posisi & kecepatan diperbarui secara iteratif untuk meminimalkan CVaR.

  5. 5
    Result

    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.