Bagaimana Strategi Moving Average dapat di-backtest secara bertanggung jawab?
Tentukan mekanisme strategi sebelum Anda menyentuh backtest
Strategi moving average biasanya berbasis aturan: strategi ini mendefinisikan moving average mana yang akan dihitung, bagaimana menghitungnya dari data harga, dan apa yang harus dilakukan ketika kondisi indikator berubah (misalnya, ketika rata-rata pendek melintasi rata-rata panjang). Backtesting yang bertanggung jawab dimulai dengan menuliskan mekanisme ini sebagai input dan output yang tidak ambigu.
Nyatakan asumsi yang tidak akan Anda ubah di tengah studi:
- Data: bidang harga apa yang digunakan (misalnya, open, high, low, close), ukuran bar (misalnya, 1 menit, 1 jam), dan zona waktu.
- Rumus moving average: jenis moving average (sederhana atau eksponensial), panjang lookback, dan periode pemanasan (warm-up).
- Pemetaan sinyal-ke-trade: kapan tepatnya sinyal dianggap terjadi (akhir bar vs. bar berikutnya) dan kapan posisi dimasuki atau dikeluarkan.
Pemisahan ini penting karena banyak “perbedaan” backtest sebenarnya adalah perbedaan definisi. Jika Anda kemudian mengubah waktu indikator atau penggunaan bar, Anda tidak lagi menguji strategi yang sama.
Gunakan asumsi biaya dan eksekusi yang sesuai dengan aturan backtest
Backtest sering kali melebih-lebihkan hasil dengan menggunakan kondisi ideal. Anda dapat membuat pengujian lebih realistis dengan memodelkan biaya dan waktu eksekusi sebagai bagian dari aturan, bukan sebagai pemikiran belakangan.
Setidaknya, sertakan:
- Biaya transaksi: komisi dan biaya tetap apa pun per trade.
- Spread dan slippage: asumsi untuk perbedaan antara harga entry teoretis dan harga eksekusi aktual.
- Penanganan posisi: bagaimana Anda memperlakukan sinyal berulang saat sudah berada dalam posisi (abaikan, balik arah, atau tambah).
Jelaskan secara eksplisit metode perhitungannya. Misalnya, jika aturan Anda memicu pada penutupan bar, maka backtest Anda harus mencerminkan bahwa entry terjadi pada waktu yang dapat diperdagangkan berikutnya, menggunakan model biaya yang diasumsikan. Jika tidak, backtest secara tidak sengaja dapat mengasumsikan informasi yang tidak akan Anda miliki.
Kendalikan bias dengan aturan tetap, disiplin data, dan batasan pengujian parameter
Mode kegagalan yang umum adalah overfitting, di mana strategi disesuaikan dengan noise historis. Bahkan tanpa “mencurangi” data, hasil dapat menjadi rapuh jika Anda mengeksplorasi terlalu banyak variasi.
Untuk mengurangi bias, gunakan kontrol seperti:
- Satu sumber kebenaran untuk aturan: setelah mekanisme didefinisikan, jangan menyesuaikannya berdasarkan periode historis dengan kinerja terbaik.
- Pencarian parameter terbatas: jika Anda memvariasikan panjang moving average, tentukan grid yang dibatasi dan perlakukan sebagai eksperimen yang direncanakan.
- Pemeriksaan sensitivitas: uji nilai parameter di sekitarnya untuk melihat apakah kinerja runtuh dengan perubahan kecil.
- Evaluasi walk-forward: secara berulang latih/pilih parameter pada segmen awal dan nilai pada segmen berikutnya yang tidak terlihat.
Pola pikir yang bertanggung jawab adalah mengharapkan bahwa kinerja akan bervariasi. Tujuannya bukan untuk menemukan satu pengaturan yang terlihat terbaik secara in-sample, tetapi untuk mengukur seberapa stabil strategi tersebut di bawah variasi yang wajar.
Verifikasi stabilitas out-of-sample, bukan hanya kinerja in-sample
Hasil historis jarang diterjemahkan langsung ke hasil masa depan. Backtesting yang bertanggung jawab karena itu memerlukan setidaknya satu bentuk evaluasi out-of-sample.
Praktik yang baik adalah:
- Bagi data menjadi in-sample (untuk mendefinisikan pilihan) dan out-of-sample (untuk evaluasi).
- Gunakan beberapa jendela out-of-sample, sehingga satu periode yang luar biasa menguntungkan tidak mendominasi kesimpulan.
- Laporkan apa yang berubah: waktu entry/exit, biaya, dan pilihan parameter.
Juga verifikasi kinerja menggunakan metrik yang mencerminkan perilaku strategi, bukan hanya total. Misalnya, pertimbangkan drawdown, frekuensi trade, dan apakah hasil bergantung pada sejumlah kecil trade.
Jika strategi bergantung pada urutan yang jarang terjadi atau hanya berfungsi dalam satu rezim pasar, itu adalah keterbatasan material.
Pahami keterbatasan material dan mode kegagalan umum
Bahkan dengan metodologi yang cermat, strategi moving average menghadapi keterbatasan struktural:
- Ketergantungan rezim: moving average dapat berperilaku berbeda dalam kondisi tren versus kondisi range-bound.
- Ketidakcocokan model-pasar: bar historis mungkin tidak mewakili harga yang dapat dieksekusi dan efek order-book.
- Non-stasioneritas: dinamika pasar berkembang, sehingga hubungan historis dapat melemah.
- Sensitivitas biaya: perubahan kecil dalam asumsi spread atau slippage dapat secara signifikan mengubah hasil bersih.
Satu mode kegagalan yang konkret adalah “kinerja kertas”: backtest yang menguntungkan sebelum biaya, tetapi menjadi lemah atau negatif setelah friksi transaksi disertakan. Mode kegagalan lainnya adalah kebocoran waktu: jika backtest masuk pada penutupan bar sementara sinyal Anda benar-benar diketahui hanya pada bar berikutnya, hasil dapat dilebih-lebihkan.