Apa itu praktik backtesting?
Praktik backtesting adalah proses menerapkan seperangkat aturan trading yang telah ditentukan pada data pasar historis, lalu meninjau hasil yang seharusnya terjadi di bawah aturan-aturan tersebut. Tujuannya adalah pembelajaran dan evaluasi: Anda membandingkan apa yang akan dilakukan aturan-aturan itu di masa lalu dengan metrik yang jelas (misalnya, drawdown, frekuensi trade, atau konsistensi), tanpa mengklaim bahwa hasil yang sama akan terjadi di masa depan.
Perbedaan penting adalah bahwa backtesting biasanya didasarkan pada “apa yang akan dilakukan aturan-aturan tersebut.” Jika pendekatan bergantung pada penilaian yang tidak dapat direplikasi dari catatan historis (misalnya, keputusan diskresioner yang memerlukan informasi yang hanya tersedia secara real time), backtest menjadi kurang dapat diandalkan karena tidak dapat merekonstruksi proses pengambilan keputusan dengan setia.
Bagaimana praktik backtesting bekerja
Backtesting bukan hanya “menjalankan strategi di sebuah chart.” Alur kerja backtesting yang praktis biasanya mencakup:
1) Tentukan aturan dan ruang lingkup evaluasi
Pertama, Anda menetapkan kondisi yang memicu entri dan exit serta bagaimana ukuran posisi bekerja. Agar dapat diuji, kondisi-kondisi tersebut harus dapat diekspresikan dari data yang tersedia pada saat trade dilakukan. Anda juga menentukan ruang lingkup evaluasi: satu pasar, satu periode waktu, dan apakah Anda menguji satu instrumen atau beberapa instrumen.
2) Siapkan data historis
Berikutnya, Anda menyusun data harga untuk periode waktu yang dipilih. Kualitas menjadi penting karena backtest dapat terdistorsi oleh masalah seperti gap, timestamp yang salah, corporate actions (jika relevan), atau perbedaan antara bid/ask dan harga mid. Bahkan ketika dataset “lengkap,” dataset tersebut mungkin tidak merepresentasikan harga persis yang akan diterima oleh order live.
3) Pilih asumsi eksekusi
Backtesting memerlukan asumsi tentang eksekusi order. Titik keputusan yang umum meliputi:
- Bagaimana Anda memodelkan fill (misalnya, menggunakan bar open, bar close, atau pendekatan yang lebih granular).
- Bagaimana Anda menangani spread dan komisi.
- Apakah order dapat diisi pada harga yang dimaksud atau apakah slippage ikut diperhitungkan.
Pilihan-pilihan ini sering kali menjadi pembeda antara backtest yang hanya perkiraan kasar dan backtest yang lebih mendekati bagaimana order mungkin berperilaku.
4) Jalankan pengujian dan ukur hasilnya
Kemudian, Anda menerapkan aturan-aturan tersebut pada seluruh rangkaian historis dan mencatat hasilnya. Metrik yang umum mencakup performa bersih selama periode, maximum drawdown, rata-rata hasil trade, serta seberapa stabil hasilnya dari waktu ke waktu. Penekanannya adalah mengidentifikasi pola dan kelemahan (misalnya, apakah performa bergantung pada sejumlah kecil trade yang tidak biasa).
5) Validasi dengan segmen data baru
Praktik yang umum adalah mengevaluasi aturan yang sama pada segmen data yang tidak digunakan selama definisi aturan. Ini tidak “membuktikan” performa di masa depan, tetapi membantu mendeteksi apakah pendekatan tersebut hanya cocok dengan jendela historis tertentu.
Keterbatasan, risiko, dan ketidakpastian yang relevan
Praktik backtesting bisa bermanfaat, tetapi memiliki keterbatasan yang sudah diketahui. Risiko utama berasal dari bagaimana backtest dibangun dan apa yang diasumsikannya.
Realisme data dan perbedaan eksekusi
Harga historis bukan pengulangan sempurna dari trading live. Bahkan tanpa mengubah aturan, eksekusi di pasar nyata dapat berbeda karena spread, perilaku antrian order, latensi, dan slippage. Jika backtest menggunakan asumsi yang disederhanakan (seperti fill pada harga ideal), hasilnya bisa terlihat lebih kuat daripada yang realistis dapat dicapai.
Overfitting dan “penyetelan untuk sejarah”
Overfitting terjadi ketika aturan dan parameter disesuaikan agar terlalu cocok dengan data masa lalu. Misalnya, mengubah parameter berulang kali setelah melihat hasil backtest dapat menciptakan kecocokan dengan noise. Dalam kasus itu, performa pada sampel historis tertentu mungkin tidak berlanjut pada periode lain.
Survivorship dan efek seleksi
Jika Anda hanya menguji instrumen atau periode waktu yang secara kebetulan menampilkan performa yang baik, Anda memperkenalkan bias seleksi. Demikian pula, menggunakan hanya data yang “selamat” atau mudah tersedia dapat salah menggambarkan keseluruhan lingkungan trading yang ada ketika aturan-aturan tersebut seharusnya diuji.
Perubahan rezim dan non-stasioneritas
Pasar dapat berubah perilakunya dari waktu ke waktu karena pergeseran likuiditas, volatilitas, perilaku partisipan, atau kondisi makro. Backtesting mengasumsikan bahwa hubungan antara sinyal dan dinamika harga cukup stabil selama periode yang diuji. Ketika rezim pasar bergeser, aturan yang sama bisa berkinerja lebih buruk.
Rasa nyaman yang menyesatkan dari satu metrik
Sebuah backtest dapat menghasilkan skor yang menguntungkan pada satu metrik sambil menyembunyikan masalah serius. Misalnya, sebuah metode mungkin menunjukkan hasil rata-rata yang positif tetapi memiliki drawdown besar atau performa buruk pada sub-periode tertentu. Mengandalkan satu hasil headline dapat menyembunyikan risiko.
Cara memverifikasi hasil backtesting secara independen (tanpa jaminan)
Karena backtesting sensitif terhadap asumsi, verifikasi independen berfokus pada pemeriksaan konstruksi daripada mempercayai performa headline.
Anda dapat melakukan pengecekan silang dengan:
- Menguji logika aturan yang sama pada beberapa periode waktu.
- Memeriksa apakah hasil tetap konsisten ketika Anda mengubah asumsi eksekusi dalam batas yang wajar.
- Membandingkan hasil menggunakan granularitas data yang berbeda (jika tersedia) untuk melihat apakah performa bergantung pada representasi harga tertentu.
- Meninjau apakah aturan-aturan tersebut dapat diimplementasikan dari informasi yang tersedia pada saat itu.
Bahkan dengan verifikasi yang cermat, backtesting tidak dapat menjamin hasil di masa depan. Namun, backtesting dapat membantu Anda memahami asumsi dan pilihan data mana yang secara material memengaruhi hasil serta di mana ketidakpastian paling tinggi.
Praktik backtesting vs tugas pembelajaran terkait
Praktik backtesting berbeda dari sekadar meninjau chart masa lalu atau mengidentifikasi pola secara visual. Inspeksi visual dapat mengonfirmasi bahwa harga bergerak ke arah tertentu, tetapi tidak menguji seperangkat aturan yang sepenuhnya dispesifikasikan dan dapat diulang. Backtesting, ketika dilakukan dengan aturan yang eksplisit, asumsi eksekusi yang terstruktur, dan evaluasi lintas waktu, memfokuskan pembelajaran pada keterulangan dan hasil yang dapat diukur, bukan pada ingatan atau interpretasi.
Untuk konteks yang lebih dalam tentang bagaimana backtesting masuk ke pendekatan pembelajaran yang lebih luas, ada baiknya juga meninjau bagaimana konsep learning forex trading terhubung dengan disiplin proses dan standar evaluasi.
Jika Anda menginginkan detail yang lebih terarah, Anda juga dapat membandingkan bagaimana backtesting berbeda dari konsep forex terkait atau meninjau contoh yang sudah dikerjakan tentang bagaimana aturan diterapkan langkah demi langkah.