Pertimbangan lanjutan untuk definisi backtesting
Apa arti definisi backtesting dalam istilah lanjutan
Backtesting adalah proses mengevaluasi seperangkat aturan keputusan yang ditentukan pada data pasar historis untuk memperkirakan bagaimana aturan tersebut mungkin berkinerja di masa lalu. Pertimbangan lanjutannya adalah bahwa backtest bukanlah “kinerja strategi” itu sendiri; ini adalah simulasi yang keluarannya bergantung pada apa yang Anda asumsikan tentang data dan eksekusi.
Untuk menjelaskan backtesting secara akurat, pisahkan tiga lapisan:
- Aturan: logika masuk/keluar atau keputusan yang tepat yang ingin Anda uji.
- Data pasar: harga historis, stempel waktu, dan bidang turunan apa pun yang Anda masukkan ke dalam simulasi.
- Model eksekusi: bagaimana perdagangan akan diisi di dalam lingkungan simulasi Anda.
Definisi backtesting yang kuat mencakup bahwa ketiga lapisan harus eksplisit, dapat direproduksi, dan dapat diperiksa secara independen.
Mekanisme: model sederhana dan bagian-bagiannya
Model sederhana untuk backtesting adalah: aturan + data + asumsi eksekusi → perdagangan simulasi → metrik kinerja. Pertanyaan lanjutannya adalah tentang apa yang harus ditentukan agar keluarannya bermakna.
Input yang harus ditentukan
- Dasar dan penyelarasan waktu: Ukuran candle atau frekuensi pengambilan sampel apa yang digunakan, dan bagaimana sinyal diberi stempel waktu relatif terhadap perubahan harga.
- Granularitas data: Menggunakan data agregat (seperti bar) vs. data resolusi lebih tinggi mengubah apa yang “mungkin terjadi” selama satu bar.
- Biaya dan friksi: Sertakan biaya perdagangan yang Anda pilih untuk dimodelkan (komisi, spread, efek seperti pembiayaan jika berlaku) dan tentukan kapan biaya tersebut berlaku.
- Logika pesanan dan pengisian: Putuskan bagaimana pesanan diisi (misalnya, pada harga berikutnya yang tersedia, pada harga yang disesuaikan spread yang dimodelkan, atau menggunakan asumsi pengisian limit). Ini sering menjadi sumber ketidakcocokan terbesar.
Metrik keluaran yang mengikuti simulasi
Backtesting biasanya merangkum hasil dengan metrik seperti pengembalian kumulatif, penarikan (drawdown), distribusi menang/kalah, dan ukuran yang disesuaikan dengan risiko. Poin lanjutannya adalah bahwa metrik hanya dapat diandalkan sejauh asumsi simulasi yang menghasilkan riwayat perdagangan yang digunakan untuk menghitungnya.
Kasus tepi dan mode kegagalan yang mengubah makna backtest
Backtesting bisa gagal secara diam-diam. Pertimbangan lanjutan berfokus pada kondisi di mana pengujian historis bisa menjadi menyesatkan.
Kesalahan look-ahead dan waktu
Backtest mungkin secara tidak sengaja menggunakan informasi yang tidak akan tersedia pada saat keputusan dibuat. Ini bisa terjadi karena:
- Perhitungan indikator yang secara implisit menggunakan data masa depan.
- Sinyal yang dihasilkan dari satu stempel waktu tetapi diterapkan pada bar berikutnya seolah-olah sudah diketahui.
Bahkan kesalahan waktu kecil pun dapat menghasilkan hasil yang bukan sekadar “optimis,” tetapi secara fundamental tidak kompatibel dengan eksekusi waktu nyata.
Bias survivorship dan seleksi data
Jika kumpulan data historis menghilangkan instrumen, periode waktu, atau catatan kutipan yang kemudian hilang, backtest dapat melebih-lebihkan realisme. Demikian pula, memilih hanya periode “baik” tanpa aturan yang telah ditentukan untuk data apa yang disertakan dapat menciptakan kesan kinerja yang menyesatkan.
Data yang hilang dan interpolasi
Umpan historis nyata dapat memiliki celah atau pengambilan sampel yang tidak teratur. Backtest yang mengisi nilai yang hilang (atau mengasumsikan pergerakan halus di antara stempel waktu) dapat mensimulasikan harga yang tidak pernah benar-benar diperdagangkan dengan cara yang diperlukan untuk model pengisian Anda.
Overfitting melalui penyesuaian berulang
Ketika aturan disesuaikan untuk memaksimalkan kinerja masa lalu, Anda dapat menyesuaikan dengan noise daripada struktur. Definisi lanjutan dari backtesting karena itu mencakup gagasan pemisahan antara seleksi model dan evaluasi (misalnya, menggunakan periode yang berbeda atau pendekatan walk-forward), dan mengharuskan periode evaluasi tidak digunakan selama penyesuaian.
Batasan realisme eksekusi
Bar historis tidak mengungkapkan jalur penuh di dalam bar. Jika model eksekusi Anda mengasumsikan pengisian pada harga yang hanya dapat terjadi dengan informasi yang lebih granular, hasil dapat menyimpang dari eksekusi nyata yang masuk akal. Ini adalah keterbatasan inti: resolusi data dan asumsi tentang pengisian bersama-sama menentukan realisme.
Keterbatasan dan risiko: apa yang dapat Anda verifikasi, dan apa yang tidak
Backtest dapat mendukung jenis verifikasi tertentu, tetapi tidak dapat menghilangkan ketidakpastian.
Apa yang dapat membantu Anda pahami
- Apakah seperangkat aturan berperilaku konsisten di berbagai kondisi historis yang berbeda.
- Apakah hasil menurun di bawah asumsi yang lebih konservatif (misalnya, biaya model yang lebih tinggi atau logika pengisian yang lebih ketat).
- Apakah hasil bergantung pada kasus tepi yang rapuh (seperti peristiwa langka atau jendela waktu yang sempit).
Apa yang tidak dapat dijamin
- Hasil masa depan: hubungan historis tidak menetapkan hasil masa depan.
- Keamanan: backtest tidak membuktikan bahwa penarikan atau rezim yang merugikan tidak akan terjadi.
- Akurasi prediktif: backtesting adalah perkiraan di bawah asumsi, bukan bukti.
Keterbatasan ini berlaku bahkan jika backtest konsisten secara internal.
Cara memverifikasi definisi backtesting secara independen
Untuk memverifikasi makna backtest, perlakukan seperti eksperimen yang dapat direproduksi.
- Periksa rantai asumsi: konfirmasi bagaimana aturan, stempel waktu data, dan logika pengisian berinteraksi.
- Uji invariansi terhadap perubahan yang wajar: ubah granularitas data, asumsi biaya, atau asumsi waktu dalam rentang yang telah ditentukan untuk melihat apakah kesimpulan bergantung pada satu pilihan yang rapuh.
- Gunakan evaluasi di luar sampel: pisahkan periode yang digunakan untuk menetapkan parameter dari periode yang digunakan untuk mengukur hasil.
- Dokumentasikan semua yang diperlukan untuk mereproduksi simulasi: definisi aturan yang tepat, deskripsi sumber data, dan model eksekusi.
Definisi backtesting yang jelas karena itu bukan hanya deskripsi “menjalankan pada sejarah,” tetapi juga daftar periksa asumsi dan metode untuk memeriksa apakah keluaran sensitif terhadap asumsi tersebut.
Pertanyaan berikutnya untuk diklarifikasi sebelum mempercayai keluaran backtest
Sebelum Anda dapat menjelaskan atau mengandalkan hasil backtesting apa pun, klarifikasi:
- Penyelarasan waktu yang tepat apa yang digunakan antara pembuatan sinyal dan keputusan perdagangan?
- Resolusi data apa yang mendukung model eksekusi Anda, dan apa yang terjadi jika tidak?
- Bagian mana yang disesuaikan versus dievaluasi, dan bagaimana pemisahan ditegakkan?
- Mode kegagalan mana (kesalahan waktu, data hilang, overfitting) yang secara khusus diuji?
Jika poin-poin ini tidak eksplisit, “backtesting” menjadi ambigu—dan keluaran backtest tidak dapat diinterpretasikan secara bermakna.