Dokumen ini menjelaskan tiga komponen data utama yang digunakan sebagai "bahan bakar" Algoritma Genetika (Genetic Algorithm / GA) untuk menentukan komposisi portofolio saham terbaik, serta penjelasan konsep GA itu sendiri.
File: harga_penutupan_saham.csv
File ini berisi data mentah pergerakan harga saham historis. Nilai yang digunakan biasanya adalah Adjusted Close, yaitu harga penutupan yang telah disesuaikan dengan dividen atau pemecahan saham.
| Date | ADRO.JK | ANTM.JK | BBCA.JK | BBNI.JK | PTBA.JK |
|---|---|---|---|---|---|
| 2022-01-03 | 840.73 | 1944.58 | 6573.09 | 2772.39 | 1227.65 |
| ... | ... | ... | ... | ... | ... |
-
Fungsi: Sebagai data dasar (raw material). Algoritma tidak menggunakan nominal harga secara langsung, melainkan perubahan harganya.
-
Sektor Saham:
- ADRO & PTBA → Energi (Batu Bara), cenderung siklikal dan fluktuatif
- BBCA & BBNI → Perbankan (Blue Chip), relatif stabil dan defensif
- ANTM → Mineral (Emas/Nikel), dipengaruhi harga komoditas global
File: return_harian_saham.csv
Data ini merepresentasikan persentase keuntungan atau kerugian harian investor.
| Date | ADRO.JK | ANTM.JK | BBCA.JK | BBNI.JK | PTBA.JK |
|---|---|---|---|---|---|
| 2022-01-04 | -0.0295 | -0.0171 | 0.0102 | 0.0446 | 0.0112 |
| ... | ... | ... | ... | ... | ... |
- -0.0295 (ADRO): Harga ADRO turun 2.95%
- 0.0446 (BBNI): Harga BBNI naik 4.46%
- Rata-rata return (disetahunkan) menjadi Expected Return
- GA mencari kombinasi bobot saham dengan return portofolio tertinggi
File: matriks_kovarians.csv
Matriks ini merupakan komponen paling krusial dalam manajemen risiko. Nilainya menunjukkan hubungan pergerakan antar saham yang telah disetahunkan (× 252 hari bursa).
| Ticker | ADRO.JK | ANTM.JK | BBCA.JK | BBNI.JK | PTBA.JK |
|---|---|---|---|---|---|
| ADRO.JK | 0.1920 | 0.0512 | 0.0187 | 0.0187 | 0.0689 |
| ANTM.JK | 0.0512 | 0.1874 | 0.0099 | 0.0113 | 0.0375 |
| BBCA.JK | 0.0187 | 0.0099 | 0.0538 | 0.0350 | 0.0117 |
| BBNI.JK | 0.0187 | 0.0113 | 0.0350 | 0.0882 | 0.0191 |
| PTBA.JK | 0.0689 | 0.0375 | 0.0117 | 0.0191 | 0.1093 |
- Nilai diagonal adalah varians (risiko masing-masing saham)
- ADRO (0.192) & ANTM (0.187): Risiko tinggi (high risk)
- BBCA (0.053): Risiko rendah (low risk), berperan sebagai penyeimbang portofolio
- Nilai di luar diagonal adalah kovarians
- ADRO vs PTBA (0.0689): Korelasi positif tinggi → diversifikasi lemah
- BBCA vs ANTM (0.0099): Hampir tidak berkorelasi → diversifikasi sangat baik
Saat menghitung fitness sebuah portofolio, GA melakukan langkah berikut:
- Ambil Gen (Bobot)
Contoh:
{ADRO: 50%, BBCA: 50%} - Hitung Return menggunakan rata-rata return harian
- Hitung Risiko menggunakan matriks kovarians
- Korelasi ADRO–BBCA rendah → risiko gabungan menurun
- Portofolio dinilai efisien
- GA memberikan skor fitness tinggi
GA mengadaptasi konsep evolusi biologi ke dalam pemrograman optimasi.
| Konsep Biologi | Dalam GA | Representasi Data |
|---|---|---|
| Gen | Bobot saham | Float (0–1) |
| Kromosom | Portofolio | Array NumPy |
| Individu | Solusi kandidat | Kromosom |
| Populasi | Kumpulan solusi | List individu |
| Fitness | Skor kualitas | Return − Risiko |
- Bobot alokasi dana satu saham
- Nilai antara 0.0 – 1.0
- Contoh: BBCA = 30% → gen =
0.30
-
Gabungan gen membentuk satu strategi portofolio
-
Struktur:
[ADRO, ANTM, BBCA, BBNI, PTBA] -
Contoh:
[0.10, 0.20, 0.30, 0.25, 0.15]
- Kumpulan individu dalam satu generasi
- Contoh:
POP_SIZE = 100
Simulasi:
- Individu Agresif → Skor = 7.5
- Individu Defensif → Skor = 10.0
➡️ Individu Defensif menang
- Inisialisasi populasi acak
- Evaluasi fitness
- Seleksi induk terbaik
- Crossover
- Mutasi kecil
- Iterasi hingga solusi optimal