Backtesting adalah simulasi historis aturan perdagangan atau pengambilan keputusan dengan data, urutan waktu dan asumsi eksekusi yang ditentukan secara eksplisit. Metode ini memungkinkan pemeriksaan perilaku aturan pada sampel masa lalu, tetapi nilai informasinya bergantung pada rancangan seluruh pengujian.
Backtesting menjalankan ulang aturan pada data historis dan menghitung hasil yang akan diperoleh dengan asumsi pilihan. Bailey dan rekan penulis menggambarkannya sebagai simulasi historis strategi algoritmik sekaligus mengingatkan risiko penemuan palsu. Batas editorial kami: hasil tersebut melekat pada versi tertentu dari aturan, data dan model eksekusi. Hasil itu bukan bukti bahwa seseorang benar-benar melakukan transaksi tersebut. Perhitungan yang dapat direproduksi dapat mengungkap kesalahan atau gagasan yang tidak sesuai, tetapi tidak dengan sendirinya mengubah masa lalu menjadi prediksi yang andal. [Bailey et al. — The Probability of Backtest Overfitting]
QuantConnect menjelaskan bias ketika simulasi memakai informasi masa depan, seperti data akuntansi sebelum dipublikasikan atau revisinya di kemudian hari. Kontrak waktu kami sendiri mensyaratkan waktu ketersediaan setiap masukan, bukan sekadar tanggal periode yang dijelaskannya. Tanpa asumsi tambahan, sinyal dari candle yang sudah ditutup tidak boleh mendapatkan transaksi pada harga yang tidak lagi tersedia. Dalam contoh kami, harga penutupan sebelumnya baru digunakan untuk periode berikutnya dan model secara eksplisit menentukan eksekusi pada pembukaannya. [QuantConnect — Research Guide]
QuantConnect memperingatkan pengujian yang hanya memakai efek yang bertahan sampai akhir periode dan penggunaan komposisi indeks saat ini untuk masa lalu. Pertanyaan kami yang lebih luas adalah apakah kumpulan historis juga mempertahankan instrumen yang tersedia saat itu tetapi kemudian menghilang. Data yang hilang, perubahan metodologi dan pemilihan pasar perlu didokumentasikan. Dalam simulasi Bitcoin, harga dari satu layanan tidak otomatis dapat dianggap sebagai harga yang bisa diperoleh pada layanan lain. Kebersihan data berarti koreksi dapat ditelusuri, bukan penghapusan hasil yang tidak menyenangkan. [QuantConnect — Research Guide]
Dokumentasi QuantConnect memisahkan sinyal dan order dari model yang menentukan harga serta kuantitas eksekusi. Dokumentasi itu juga menyoroti perbedaan antara eksekusi sebagian dalam perdagangan nyata dan asumsi eksekusi penuh pada model bawaan. Persyaratan kami adalah menjelaskan kapan order boleh dieksekusi, apa yang terjadi jika likuiditas tidak cukup dan bagaimana harga kedaluwarsa ditangani. Tersentuhnya suatu tingkat harga dalam data historis tidak dengan sendirinya membuktikan adanya pihak lawan untuk order sebesar apa pun. Hasil model eksekusi tetap merupakan asumsi simulasi. [QuantConnect — Trade Fills: Key Concepts]
QuantConnect menjelaskan Slippage sebagai perbedaan antara harga eksekusi yang diharapkan dan yang sebenarnya serta menyebut pengaruh keterlambatan, koneksi dan kondisi pasar; penyimpangan bisa menguntungkan maupun merugikan. Pemeriksaan biaya kami memisahkan biaya transaksi, harga eksekusi dan kemungkinan biaya lain untuk mempertahankan posisi atau pembiayaan. Biaya yang sudah tercakup dalam harga eksekusi tidak boleh dikurangi lagi. Nilai nol adalah asumsi model tertentu, bukan bukti pasar tanpa biaya. Sensitivitas terhadap biaya yang lebih buruk membantu menentukan apakah laba historis kecil bergantung pada pengaturan optimistis. [QuantConnect — Slippage: Key Concepts]
Dokumentasi TimeSeriesSplit menjelaskan pembagian berdasarkan waktu agar model tidak dilatih pada masa depan lalu dievaluasi pada masa lalu. Persyaratan metodologis kami adalah menentukan periode untuk merancang aturan dan periode untuk validasi berikutnya sebelum melihat hasil. Jika setelah gagal aturan kembali diubah berdasarkan periode validasi, periode itu sudah memengaruhi pengembangan. Pembagian kronologis saja tidak mengatasi kebocoran informasi dari prapemrosesan, target yang tumpang tindih atau pemilihan varian berulang. Prosedur dan batas data harus dijelaskan. [scikit-learn — TimeSeriesSplit]
Bailey dan rekan penulis menunjukkan bahwa pencarian berulang untuk konfigurasi terbaik pada data yang sama meningkatkan risiko penemuan palsu dan penyesuaian terhadap derau masa lalu. Aturan pelaporan kami adalah menyampaikan riwayat percobaan, bukan hanya kurva pemenang. Ini mencakup perubahan parameter, periode dan pemilihan instrumen. Hasil yang dipilih setelah banyak percobaan tidak memiliki nilai informasi yang sama dengan aturan tetap yang ditentukan sebelumnya. Metode mereka untuk memperkirakan probabilitas overfitting tidak dijalankan dalam contoh sederhana kami dan tidak digantikan oleh satu pembagian data. [Bailey et al. — The Probability of Backtest Overfitting]
NFA memperingatkan bahwa hasil hipotetis tidak mencerminkan perdagangan nyata, dapat memanfaatkan pengetahuan setelah kejadian dan kurang tepat memodelkan likuiditas, slippage atau perilaku saat mengalami kerugian nyata. Karena itu laporan kami harus menyimpan versi data dan kode, aturan, asumsi eksekusi, biaya yang dicakup dan daftar lengkap transaksi simulasi. Imbal hasil total memerlukan konteks risiko dan perbandingan dengan kondisi identik; grafik bagus yang dipilih tidak cukup. Bahkan implementasi pengujian historis tanpa kesalahan tidak menjamin kelayakan eksekusi atau imbal hasil di pasar mendatang. [NFA — Use of Promotional Material Containing Hypothetical Performance Results]
Sinyal dari periode sebelumnya, eksekusi pada periode berikutnya
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 membuktikan strategi akan menghasilkan uang?+
Tidak. Hasilnya bisa bergantung pada data tertentu, biaya, model eksekusi atau pemilihan varian terbaik. Ketepatan waktu, asumsi dan proses pemilihan perlu diverifikasi; bahkan setelah itu tidak ada jaminan imbal hasil mendatang.
02Apakah cukup mengurangi biaya hanya dari laba akhir?+
Hanya jika cara tersebut tepat sesuai dengan model dan tidak memengaruhi modal yang tersedia atau keputusan berikutnya. Biasanya biaya perlu dicatat pada peristiwa terkait, harga eksekusi dibedakan dari biaya transaksi dan pengurangan ganda dicegah.