Agen strategi dapat mencemari set uji tanpa memasukkan satu baris data uji pun ke pekerjaan pelatihan. Jika agen melihat skor uji, mengubah parameter, lalu menjalankan ulang, skor itu sudah memengaruhi strategi. Kodenya mungkin menyebut periode tersebut “out of sample”. Namun, proses riset telah menjadikannya bagian dari pencarian.
Saya pernah melihat ini terjadi demi kemudahan: agen menjalankan satu batch, membaca tabel ringkasan, lalu mengusulkan sedikit perbaikan. Tak seorang pun memintanya menyesuaikan model dengan data holdout. Namun, putaran umpan balik itu tetap membuatnya melakukannya.
Kesalahan 1: Membiarkan agen mengintip setelah setiap proses berjalan
Dampaknya biasanya terlihat dari Sharpe uji yang naik sedikit demi sedikit dengan rapi. Agen mencoba 30 varian, memilih yang terbaik, lalu mencoba 30 varian di sekitarnya. Setiap perubahan tampak masuk akal jika dilihat sendiri-sendiri. Jika digabungkan, semuanya mengubah periode uji menjadi sasaran optimasi.
Berikut contoh sederhana. Misalkan strategi tidak punya keunggulan nyata dan Anda menguji 100 varian independen pada data holdout. Jika Anda memilih Sharpe tertinggi, sangat mungkin Anda mendapatkan hasil yang tampak mengesankan hanya karena kebetulan. Dalam kebanyakan pencarian strategi, varian-varian itu tidak benar-benar independen. Namun, itu tidak menyelamatkan prosesnya: umpan balik berulang tetap menguntungkan pengaturan yang kebetulan cocok dengan karakteristik khusus data holdout.
Lindungi data holdout dengan batas akses hasil. Agen dapat mengembangkan strategi menggunakan periode pelatihan dan validasi, tetapi tidak dapat mengambil metrik atau grafik holdout. Jalankan evaluasi akhir dalam pekerjaan terpisah, satu kali setelah pilihan riset dibekukan, lalu catat versi strategi dan snapshot data bersama hasilnya.
Kesalahan 2: Menganggap setiap periode setelahnya sebagai “data baru”
Rentang tanggal tidak otomatis menjadi data baru hanya karena berada setelah jendela pelatihan. Jika agen pernah melihat skor dari rentang itu, atau seseorang menggunakan drawdown-nya untuk memilih fitur lain, rentang tersebut sudah menjadi bagian dari putaran umpan balik.
| Periode | Penggunaan yang diizinkan | Hal yang mengubah statusnya |
|---|---|---|
| Pelatihan | Menyesuaikan aturan dan parameter | Tidak ada; periode ini memang untuk pencarian |
| Validasi | Membandingkan kandidat dan mengambil keputusan riset | Penggunaan berulang mempermudah terjadinya overfitting |
| Holdout akhir | Satu evaluasi untuk kandidat yang telah dibekukan | Membaca hasilnya lalu mengubah kandidat |
| Periode paper trading mendatang | Mengamati perilaku implementasi secara prospektif | Menggunakan hasil untuk menyetel strategi akan memulai siklus riset baru |
Evaluasi walk-forward bergulir dapat membantu memperkirakan perilaku proses riset tetap dari waktu ke waktu. Namun, metode ini tidak memberi izin untuk mengintip setiap fold tanpa batas. Jika agen melihat hasil fold lalu menyesuaikan pencariannya, fold tersebut juga menjadi bagian dari umpan balik. Sisakan satu periode akhir yang belum tersentuh untuk keputusan yang benar-benar ingin Anda ambil.
Kesalahan 3: Membekukan kode sambil mengubah pertanyaan
Terkadang kode strategi tetap sama, tetapi peneliti mengubah evaluasi setelah melihat hasil: mengganti benchmark, mengecualikan bulan yang buruk, melaporkan semesta aset yang berbeda, atau berfokus pada metrik yang terlihat paling kuat. Set uji telah mengarahkan narasi meskipun parameternya tidak berubah.
Dampaknya terlihat dalam laporan yang rapi dengan satu kesimpulan utama yang meyakinkan, tetapi tanpa catatan tentang sudut pandang lain yang sempat dicoba. Strategi ekuitas mungkin tampak lemah dibandingkan indeks pasar luas, tetapi kuat dibandingkan kas; strategi kripto mungkin unggul di satu bursa setelah beberapa bursa diperiksa. Perbandingan itu bisa berguna, tetapi memilih di antara semuanya setelah melihat data holdout adalah satu lagi tahap seleksi.
Simpan catatan riset. Untuk setiap proses, simpan hipotesis, versi kode, snapshot data, pencarian parameter, jendela evaluasi, metrik yang diminta, serta apakah agen atau peneliti melihat hasilnya. Log ringkas lebih berguna daripada label “out of sample” yang terdengar sempurna.
Lalu, tetapkan pertanyaan akhir dengan jelas sebelum evaluasi: kandidat yang mana, semesta pasar yang mana, benchmark yang mana, biaya apa saja, dan metrik yang mana? Jika jawabannya berubah setelah hasil keluar, anggap proses berikutnya sebagai riset dan sisihkan data baru untuk pemeriksaan akhir berikutnya.
Apa yang masih bisa saya pelajari dari data holdout yang tercemar?
Data itu tidak sia-sia. Data tersebut dapat menunjukkan perilaku strategi selama periode itu dan membantu mendiagnosis kegagalan. Namun, berhentilah menyajikan skornya sebagai konfirmasi independen. Gunakan sebagai bukti pengembangan, bekukan kandidat berikutnya, lalu evaluasi kandidat itu pada periode paper trading mendatang yang benar-benar baru dengan asumsi akuntansi dan eksekusi yang sama.
Dalam alur kerja berbasis agen, jumlah eksperimen mudah luput: satu prompt dapat menghasilkan puluhan proses sebelum siapa pun menyadarinya. Perlindungannya bersifat prosedural. Batasi hal yang dapat diperiksa agen, catat setiap eksperimen, dan sisakan satu evaluasi dengan hasil yang tidak dapat mengarahkan kandidat yang sedang dinilai.
← Semua artikel


