Skip to content
Learn

Membangun Proses Riset Kuantitatif

Sintesis · 40 menit

Sampai bab ini lo udah punya banyak potongan: faktor (value, momentum, quality), metrik risiko (Sharpe, Sortino, Deflated Sharpe), bahaya backtest (survivorship bias, look-ahead, overfitting), dan teknik validasi (walk-forward, purged CV, PBO). Tapi potongan-potongan itu cuma onderdil. Bab ini soal merakitnya jadi satu mesin — sebuah proses berulang yang bisa lo jalanin sendiri di kamar kos pakai laptop dan data IDX, dan yang ngasih keputusan yang bisa lo pertanggungjawabkan, bukan tebakan yang dibungkus angka.

Riset kuantitatif bukan soal nemu "rumus ajaib". Itu soal bangun disiplin yang bikin lo susah nipu diri sendiri. Sembilan dari sepuluh strategi yang kelihatan cuan di backtest gagal di uang sungguhan. Proses yang baik bukan yang janjiin kemenangan — melainkan yang buang ide buruk secepat dan semurah mungkin, sebelum uang lo yang bayarin.

Pelajaran inti bab ini

Tujuan proses riset bukan "membuktikan ide gue benar". Tujuannya adalah nyoba sekuat tenaga buat ngebunuh ide gue sendiri, dan cuma nyisain yang nggak mati. Periset pemula nyari konfirmasi. Periset yang dewasa nyari falsifikasi. Setiap langkah di bawah ini dirancang sebagai upaya pembunuhan yang jujur terhadap hipotesis lo sendiri.

PROSES RISET = CORONG PEMBUNUH IDEtiap tahap mencoba membunuh hipotesismu; hanya yang tak mati lolos1 · Hipotesis + mekanismemembunuh: tak ada cerita ekonomi2 · Data bersih point-in-timemembunuh: survivorship & look-ahead3 · Split train / val / lockboxmembunuh: data snooping4 · Validasi hormati waktumembunuh: kebocoran k-fold acak5 · Biaya transaksi sejak awalmembunuh: edge dimakan friksi6 · Uji ketahanan ±20%membunuh: kecantikan rapuh7 · Deflasi: DSR & PBOmembunuh: Sharpe palsu dari N trialSURVIVORpaper trading → modal sangat kecil → out-of-sample sejati = masa depanpeneliti pemula cari konfirmasi; peneliti dewasa cari falsifikasi

Kenapa proses, bukan sekadar strategi

Marcos López de Prado — mantan kepala ML di AQR dan penulis Advances in Financial Machine Learning — punya argumen tajam: kebanyakan dana kuantitatif gagal bukan karena idenya jelek, tapi karena prosesnya jelek. Dalam presentasinya "The 7 Reasons Most Machine Learning Funds Fail" (2017) dia nyimpulin bahwa periset yang kerja sendirian, nyoba ribuan kombinasi sampai nemu yang "cantik", lalu mempertaruhkan uang di atasnya, hampir pasti lagi mamerin false positive — kebetulan statistik yang dikira penemuan.

False positive (kesalahan tipe I) — kesimpulan bahwa ada sinyal padahal sebenarnya cuma kebisingan acak. Dalam riset trading inilah dosa paling mahal: lo mempertaruhkan uang nyata pada pola yang nggak pernah ada.

Data snooping / multiple testing — nguji begitu banyak variasi pada data yang sama sampai salah satunya pasti kelihatan hebat cuma karena keberuntungan. Makin banyak percobaan, makin tinggi Sharpe "terbaik" yang muncul dari kebisingan murni.

Inti masalahnya bisa dihitung. Kalau lo nguji satu strategi yang bener-bener nggak berguna (expected Sharpe = 0), Sharpe yang lo amati bakal tersebar di sekitar nol. Tapi kalau lo nguji banyak strategi nggak berguna lalu mungut yang terbaik, nilai maksimum itu bisa jauh dari nol semata-mata karena seleksi. Inilah kenapa Bailey & López de Prado nyiptain Deflated Sharpe Ratio (DSR): dia ngehukum Sharpe lo berdasarkan berapa banyak percobaan yang lo lakuin, panjang sampel, serta skewness dan kurtosis return.

Tujuh dosa yang harus dihindari proses lo

Luo dkk. dari Deutsche Bank (2014), yang dipopulerkan ulang oleh López de Prado, ngerangkum tujuh kesalahan klasik. Anggap ini sebagai checklist yang harus dilewati setiap ide lo sebelum boleh hidup:

DosaApa ituAntidote di proses lo
Survivorship biasBacktest cuma pakai emiten yang masih hidup; yang delisting/bangkrut hilang.Pakai data yang menyertakan saham delisting (point-in-time universe).
Look-ahead biasMemakai informasi yang belum tersedia saat keputusan (mis. laba kuartal sebelum diumumkan).Lag setiap data fundamental sampai tanggal rilis publik.
StorytellingMengarang cerita untuk membenarkan pola acak setelah melihatnya.Tulis hipotesis & mekanisme ekonomi sebelum backtest.
Overfitting / data snoopingMenyetel parameter sampai cantik di masa lalu.Batasi jumlah trial, simpan data uji terkunci, hitung DSR/PBO.
Turnover & biayaMengabaikan komisi, spread, slippage.Modelkan biaya realistis IDX (mis. ~0.15–0.25% per sisi).
OutliersCuan ditopang segelintir peristiwa langka yang tak terulang.Uji kekokohan: buang top-N hari terbaik, lihat apakah edge bertahan.
Pola asimetris & biaya shortAsumsi bisa short bebas; padahal mahal/terbatas.Di IDX, asumsikan long-only kecuali ada bukti likuiditas short.
Konteks IDX

Di Bursa Efek Indonesia dosa-dosa ini gigitnya lebih keras. Short selling sangat terbatas — jadi strategi market-neutral ala AS sering nggak bisa diterapin apa adanya. Banyak saham lapis dua/tiga (penny / "gorengan") punya likuiditas tipis sampai slippage nelen edge teoritis. Dan ada batas ARA/ARB (auto reject) yang bikin harga "macet" di batas harian — backtest yang ngabaiin ini bakal ngira lo bisa keluar-masuk di harga yang sebenarnya nggak tersedia. Proses lo wajib modelin friksi ini, bukan ngabaiin.

Tujuh tahap proses riset yang bisa lo jalanin

1. Hipotesis dulu, data kemudian

Mulai dengan kalimat yang bisa salah: "Saham IDX dengan momentum 6 bulan tertinggi akan mengungguli yang terendah dalam 1 bulan berikutnya, karena underreaction investor ritel terhadap berita." Tulis mekanisme-nya. Kalau lo nggak bisa jelasin kenapa edge itu ada (siapa di sisi lain transaksi yang "rugi" supaya lo cuan), kemungkinan besar edge itu nggak ada.

2. Bangun data bersih & point-in-time

Kumpulin harga (udah disesuaikan dividen & stock split), volume, dan fundamental. Kunci: setiap angka harus nyerminin apa yang diketahui pada tanggal itu. Laba Q1 yang rilis 30 April nggak boleh dipakai buat keputusan 1 April. Sertain emiten yang udah delisting biar bebas survivorship bias.

3. Pisahin data: train / validation / lockbox

Bagi rentang waktu jadi tiga. Kembangin dan setel ide di train. Pilih varian terbaik di validation. Lalu — ini bagian yang nyakitin — kunci potongan lockbox (mis. 20% data paling akhir) dan jangan sentuh sampai semua keputusan final. Lockbox cuma boleh dilihat sekali. Tiap kali lo "ngintip" lalu ngubah strategi, lockbox lo mati dan jadi bagian train.

Analogi

Anggap lockbox kayak amplop ujian yang disegel panitia. Lo boleh latihan soal sepuasnya pakai bank soal (train), lo boleh coba-coba strategi ngerjain di soal try-out (validation), tapi amplop ujian asli baru dibuka sekali pas hari-H. Begitu lo ngintip isinya lalu ngapalin jawaban, ujiannya nggak ngukur kemampuan lo lagi — cuma ngukur ingatan lo. Data lockbox sama persis: nilainya ada di kemurniannya. Sekali kena intip, dia hangus.

PISAHIN DATA: TRAIN / VALIDATION / LOCKBOXrentang waktu dibelah tiga; lockbox disegel sampai semua keputusan finalmasa lalumasa kini → depanTRAINkembangin & setel ideboleh dilihat & diutak-atik sepuasnyaVALIDATIONpilih varian terbaikbuat milih, bukan menyetel ulangLOCKBOX20% data paling akhirterkunci — cuma dibuka SEKALI di akhirtiap kali lo ngintip lalu ngubah strategi, lockbox mati & jadi bagian train

4. Validasi yang menghormati waktu

Jangan pakai k-fold cross-validation biasa buat data deret waktu — dia ngacak urutan dan mbocorin masa depan ke masa lalu. Pakai walk-forward (latih di jendela lampau, uji di jendela berikutnya, geser maju) atau purged k-fold CV dengan embargo.

Purged CV + embargo — varian cross-validation untuk keuangan: observasi yang label-nya tumpang-tindih waktunya dengan set uji dibuang ("purge"), dan ditambah jeda waktu ("embargo") di sekitar set uji, supaya nggak ada kebocoran informasi dari fitur yang lambat berubah.

5. Pasang biaya transaksi sejak awal

Hitung turnover dan kaliin dengan biaya per transaksi. Banyak strategi yang Sharpe-nya 1.5 di atas kertas jatuh ke bawah 0 setelah biaya. Lebih baik tau sekarang daripada pas rekening lo yang bayarin.

6. Uji ketahanan, bukan kecantikan

Strategi yang baik nggak rapuh. Geser parameter ±20% — apakah edge bertahan, atau langsung runtuh? Jalanin Monte Carlo dengan ngacak urutan return. Buang 5 hari terbaik — apakah masih untung? Edge yang nyata bertahan di banyak setting; edge yang overfit cuma hidup di satu titik manis.

7. Hitung berapa kali lo nyoba — lalu deflasi

Catat jumlah trial (NN) secara jujur, dan terapin Deflated Sharpe Ratio serta Probability of Backtest Overfitting (PBO). Kalau PBO >0.5> 0.5, strateginya kemungkinan besar overfit dan harus dibuang.

PBO (Probability of Backtest Overfitting) — peluang bahwa strategi yang terlihat terbaik secara in-sample sebenarnya bakal berkinerja di bawah median secara out-of-sample. Dihitung lewat Combinatorial Purged CV (Bailey dkk., 2014). Makin tinggi PBO, makin besar kemungkinan lo lagi natap keberuntungan.

Contoh utuh: meneliti satu strategi momentum di IDX

Teori tadi kerasa abstrak. Mari kita jalanin satu ide dari awal sampai akhir, lengkap dengan angka, biar lo tau kayak gimana rasanya. Hipotesisnya: "Saham IDX dengan momentum 6 bulan tertinggi akan mengungguli yang terendah dalam horizon 1 bulan, karena investor ritel bereaksi terlambat terhadap tren." Ini ide klasik (Jegadeesh & Titman, 1993) — tapi yang menarik bukan idenya, melainkan cara lo ngujinya tanpa ngebohongin diri sendiri.

Langkah desain. Universe: 45 saham paling likuid (anggap konstituen LQ45, tapi versi point-in-time — keanggotaan LQ45 berubah tiap enam bulan, jadi lo harus pakai daftar yang berlaku pada tanggal rebalancing, bukan daftar hari ini). Sinyal: return 6 bulan terakhir, di-lag 1 bulan (skip-month) buat ngehindarin efek mean-reversion jangka pendek. Tiap bulan: beli kuintil teratas (≈9 saham), bobot sama. Rebalancing bulanan. Long-only — inget, short di IDX hampir nggak praktis.

Skip-month — jeda satu bulan antara periode pengukuran momentum dan periode holding. Tanpa jeda ini, sinyal momentum sering tercemar pembalikan jangka pendek (short-term reversal) yang ngehapus edge-nya.

Hitung turnover dan biaya — ini yang ngebunuh kebanyakan strategi. Misal backtest kotor (sebelum biaya) ngasih return tahunan ≈18% dengan volatilitas ≈22%, jadi Sharpe kotor (18%6%)/22%0.55\approx (18\% - 6\%)/22\% \approx 0.55 (memakai BI rate ≈6% sebagai risk-free). Kelihatan lumayan. Sekarang masukin biaya. Strategi ini me-rebalance ≈9 posisi tiap bulan; anggap turnover bulanan ≈60% (sebagian saham bertahan di kuintil teratas). Biaya bolak-balik realistis di IDX: komisi beli ≈0.15% + jual ≈0.25% (udah termasuk pajak penjualan 0.1%), plus spread/slippage saham likuid ≈0.10% per sisi. Total round-trip ≈0.6%.

KomponenSebelum biayaSesudah biaya
Return tahunan≈18%≈18% − (0.60 × 12 × 0.6%) ≈ 18% − 4.3% ≈ 13.7%
Volatilitas≈22%≈22% (biaya menggerus rata-rata, bukan volatilitas)
Sharpe (rf ≈6%)≈0.55≈ (13.7% − 6%)/22% ≈ 0.35

Biaya ngehapus hampir 40% dari Sharpe lo. Strategi yang tampak "Sharpe 0.55" sebenarnya Sharpe ≈0.35 — masih hidup, tapi marginnya tipis. Kalau aja turnover-nya dua kali lipat (rebalancing dua mingguan), biaya bakal nelan seluruh edge dan Sharpe jatuh mendekati nol. Inilah kenapa ngitung biaya sejak hari pertama, bukan di akhir, ngubah keputusan lo. Angka-angka ini ilustratif (≈), tapi struktur tradeoff-nya nyata: di IDX, turnover tinggi nyaris selalu kalah karena friksi yang besar.

BIAYA TRANSAKSI NGEGERUS SHARPEstrategi momentum IDX yang sama, dilihat sebelum & sesudah friksilevel kotor 0.550.55sebelum biayaSharpe kotor0.35sesudah biayaturnover 60%/bln0.04turnover 2× lipatrebalancing 2-mingguan−40%turnover tinggi nyaris selalu kalah di IDX karena friksi besar — hitung biaya sejak hari pertama

Lalu uji ketahanan. Geser parameter lookback dari 6 bulan ke 3, 9, 12 bulan — apakah edge bertahan di semua, atau cuma di "6 bulan ajaib"? Ubah kuintil jadi tertile/desil. Buang 5 bulan terbaik dari sampel — apakah masih untung? Kalau edge cuma hidup di satu kombinasi parameter dan satu rentang waktu, itu overfit; buang. Kalau dia bertahan (turun tapi nggak runtuh) di banyak setting, lo mungkin punya sesuatu yang nyata.

Contoh angka: efek "menyiksa data"

Analogi

Bayangin lo nyuruh 50 orang lempar koin masing-masing 10 kali. Secara rata-rata semua harusnya dapet ≈5 angka. Tapi pasti ada satu orang yang kebetulan dapet 8 atau 9 angka — bukan karena dia jago, murni karena lo ngasih banyak kesempatan ke keberuntungan. Kalau lo lalu nunjuk orang itu dan bilang "ini dukun koin", lo lagi nipu diri sendiri. Nguji 50 strategi sampah persis sama: yang "terbaik" kelihatan hebat semata-mata karena dia pemenang dari undian besar, bukan karena ada edge nyata.

Mari konkretin kenapa nyatat jumlah trial itu wajib. Misal lo uji N=50N = 50 strategi yang semuanya sebenarnya nggak berguna (Sharpe sejati = 0). Tiap strategi punya Sharpe teramati yang tersebar acak dengan deviasi standar (standard error) sekitar SE1/TSE \approx 1/\sqrt{T}, di mana TT = jumlah tahun observasi. Anggap T=5T = 5 tahun, maka:

  • SE=1/50.447SE = 1/\sqrt{5} \approx 0.447 (dalam satuan Sharpe tahunan)

Nilai maksimum yang diharapkan dari NN tarikan acak normal kira-kira E[maks]SE×ZE[\text{maks}] \approx SE \times Z, di mana ZZ adalah kuantil normal yang naik bersama NN. Untuk N=50N = 50, aproksimasi Z2lnN2ln507.822.80Z \approx \sqrt{2 \cdot \ln N} \approx \sqrt{2 \cdot \ln 50} \approx \sqrt{7.82} \approx 2.80. Maka:

  • E[Sharpe maks]0.447×2.801.25E[\text{Sharpe maks}] \approx 0.447 \times 2.80 \approx 1.25

Artinya: cukup dengan nguji 50 strategi sampah, lo diharapkan nemu satu dengan Sharpe ≈ 1.25 — angka yang kelihatan "bagus" menurut tabel industri — padahal expected return sejatinya nol. Inilah jebakan. Kalau lo nguji 1000 strategi, Z2ln10003.72Z \approx \sqrt{2 \cdot \ln 1000} \approx 3.72, dan Sharpe-maks palsu naik ke 0.447×3.721.66\approx 0.447 \times 3.72 \approx 1.66. (Angka-angka ini perkiraan dari aproksimasi maksimum normal, bukan nilai eksak.)

NYIKSA DATA: SHARPE PALSU DARI BANYAK PERCOBAAN50 strategi sampah (Sharpe sejati = 0), tapi yang "terbaik" kelihatan hebat-1011.251.662Sharpe yang teramatisejati = 0maks dari N=50≈ 1.25N=1000 ≈ 1.66makin banyak trial, makin jauh ke kanan "pemenang" palsunya — itu sebabnya DSR ndeflasi sesuai N
Pelajaran: Sharpe tinggi dari banyak percobaan itu murah

Sharpe 1.25 yang muncul dari 50 percobaan nggak sama dengan Sharpe 1.25 dari satu hipotesis yang lo tetapin di muka. Yang pertama sebagian besar adalah seleksi keberuntungan; yang kedua jauh lebih bisa dipercaya. Karena itu Deflated Sharpe Ratio ngurangin Sharpe lo sesuai NN. Kalau lo nggak nyatat NN dan nggak ndeflasi, lo pada dasarnya lagi baca termometer yang rusak. Catat setiap trial. Jujurlah pada diri sendiri soal berapa kali lo "nyoba lagi".

Kerangka kerja & alat yang nyata

Lo nggak perlu nulis semuanya dari nol. Ekosistem Python udah matang:

  • pandas / numpy — fondasi manipulasi data deret waktu.
  • backtrader, vectorbt, atau zipline-reloaded — mesin backtest event-driven (menghormati urutan waktu & biaya).
  • mlfinlab / metode dari Advances in Financial Machine Learning — purged CV, triple-barrier labeling, PBO, DSR.
  • statsmodels / scipy — uji statistik, regresi faktor.

Untuk data IDX: harga harian bisa diambil dari penyedia kayak Yahoo Finance (akhiran .JK, mis. BBCA.JK) buat eksplorasi awal, tapi buat riset serius lo butuh data point-in-time berbayar atau API broker yang nyertain emiten delisting dan corporate action yang bener.

Disiplin lab notebook

Catat setiap eksperimen kayak ilmuwan: tanggal, hipotesis, parameter, jumlah trial kumulatif, hasil, dan keputusan (lanjut/buang). Tanpa catatan ini lo bakal lupa udah nyoba berapa kali, dan deflasi Sharpe lo jadi bohong. Buku catatan riset adalah pengaman anti-overfitting yang paling murah dan paling sering diabaikan.

Memilih metode validasi: tiga pendekatan, tiga tradeoff

Buat lo, "validasi" bukan satu hal. Ada beberapa cara mbagi data, dan masing-masing punya bias sendiri. Tabel ini bantu lo milih sesuai situasi:

MetodeCara kerjaKelebihanBahaya
Holdout sederhana (train/test)Pisah satu titik: latih di 80% awal, uji di 20% akhir.Mudah, cepat, menghormati waktu.Cuma satu "ujian" out-of-sample; hasil bisa untung-untungan tergantung di mana titik potongnya.
Walk-forwardLatih di jendela lampau, uji di jendela berikutnya, geser maju, ulangi.Meniru cara strategi dipakai nyata; banyak periode uji; menangkap perubahan rezim.Boros data; jendela awal pendek; kalau jendela uji terlalu kecil, hasilnya berisik.
Purged k-fold CV + embargok-fold biasa tapi observasi yang waktunya tumpang-tindih dengan set uji dibuang + jeda embargo.Memakai data paling efisien; cocok untuk label yang merentang waktu (mis. triple-barrier).Rumit dipasang benar; salah set embargo = kebocoran tersembunyi.

Aturan praktis buat pemula: mulai dengan walk-forward karena dia paling jujur niru kenyataan dan paling susah dicurangi. Pakai purged CV ketika label lo merentang banyak hari (misal lo memprediksi return 20 hari ke depan, maka observasi yang jendelanya bertumpang-tindih harus di-purge). Hindari k-fold acak biasa buat data deret waktu — dia ngelatih model dengan data masa depan lalu ngujinya di masa lalu, kebocoran yang dijamin bikin hasil lo palsu.

Jebakan halus: kebocoran lewat normalisasi

Kebocoran nggak selalu datang dari pemilihan model. Kalau lo nstandardisasi fitur (mis. z-score) memakai mean dan standar deviasi dari seluruh dataset — termasuk periode uji — lo udah mbocorin masa depan ke masa lalu lewat pintu belakang. Hitung statistik normalisasi cuma dari data train, lalu terapin ke data uji. Ini kesalahan klasik yang bikin Sharpe melambung tanpa sebab nyata.

Alpha decay dan kapasitas: kenapa edge tidak abadi

Misal lo bener-bener nemu edge yang lolos semua tahap. Selamat — tapi jangan terlalu nyaman. Dua kekuatan bakal nggerogotin.

Alpha decay — peluruhan edge strategi seiring waktu, karena makin banyak pelaku nemu pola yang sama dan mentransaksikannya sampai harga menyesuaikan. Anomali yang dipublikasikan di jurnal akademik rata-rata kehilangan sebagian besar return-nya setelah publikasi (McLean & Pontiff, 2016, memperkirakan peluruhan ≈26% setelah sampel riset berakhir dan ≈58% lagi setelah publikasi).

Kapasitas (capacity) — jumlah modal yang bisa dijalankan sebuah strategi sebelum dampak pasar lo sendiri (market impact) ngehapus edge-nya. Strategi yang cantik dengan Rp50 juta bisa mati total dengan Rp50 miliar, karena order lo sendiri nggerakin harga.

Untuk pasar tipis kayak banyak saham IDX, kapasitas sering jadi pengikat yang lebih ketat daripada Sharpe. Strategi momentum tadi mungkin oke pada modal kecil, tapi begitu lo coba beli Rp10 miliar saham lapis dua dalam sehari, slippage lo sendiri bakal ngehapus edge yang ditunjukin backtest — yang diam-diam berasumsi lo bertransaksi tanpa nggerakin harga. Karena itu proses riset lo harus nyantumin satu kolom yang sering dilupain pemula: "berapa modal maksimum sebelum strategi ini mati?" Jawabannya mbatasin seberapa serius lo boleh nanggepin.

Konsekuensi praktis buat lo

Kabar baiknya: sebagai investor ritel kecil, kapasitas justru jadi keunggulan lo. Strategi yang terlalu kecil buat dana besar — di saham lapis dua yang nggak bisa mereka masukin tanpa nggerakin harga — masih bisa lo jalanin dengan modal Rp10–100 juta. Carilah edge di sudut-sudut yang terlalu sempit buat institusi besar; di situlah ritel punya keuntungan struktural, bukan kerugian.

Ketika sebuah strategi lolos semua tahap — hipotesis masuk akal, data bersih, walk-forward stabil, biaya udah dihitung, DSR positif, PBO rendah — jangan langsung pertaruhin tabungan lo. Jalanin paper trading (uji di pasar nyata tanpa uang) selama beberapa bulan, lalu mulai dengan ukuran sangat kecil. Out-of-sample yang sesungguhnya adalah masa depan yang belum terjadi; semua backtest, sekuat apa pun, cuma perkiraan tentangnya.

Pelajaran penutup

Edge nyata di pasar itu kecil, langka, dan cepat memudar (alpha decay). Proses riset yang baik nggak janjiin lo jadi Renaissance Technologies. Dia janjiin sesuatu yang lebih berharga buat pemula: kemampuan mbedain keberuntungan dari keterampilan, sebelum tagihannya datang. Kalau lo cuma ngambil satu hal dari bab ini: catat jumlah trial lo, kunci data lockbox, dan biarin ide-ide buruk mati dengan cepat.

Catatan: seluruh isi bab ini adalah materi edukasi tentang metodologi riset, bukan rekomendasi finansial. Tidak ada strategi atau saham tertentu yang disarankan untuk dibeli atau dijual. Lakukan riset sendiri dan, bila perlu, konsultasikan dengan penasihat berlisensi.

Sumber