Jawaban langsung
Praktik backtesting dalam forex adalah proses menerapkan metode berbasis aturan yang telah ditetapkan pada data pergerakan pasar masa lalu untuk memperkirakan bagaimana metode tersebut mungkin bekerja. Tujuannya bukan untuk memprediksi masa depan, melainkan untuk memeriksa apakah metode tersebut konsisten dengan data berdasarkan asumsi yang eksplisit (misalnya bagaimana harga, spread, dan eksekusi dimodelkan).
Backtest yang praktis memiliki pipeline yang dapat diulang: siapkan input, simulasi eksekusi menggunakan aturan yang ditetapkan, hitung output (misalnya return dan drawdown), lalu nilai apakah hasilnya masuk akal dan tahan uji. Karena hasil trading forex bergantung pada kondisi yang bisa berubah, backtesting dapat gagal ketika pengaturan pengujian tidak sesuai dengan cara trade benar-benar dieksekusi.
Mekanika: definisi, input, dan urutan
Backtesting dimulai dengan definisi yang jelas tentang apa yang akan diuji.
-
Tentukan aturan ("metode") Backtest membutuhkan seperangkat aturan yang deterministik yang mengubah data menjadi keputusan. Secara sederhana, aturan tersebut menentukan kapan metode akan masuk, keluar, dan mengelola posisi. Agar prosesnya bisa diuji, aturan tidak boleh bergantung pada informasi yang tidak tersedia pada saat pengambilan keputusan.
-
Kumpulkan dan siapkan data historis Anda memilih data harga historis untuk instrumen forex yang relevan dan periode waktu tertentu. Tahap persiapan biasanya mencakup pembersihan (menghapus tick yang buruk atau gap), menyelaraskan zona waktu, dan mengonversi data menjadi format yang konsisten (misalnya, bar dengan panjang waktu tetap).
-
Tetapkan asumsi pengujian Backtest forex hampir selalu memerlukan asumsi karena eksekusi masa depan tidak diamati secara historis dengan cara yang sama seperti untuk trade live. Asumsi material meliputi:
- Pemodelan bid/ask: apakah trade terisi pada harga tengah (mid-price), bid, ask, atau model spread khusus.
- Biaya: komisi, pembiayaan/rollover, dan perilaku spread.
- Timing eksekusi: apakah keputusan terjadi saat penutupan bar, saat pembukaan bar, atau intrabar dengan cara yang didukung oleh data historis.
-
Jalankan simulasi Simulasi mengiterasi sepanjang timeline historis. Pada setiap titik keputusan, simulasi menerapkan aturan pada data yang tersedia, lalu memperbarui posisi dan kondisi akun sesuai model eksekusi yang ditetapkan.
-
Hitung output Output mengubah trade hasil simulasi menjadi ringkasan yang dapat diukur. Contoh umum meliputi total return, volatilitas, maximum drawdown, dan distribusi hasil trade. Bahkan ketika Anda menghitung metrik yang canggih, interpretasinya bergantung pada asumsi dan cakupan data.
-
Evaluasi dan bandingkan Karena backtest bisa terlihat bagus karena kebetulan, Anda membandingkan hasil di berbagai jendela waktu dan mengecek apakah performa tetap stabil ketika potongan data berubah. Metode yang hanya bekerja pada satu periode sempit sering kali kurang dapat diandalkan dibanding metode yang menunjukkan perilaku konsisten di bawah kondisi yang berbeda.
Bukti atau contoh: pengaturan backtest yang sederhana dan bisa dicek
Pertimbangkan contoh edukatif minimal yang mengilustrasikan mekanika tanpa menyiratkan hasil tertentu.
Misalkan Anda ingin menguji sistem berbasis aturan yang membuat keputusan sekali per jam menggunakan data harga historis per jam. Metode Anda mungkin menetapkan:
- Aturan keputusan berdasarkan informasi yang dapat diamati pada atau sebelum jam penutupan.
- Aturan ukuran posisi (misalnya, fraksi tetap dari ekuitas atau lot size tetap).
- Aturan exit berdasarkan kondisi yang telah ditetapkan.
Agar contoh ini bisa dicek, Anda akan menyatakan asumsi secara eksplisit:
- Asumsi eksekusi: entry menggunakan bid/ask yang konsisten dengan arah long atau short.
- Asumsi spread: Anda menggunakan time series spread (jika memilikinya) atau Anda menerapkan nilai spread tetap yang dinyatakan di awal.
- Asumsi biaya: Anda memasukkan estimasi komisi dan perkiraan pembiayaan/rollover apa pun, atau Anda menyatakan bahwa pembiayaan dikecualikan.
Lalu backtest akan:
- Melakukan loop per jam melalui dataset.
- Pada setiap jam, hitung sinyal menggunakan hanya data masa lalu hingga timestamp tersebut.
- Jika aturan menyatakan untuk melakukan trading, simulasikan pengisian (fill) menggunakan asumsi eksekusi Anda.
- Perbarui ekuitas dan lacak drawdown.
- Setelah periode penuh, hitung ringkasan performa.
Jika metrik yang dihasilkan ternyata sangat kuat, langkah berikutnya adalah mengecek apakah pengaturan tersebut secara tidak sengaja menggunakan informasi yang tidak akan tersedia pada saat pengambilan keputusan, atau apakah model biaya terlalu optimistis. Jika hasilnya lemah atau tidak stabil, itu bisa menjadi tanda bahwa metode tidak sesuai dengan data atau tanda bahwa asumsi tidak mencerminkan eksekusi yang realistis.
Keterbatasan dan mode kegagalan
Backtesting dalam forex memiliki keterbatasan yang penting. Pipeline yang sama bisa menghasilkan hasil yang sangat berbeda ketika asumsi berubah.
-
Bias melihat ke depan (look-ahead bias) Look-ahead bias terjadi ketika backtest menggunakan informasi yang tidak akan diketahui pada waktu keputusan. Ini bisa terjadi melalui kesalahan penyelarasan data, penggunaan nilai masa depan, atau penyusunan aturan berdasarkan indikator yang dihitung dengan cara yang membocorkan informasi masa depan.
-
Overfitting dan "tuning ke noise" Sebuah metode mungkin disesuaikan sampai performanya bagus pada periode historis tertentu, tetapi performa yang terlihat itu bisa jadi kebetulan. Overfitting paling mungkin terjadi ketika Anda mengeksplorasi banyak pengaturan parameter dan memilih yang menghasilkan hasil historis terbaik tanpa mengendalikan proses pemilihan.
-
Eksekusi dan pemodelan biaya yang tidak realistis Hasil trading forex sangat bergantung pada detail eksekusi. Jika backtest mengasumsikan fill pada harga yang menguntungkan, mengabaikan variabilitas spread, atau tidak memasukkan slippage, maka performa bisa dilebih-lebihkan. Bahkan jika Anda memasukkan biaya, model tersebut mungkin tidak mencerminkan bagaimana order akan berperilaku dalam kondisi likuiditas yang nyata.
-
Non-stasioneritas: hubungan historis dapat berubah Dinamika pasar bisa bergeser. Backtest menguji perilaku masa lalu, bukan perilaku masa depan. Bahkan jika metode tersebut bekerja secara historis, perubahan pada volatilitas, rezim, likuiditas, atau friksi trading dapat mengurangi relevansinya.
-
Masalah kualitas data Data yang hilang, timestamp yang tidak akurat, atau pengambilan sampel yang tidak konsisten dapat menciptakan artefak yang keliru ditafsirkan oleh backtest sebagai keunggulan trading.
Verifikasi: cara memeriksa backtest secara independen
Verifikasi independen berfokus pada apakah hasil tetap bertahan ketika dilakukan perubahan yang seharusnya tidak mengubah metode secara drastis.
Pendekatan verifikasi yang praktis mencakup:
- Reproducibility: orang lain harus bisa menjalankan ulang aturan yang sama pada data yang sama dan mendapatkan output yang sama.
- Ketahanan lintas waktu: uji beberapa periode yang tidak saling tumpang tindih untuk melihat apakah performa tetap mirip.
- Sensitivitas terhadap asumsi: ubah spread, komisi, dan timing eksekusi dalam batas yang wajar lalu amati apakah kesimpulan berubah.
- Pemeriksaan di luar sampel: pisahkan proses memilih atau melakukan tuning dari proses mengevaluasi, sehingga periode evaluasi tidak digunakan untuk merancang aturan.