Bagaimana MACD dapat di-backtest secara bertanggung jawab?
Definisikan MACD terlebih dahulu, lalu definisikan apa itu “backtesting”
MACD (Moving Average Convergence Divergence) adalah osilator pengikut tren yang dibangun dari moving average. Dalam backtesting, Anda tidak menguji “MACD itu sendiri” sebagai jaminan arah masa depan; Anda menguji sebuah aturan yang mengubah nilai MACD menjadi hasil yang terukur pada data historis.
Untuk melakukan backtest secara bertanggung jawab, mulailah dengan menuliskan mekanisme pasti yang akan Anda gunakan:
- Jenis moving average dan parameter yang digunakan untuk menghitung MACD (misalnya, panjang untuk dua moving average dan garis sinyal).
- Bagaimana Anda menghitung garis MACD dan garis sinyal dari rangkaian harga yang sama.
- Apakah Anda menguji pada nilai penutupan candle atau perkiraan intra-candle.
- Bagaimana Anda menangani stempel waktu, data yang hilang, dan penyesuaian seperti aksi korporasi (jika berlaku untuk sumber data Anda).
Definisi praktis dari “backtesting” adalah: menerapkan aturan keputusan Anda pada data masa lalu untuk menghasilkan serangkaian perdagangan hipotetis atau hasil hipotetis, lalu mengevaluasinya dengan metrik yang memperhitungkan biaya dan asumsi eksekusi.
Tentukan data dan asumsi (hal yang paling dapat mengubah hasil)
Sebagian besar kesalahan yang dapat dihindari berasal dari penanganan data yang tidak konsisten atau tidak realistis. Karena hasil pasar bervariasi, perlakukan hal berikut sebagai asumsi eksplisit:
Cakupan dan pengambilan sampel data
- Pilih rentang waktu dan frekuensi pengambilan sampel yang tetap (misalnya, bar harian). Mencampur frekuensi atau mengagregasi ulang data secara berbeda antar proses dapat mendistorsi hasil.
- Putuskan apakah indikator dihitung menggunakan harga penutupan yang sama yang nantinya Anda gunakan untuk keputusan perdagangan.
Look-ahead dan penyelarasan
- Pastikan nilai indikator tersedia pada saat pengambilan keputusan. Jika Anda menghitung indikator menggunakan informasi dari bar yang sama saat Anda “masuk”, Anda mungkin secara tidak sengaja memasukkan bias look-ahead.
- Gunakan aturan yang konsisten untuk menggeser sinyal: jika keputusan Anda didasarkan pada indikator di akhir bar t, tindakan simulasi Anda harus terjadi setelah bar t.
Integritas data
- Periksa celah, stempel waktu duplikat, perubahan mendadak dalam umpan harga, dan bar yang hilang.
- Jika Anda menghitung indikator dari harga yang disesuaikan atau ditransformasikan, catat langkah-langkah transformasinya.
Pilihan-pilihan ini bukan sekadar kosmetik; pilihan tersebut mengubah nilai MACD yang Anda masukkan ke dalam aturan Anda, yang mengubah seluruh jalur backtest.
Sertakan biaya dan asumsi eksekusi (friksi itu penting)
Bahkan implementasi MACD yang benar pun dapat terlihat menguntungkan dalam backtest yang mengabaikan friksi. Backtesting yang bertanggung jawab mencakup setidaknya tiga lapisan biaya dan perilaku eksekusi yang didefinisikan dengan jelas:
Jenis biaya
- Biaya transaksi (komisi, biaya).
- Perkiraan spread/dampak harga (bagaimana Anda memodelkan perbedaan antara harga keputusan teoretis dan harga eksekusi aktual).
- Slippage (bagaimana eksekusi menyimpang dari harga yang diasumsikan).
Asumsi eksekusi
- Putuskan apakah perdagangan terisi pada harga keputusan, pada pembukaan bar berikutnya, atau pada konvensi lain. Dokumentasikan.
- Putuskan apakah pengisian parsial, efek order-book, atau latensi diabaikan.
Karena Anda mungkin tidak mengetahui eksekusi dunia nyata yang tepat, modelkan ketidakpastian menggunakan pemeriksaan sensitivitas (variasikan asumsi slippage/spread pada rentang wajar yang Anda justifikasi berdasarkan data dan pengetahuan mikro-struktur pasar Anda). Tujuannya bukan untuk “memprediksi masa depan,” tetapi untuk melihat apakah kesimpulan bertahan di bawah asumsi yang lebih realistis.
Tambahkan kontrol bias untuk mengurangi overfitting terhadap sejarah
Pilihan parameter MACD dan varian aturan dapat secara tidak sengaja “menyesuaikan” noise. Kontrol bias membantu Anda mendeteksi hal itu.
Pemisahan di luar sampel
- Bagi data menjadi setidaknya dua bagian: satu untuk pemilihan parameter atau desain aturan, dan satu terpisah untuk evaluasi.
- Jika Anda menyetel parameter menggunakan periode evaluasi, hasil Anda bisa menjadi menyesatkan.
Pengujian walk-forward
- Alih-alih menggunakan satu set parameter statis untuk seluruh sejarah, gunakan prosedur bergulir atau bertahap: sesuaikan pada satu jendela, uji pada jendela berikutnya, lalu maju ke depan.
- Ini dapat mengurangi kemungkinan bahwa satu set parameter hanya berfungsi dalam satu periode historis.
Hindari mengintip berulang kali
- Jika Anda mengulangi banyak perubahan aturan setelah melihat kinerja, Anda secara efektif mencari jawaban terbaik di dalam set evaluasi Anda.
- Kontrol ini dengan menetapkan proses sebelum evaluasi ekstensif, dan hanya menggunakan set evaluasi sekali per versi.
Transparansi parameter
- Buat log tentang parameter dan ambang batas mana yang Anda coba dan mengapa Anda memilih yang final.
Periksa setidaknya satu keterbatasan material dan mode kegagalan
Backtest yang bertanggung jawab harus secara eksplisit mengakui apa yang dapat rusak.