Backtesting adalah simulasi hasil aturan perdagangan yang ditetapkan sebelumnya pada data historis, dengan model pelaksanaan transaksi dan biaya tertentu.
Peter melihat bahwa hari kenaikan terkadang disusul kenaikan lagi. Alih-alih membeli berdasarkan firasat, ia menuliskan aturan dan menerapkannya pada harga lama. Itulah Backtesting: menguji gagasan pada masa lalu. Hasilnya menggambarkan model yang dipilih, bukan uang yang benar-benar diperoleh Peter. Bailey et al. menjelaskan mengapa hasil historis yang menarik perlu dibedakan dari validasi strategi yang dapat diandalkan. [1]
Peter hanya boleh memakai informasi yang tersedia sebelum transaksi. Jika aturan memakai harga penutupan hari itu, ia tidak bisa membeli pada pagi harinya berdasarkan harga tersebut. QuantConnect menyebut kesalahan ini Look-ahead Bias: informasi masa depan masuk ke keputusan masa lalu. Untuk data yang dipublikasikan, waktu penerbitanlah yang penting, bukan hanya periode yang dijelaskan; revisi kemudian juga belum diketahui. Karena itu contoh kami memakai penutupan sebelumnya yang telah selesai dan harga pembukaan berikutnya. [2]
Memilih hanya pasar atau perusahaan yang masih bertahan hingga kini menimbulkan distorsi lain. QuantConnect menyebutnya Survivorship Bias dan menjelaskannya melalui penggunaan anggota indeks saat ini untuk menguji masa lalu. Data Bitcoin juga bergantung pada bursa, gangguan layanan, dan cara harga disusun. Harga dari satu layanan belum tentu dapat diperoleh di tempat lain. Catatan salah boleh diperbaiki dengan jejak perubahan; menghapus kejatuhan yang tidak menyenangkan justru mengubah pertanyaan penelitian. [2]
Program harus menentukan kapan pesanan terisi, pada harga berapa, dan sebanyak apa. Model pengisian pesanan yang dijelaskan QuantConnect menjalankan fungsi ini. Grafik menyentuh suatu harga tidak membuktikan seluruh pesanan bisa dipenuhi di sana. Pesanan nyata dapat terisi sebagian; model bawaan platform ini mengasumsikan pengisian penuh dalam backtest. Usia harga dan likuiditas—kemungkinan menemukan pihak lawan transaksi—juga perlu diperiksa. [3]
Slippage adalah selisih antara harga pelaksanaan yang diharapkan dan yang diperoleh; selisih itu bisa menguntungkan atau merugikan. QuantConnect menjelaskan cara memodelkannya. Biaya transaksi, pendanaan jika berlaku, dan biaya strategi lainnya juga harus dihitung. Biaya yang sudah masuk dalam harga jangan dikurangi lagi. Slippage nol merupakan asumsi, bukan temuan tentang pasar nyata. Mengulang tes dengan pelaksanaan lebih buruk dan biaya lebih tinggi membantu menilai apakah kesimpulannya bertahan. [4]
Jika Peter menyesuaikan aturan dengan data yang dipakai untuk menilai keberhasilan, ia menghadapi ujian yang jawabannya sudah diketahui. Ia perlu menentukan dahulu data lebih awal untuk pengembangan dan data sesudahnya untuk validasi. TimeSeriesSplit dari scikit-learn membantu menjaga urutan tersebut. Namun alat ini sendiri tidak mencegah kebocoran informasi saat penyiapan data, periode sasaran yang tumpang tindih, atau penyetelan berulang. Mengubah aturan setelah melihat validasi berarti data itu juga dipakai dalam pengembangan. [5]
Di antara banyak pengaturan, salah satunya bisa terlihat sangat bagus secara kebetulan. Menampilkan pemenang saja menyembunyikan jumlah percobaan. Bailey et al. membahas Backtest Overfitting: menyesuaikan strategi dengan kekhasan suatu riwayat data. Catat parameter, periode, dan pasar yang dicoba, bukan hanya kurva terbaik. Para penulis mengusulkan prosedur khusus untuk memperkirakan kemungkinan masalah tersebut; pembagian data sederhana bukan penggantinya. Contoh kami tidak menghitung perkiraan itu. [1]
Laporan yang jujur memungkinkan penelusuran data, versi aturan, transaksi, biaya, dan periode rugi. Strategi pembanding perlu dinilai dengan asumsi sebanding. NFA di AS juga menyoroti keuntungan mengetahui masa lalu dan ketiadaan pengalaman kehilangan uang nyata dalam hasil hipotetis; aturan promosinya berlaku bagi anggota tertentu. Backtest membantu menolak atau meneliti gagasan lebih lanjut. Bahkan hitungan benar tidak membuktikan gagasan akan bekerja di pasar berbeda atau perdagangan nyata. [6]
Aturan yang dapat diperiksa dengan tangan
Untuk gambaran yang lebih utuh, baca entri ini bersama Trading Plan, Trading Journal, Slippage, Overfitting, Walk-forward Analysis. Entri ini juga dirujuk dari Technical analysis, OHLCV, Timeframe, Candlestick chart.
01Apakah backtest yang untung berarti saya bisa memperoleh laba dengan strategi itu?+
Ia menunjukkan laba hanya pada data historis terpilih dengan asumsi tertentu. Periksa ketersediaan informasi, pelaksanaan, biaya, dan banyaknya variasi sebelum hasil tersebut. Bahkan validasi historis independen tidak menjamin hasil masa depan.
02Bisakah semua biaya dikurangi pada akhir saja?+
Hanya jika sesuai dengan model dan biaya selama proses tidak akan mengubah dana tersedia atau keputusan. Biasanya biaya dicatat pada transaksi terkait. Pelaksanaan dan biaya harus dihitung tanpa ada yang terlewat atau dihitung dua kali.