Kesalahan Umum dalam Praktik Backtesting
Apa itu backtesting (dan apa yang bukan)
Backtesting adalah proses menerapkan aturan trading atau kerangka pengambilan keputusan yang telah ditentukan sebelumnya pada data pasar historis untuk melihat bagaimana kinerjanya. Kata kuncinya adalah telah ditentukan sebelumnya: sebuah backtest hanya bermakna ketika logika, input, dan metode perhitungan ditetapkan sebelum Anda menjalankannya.
Backtest bukanlah jaminan hasil di masa depan. Hubungan historis dapat berubah, dan hasil Anda hanya serealistis asumsi Anda tentang eksekusi dan kondisi trading. Jika tujuan Anda adalah belajar, perlakukan backtesting sebagai latihan pengukuran: Anda menguji hipotesis tertentu dalam kondisi yang dimodelkan secara spesifik.
Kesalahan umum dan mengapa hal itu penting
-
Tidak memisahkan asumsi dari hasil Kesalahpahaman yang sering terjadi adalah memperlakukan hasil backtest sebagai kebenaran pasar. Dalam praktiknya, hasil bergantung pada asumsi Anda: bagaimana eksekusi harga dimodelkan, bagaimana spread dan komisi ditangani, dan bagaimana order dieksekusi. Jika Anda tidak menyatakan asumsi ini, dua orang dapat menjalankan ide yang “sama” dan mendapatkan hasil yang berbeda.
-
Overfitting dan perburuan parameter Overfitting terjadi ketika aturan disetel terlalu ketat pada data masa lalu sehingga menangkap noise, bukan perilaku yang dapat diulang. Salah satu tandanya adalah hasil yang terus membaik pada kumpulan data yang sama secara berulang, sementara kinerja di tempat lain menurun. Bahkan tanpa “kecurangan,” penyempurnaan berulang yang dipandu oleh backtest dapat mengubah proses tersebut menjadi pencocokan kurva.
-
Memilih periode waktu secara selektif Kesalahan lain adalah hanya menguji pada sejarah yang menguntungkan. Terkadang ini terjadi secara tidak sengaja (misalnya, menggunakan periode yang kebetulan cocok dengan rezim tertentu). Konsekuensinya adalah backtest yang mungkin terlihat meyakinkan, tetapi mencerminkan efek seleksi, bukan efek yang berlaku secara luas.
-
Menggunakan model eksekusi yang tidak realistis Banyak backtest menyederhanakan eksekusi: mereka mungkin mengasumsikan eksekusi sempurna pada harga ideal, mengabaikan latensi, atau memperlakukan slippage sebagai konstan padahal tidak. Hal ini dapat membuat hasil terlihat lebih kuat daripada yang seharusnya dalam batasan nyata. Bahkan jika logikanya masuk akal, pengukuran kinerjanya bisa keliru.
-
Mengabaikan biaya dan batasan praktis Biaya mencakup komisi, spread, dan pengeluaran trading konsisten lainnya. Batasan mencakup batasan pada penempatan order dan apakah aturan tersebut benar-benar dapat menghasilkan posisi pada waktu yang diasumsikan oleh backtest. Jika hal-hal ini dihilangkan atau diperkirakan secara longgar, imbal hasil bisa menjadi terlalu tinggi.
-
Mengacaukan hasil yang mirip korelasi dengan kualitas keputusan Backtesting dapat menghasilkan hasil yang terlihat menarik karena kumpulan datanya, bukan karena aturannya. Misalnya, aturan yang dipicu dalam rezim tren mungkin berkinerja baik dalam sampel tetapi gagal ketika kondisi berubah. Mode kegagalan yang umum adalah mengira “kinerja yang bagus” sebagai “proses keputusan yang stabil.”
Keterbatasan dan risiko yang harus Anda perkirakan
Keterbatasan terbesar adalah bahwa backtesting adalah model dari realitas, bukan realitas itu sendiri. Eksekusi, likuiditas, dan struktur mikro pasar dapat berbeda di berbagai waktu dan lingkungan. Selain itu, data historis mungkin tidak lengkap atau tidak konsisten (misalnya, kehilangan perilaku intraday tertentu), yang dapat mendistorsi pengukuran.
Keterbatasan kedua adalah bahwa metrik kinerja bergantung pada desain pengujian. Mengubah frekuensi data, perhitungan imbal hasil, urutan operasi, atau cara penyelarasan trade dapat mengubah hasil. Oleh karena itu, bahkan jika kode backtest Anda benar, kesimpulannya mungkin tidak kuat.
Terakhir, hasil dapat bervariasi dengan kondisi pasar tertentu dan dengan bagaimana biaya serta eksekusi direpresentasikan. Karena itu, satu backtest sebaiknya jarang diperlakukan sebagai jawaban final.
Pemeriksaan verifikasi (netral dan mandiri)
Gunakan pemeriksaan netral untuk memastikan apakah hasil backtest itu kuat, bukan kebetulan.
- Nyatakan asumsi secara eksplisit: dokumentasikan bagaimana Anda memodelkan spread, slippage, komisi, dan eksekusi order.
- Pertahankan parameter tetap untuk evaluasi: hanya lakukan penyesuaian pada fase terpisah, lalu evaluasi tanpa perubahan lebih lanjut.
- Uji di beberapa segmen waktu: bandingkan kinerja dalam rezim historis yang berbeda.
- Lakukan stress test pada biaya dan eksekusi: variasikan asumsi slippage dalam rentang yang masuk akal untuk melihat apakah kesimpulan berubah.
- Gunakan evaluasi di luar sampel atau holdout: pastikan bahwa peningkatan tidak hanya ada pada data yang digunakan untuk menyusun aturan.
Jika pemeriksaan ini menunjukkan ketidakstabilan yang besar, itu adalah hasil yang berharga: ini menunjukkan bahwa logika strategi mungkin sensitif terhadap pilihan pemodelan atau kondisi pasar. “Kegagalan” tersebut adalah informasi tentang ketahanan, bukan jalan buntu.