Backtest bisa terlihat lebih meyakinkan setelah datanya Anda buat lebih buruk. Buang cetakan harga yang jelek, isi celah dengan harga yang rapi, dan rasio Sharpe mungkin naik. Kenaikan itu bisa menjadi peringatan: aturan pembersihan mungkin telah menghapus kondisi pasar yang justru harus bisa dihadapi strategi Anda.
Kualitas data itu penting. Kuotasi silang atau transaksi duplikat dapat menciptakan eksekusi yang sebenarnya tak mungkin diperoleh siapa pun. Namun, filter yang menghilangkan observasi yang tidak menguntungkan juga merupakan pilihan model. Perlakukan filter itu dengan kecurigaan yang sama seperti saat menilai fitur sinyal baru.
Kapan harga yang buruk benar-benar merupakan data yang buruk?
Mulailah dengan bertanya apa yang diwakili oleh observasi tersebut. Transaksi yang jauh dari pasar yang berlaku bisa merupakan catatan rusak, sapuan likuiditas tipis yang sungguh terjadi, atau peristiwa khusus di suatu venue. Candle 1 menit dengan bar bervolume nol bisa berarti tak ada transaksi, sedangkan candle yang hilang bisa berarti feed gagal. Masing-masing kasus perlu penanganan berbeda.
Bayangkan strategi mean reversion sederhana yang membeli saat harga turun 1% di bawah rata-rata bergerak jangka pendek dan keluar di rata-rata tersebut. Pada periode semalam dengan likuiditas tipis, satu transaksi tercetak 1.2% di bawah harga sebelumnya, lalu pasar memantul kembali. Jika cetakan itu sah, strategi dengan limit order yang sudah menunggu mungkin terisi. Jika itu tick keliru yang tidak didukung kuotasi yang bisa dieksekusi, menghitung eksekusi tersebut berarti mengada-adakan keunggulan.
Menghapus bar tidak serta-merta lebih aman. Strategi mungkin masih memiliki order yang menunggu di pasar, dan transaksi nyata berikutnya bisa mengisinya. Replay yang dapat dipertanggungjawabkan perlu memodelkan apa yang dapat diamati strategi dan apa yang secara masuk akal dapat dieksekusi oleh ordernya.
Apa dampak aturan pembersihan terhadap hasil?
Jalankan strategi dengan beberapa perlakuan data yang ditetapkan secara eksplisit, lalu bandingkan perubahannya. Simpan sumber mentah dan catat setiap pengecualian atau perbaikan beserta alasannya. Kemudian laporkan seberapa besar hasil bergantung pada keputusan tersebut.
| Perlakuan data | Potensi manfaat | Risiko bagi backtest |
|---|---|---|
| Hapus cetakan harga di luar rentang kesalahan bursa yang terdokumentasi | Mencegah catatan yang diketahui tidak valid menghasilkan nilai ekstrem | Aturan tersebut mungkin salah menggolongkan transaksi yang sah saat pasar bergerak cepat |
| Gunakan harga terakhir untuk mengisi interval yang hilang | Menjaga indikator agar tidak gagal saat ada celah | Menciptakan harga yang mungkin tidak pernah menjadi harga transaksi |
| Gunakan kuotasi terkonsolidasi alih-alih transaksi terakhir | Memberi gambaran yang lebih baik tentang harga eksekusi yang ditampilkan | Ukuran kuotasi, akses ke venue, dan posisi antrean tetap berpengaruh |
| Buang semua bar pencilan berdasarkan ambang statistik | Mengurangi sensitivitas terhadap nilai ekstrem | Dapat menghapus periode tekanan pasar nyata saat strategi mengalami sebagian besar kerugiannya |
Misalkan Sharpe pada pengujian tanpa filter adalah 0.9, sedangkan pengujian yang mengecualikan 0.8% bar naik menjadi 1.4. Itu saja belum membuktikan kemenangan dalam kualitas data. Periksa apakah bar yang dihapus berkumpul di sekitar lonjakan volatilitas, apakah kontribusinya terhadap P&L cukup besar, dan apakah aturan pengecualian ditetapkan sebelum Anda melihat hasilnya.
Buat buku besar pengecualian data: sumber, timestamp, bidang yang terdampak, alasan tindakan, dan apakah keputusan dibuat sebelum atau sesudah meninjau kinerja strategi.
Bagaimana cara menguji apakah pembersihan mengubah keunggulan strategi?
Bekukan strategi dan bandingkan beberapa perlakuan yang masuk akal pada tanggal yang sama. Jika memungkinkan, sertakan replay mentah, kumpulan koreksi yang terdokumentasi, dan skenario eksekusi konservatif untuk observasi yang masih ambigu. Untuk setiap pengujian, laporkan jumlah transaksi, turnover, drawdown, serta kontribusi P&L dari interval terdampak bersama rasio Sharpe.
Lalu periksa transaksi yang berubah. Jika pemenang terbesar strategi lenyap saat sekelompok kecil cetakan yang mencurigakan dikecualikan, periksa catatan tersebut satu per satu. Jika yang lenyap justru kerugiannya, teliti dengan cermat juga. Aturan yang hanya diperiksa dengan saksama ketika merugikan backtest sudah ikut menentukan hasil riset.
Agar studi dapat direproduksi, beri versi pada berkas vendor atau checksum-nya, kode pembersihan, dan daftar pengecualian. Vendor mungkin merevisi riwayat; pengujian Anda berikutnya harus memungkinkan Anda mengetahui apakah strateginya berubah atau input-nya yang berubah.
Namun, bukankah pembersihan memang perlu?
Ya. Menyimpan catatan yang jelas-jelas rusak dapat mengada-adakan transaksi, mendistorsi volatilitas, atau merusak indikator. Dan tak seorang pun seharusnya menganggap feed mentah sebagai kebenaran mutlak. Intinya lebih spesifik: pembersihan perlu didukung bukti, aturan yang dibekukan, dan pemeriksaan sensitivitas karena pembersihan dapat mengubah pasar seperti apa yang diklaim diwakili oleh backtest.
Saat perbaikan data meningkatkan kinerja, tanyakan observasi apa yang dihapus dan apakah Anda akan mengambil keputusan yang sama tanpa melihat kurva ekuitas. Jika jawabannya belum pasti, simpan kedua versi dalam catatan riset. Selisih di antara keduanya adalah bagian dari hasil.
← Semua artikel


