Split IS/OOS Tak Cukup: Desain Jendela Walk-Forward
Daftar Isi
Kesimpulan: Jika OOS hanya satu segmen, itu masih "satu kali ujian"
Memisahkan data menjadi bagian optimasi (IS) dan bagian validasi (OOS) memang langkah pertama yang efektif untuk mencurigai overfitting. Namun jika pembagiannya hanya sekali, hasil OOS hanya memberi tahu "bagaimana hasilnya di satu segmen itu saja".
Kesimpulan kami adalah sebagai berikut. Bagi OOS menjadi beberapa jendela, validasi sambil bergerak maju, dan lihat apakah tiap jendela profit, bukan hanya totalnya. Meskipun total profit, jika labanya menumpuk di jendela tertentu, penilaian ditunda.
Kelemahan pembagian tetap
Titik pembagian memengaruhi hasil
Pada pembagian tetap, pengembang sendiri yang menentukan di mana batasnya. Jika OOS kebetulan jatuh pada periode tren yang jelas, hasilnya tampak lebih bagus daripada kemampuan logika sebenarnya. Jika jatuh pada periode sebaliknya, logika yang layak pakai justru terbuang. Keduanya bergantung pada satu pilihan: titik pembagian.
Jika OOS dilihat berulang kali, ia bukan lagi OOS
Masalah lainnya ada pada perilaku pengembang. Ketika hasil OOS buruk, parameter diperbaiki, lalu OOS dilihat lagi. Jika ini diulang, sama saja dengan memilih yang cocok dengan OOS. Secara bentuk memang data yang belum dipakai, tetapi pada kenyataannya sudah dipakai untuk optimasi. Ini adalah kegagalan yang bisa menimpa kami sendiri, dan tidak bisa dicegah tanpa dikunci lewat prosedur.
Cara membuat jendela walk-forward
Walk-forward adalah metode yang menjadikan "periode optimasi" dan "periode validasi tepat setelahnya" sebagai satu pasang jendela, lalu mengulanginya sambil menggeser waktu ke depan. Periode validasi selalu berada di masa depan relatif terhadap periode optimasi, sehingga diperoleh beberapa OOS.
| Metode | Cara jendela bergerak | Cocok untuk | Kelemahan |
|---|---|---|---|
| Pembagian tetap | Hanya satu kali pemisahan | Pengecekan awal yang kasar | Sangat bergantung pada titik pembagian |
| Tipe rolling | Maju dengan panjang periode optimasi tetap | Instrumen yang karakter pasarnya mudah berubah | Membuang informasi dari fase lama |
| Tipe anchored | Titik awal tetap, periode optimasi diperpanjang | Logika dengan jumlah transaksi sedikit | Pengaruh data lama terus bertahan |
Patokan menentukan panjang jendela
Panjang jendela lebih aman ditentukan berdasarkan jumlah transaksi, bukan jumlah tahun kalender. Jika transaksi dalam periode validasi terlalu sedikit, profit atau rugi ditentukan oleh kebetulan. Semakin lama durasi holding dan semakin jarang transaksinya, semakin panjang periode validasi yang dibutuhkan.
Langkah memeriksa per jendela
- Susun jendela agar periode validasinya tidak saling tumpang tindih
- Optimalkan di setiap jendela, lalu terapkan parameter yang didapat hanya pada periode validasi tepat setelahnya
- Catat profit/rugi, PF, jumlah transaksi, dan drawdown maksimum untuk setiap periode validasi
- Periksa berapa banyak jendela dengan PF 1.0 atau lebih, dan di periode mana jendela yang rugi berada
- Periksa apakah sisa total tetap profit setelah jendela dengan laba terbesar dikeluarkan
- Lihat apakah parameter yang terpilih di tiap jendela melompat-lompat terlalu jauh
Ada tiga poin utama yang perlu dicek.
- Apakah jendela yang profit terkonsentrasi pada sebagian kecil saja
- Apakah kerugian di jendela yang rugi terlalu besar dibandingkan laba di jendela yang profit
- Apakah parameter optimal berubah secara ekstrem di antara jendela yang bersebelahan
Kami berpendapat tidak perlu semua jendela profit. Untuk tipe trend following, wajar jika kalah di jendela periode tanpa arah. Yang perlu dipersoalkan adalah jika alasan kekalahan di jendela tersebut tidak bisa dijelaskan, serta jika kedalaman kerugian melampaui perkiraan.
Batasan dan hal yang perlu diperhatikan
Jika jumlah transaksi kurang, jendela tidak terbentuk
Backtest ATLAS memiliki 1193 transaksi dalam 7.5 tahun validasi, sehingga meski dibagi menjadi beberapa jendela, setiap jendela masih menyisakan sejumlah transaksi. Di sisi lain, backtest ETHEREUM EA hanya 154 transaksi dalam 7.5 tahun validasi. Jika logika berfrekuensi rendah seperti ini dipotong menjadi jendela-jendela kecil, transaksi per jendela menjadi sangat sedikit, dan profit atau rugi per jendela nyaris tidak berguna sebagai bahan penilaian. Pilihannya hanya membuat jendela lebih kasar, atau menjadikan penilaian per jendela sekadar bahan referensi.
Angka yang dipublikasikan adalah nilai seluruh periode
PF dan win rate yang dimuat di ranking hasil pengukuran adalah nilai untuk keseluruhan periode validasi. Itu bukan hasil per jendela, sehingga ada atau tidaknya overfitting tidak bisa ditentukan hanya dari angka tersebut. Mohon baca dengan mempertimbangkan hal ini.
Desain jendela itu sendiri juga bisa dioptimalkan
Jika panjang atau jumlah jendela diubah-ubah lalu dipilih kombinasi yang hasilnya tampak bagus, itu juga overfitting. Prasyaratnya adalah desain jendela ditetapkan sebelum validasi dijalankan dan tidak digeser setelahnya. Dari luar, hampir tidak ada cara untuk memastikan apakah prasyarat itu dipatuhi.
Tetap saja masa depan tidak diketahui
Meski lolos walk-forward, kondisi pasar yang belum pernah terjadi di masa lalu tidak bisa dihadapi. Pada forward test di akun demo yang kami jalankan pun, ada beberapa EA dengan profit/rugi negatif. Itu akun demo, bukan hasil akun riil, dan periodenya sejak dimulai masih singkat, sehingga baik hasil bagus maupun buruk belum bisa disimpulkan. Metode validasi adalah alat untuk mengurangi hasil yang meleset, bukan jaminan hasil yang tepat.
Ringkasan
- Pada pembagian IS/OOS tetap, hasil dipengaruhi oleh titik pembagian dan jumlah kali OOS ditinjau ulang
- Walk-forward adalah metode yang membuat beberapa periode validasi dan memeriksanya sambil bergerak maju
- Yang dilihat bukan total, melainkan profit/rugi per jendela. Periksa bias laba dan stabilitas parameter
- Untuk logika dengan transaksi sedikit, semakin dibagi menjadi jendela, penilaian semakin tidak stabil
- Desain jendela dikunci sebelumnya. Meski lolos, hasil di masa depan tetap tidak diketahui
Cara berpikir tentang validasi juga kami rangkum di kumpulan know-how.
Terkait
📧 Pemberitahuan sebelum kenaikan harga di MQL5 Market + kursus email 5 hari gratis
Di situs ini EA kami gratis dengan akun riil di broker mitra. Versi yang dijual di MQL5 Market berada pada harga peluncuran dan naik bertahap seiring penjualan. Dapatkan pemberitahuan sebelum tiap kenaikan, plus email harian tentang dasar trading algoritmik, cara membaca backtest dengan benar, dan memilih broker.
* Privasi sangat dilindungi. Anda dapat berhenti berlangganan kapan saja.
Punya pertanyaan tentang EA atau Forex?
Anda bisa mengajukannya di forum trading Nattzy (daftar gratis). Pertanyaan di luar artikel ini juga dipersilakan — pengaturan EA, memilih broker, dan lainnya.
Tanya di Nattzy ↗