598 / 736WFA

Walk-forward Analysis

Analisis dengan langkah waktu bertahap

Walk-forward Analysis menguji strategi yang diperbarui berkala: memilih aturan dari data yang sudah diketahui, menilainya pada periode berikutnya, lalu maju dan mengulanginya.

Walk-forward Analysis menguji prosedur pemilihan secara kronologis. Aturan dipilih atau disetel dari riwayat yang tersedia, kemudian dinilai pada data berikutnya yang tidak dipakai dalam pemilihan tersebut.

Peter mempunyai beberapa versi aturan perdagangan. Ia ingin memakai versi yang paling baik kinerjanya belakangan ini. Walk-forward Analysis menelusuri gagasan itu langkah demi langkah: memilih dari riwayat yang diketahui, mencatat hasil periode berikutnya, lalu memilih lagi. QuantConnect menjelaskan penyesuaian berkala seperti ini. Yang diuji juga cara memilih, bukan satu versi tetap saja. Kandidat, kriteria, dan waktu peninjauan berikutnya harus ditentukan sebelumnya. [1]

Jika Peter memilih versi karena laba masa lalunya, laba yang sama tidak memvalidasi pilihan itu secara independen. QuantConnect menjelaskan bahwa data tersebut sudah menjadi data pengembangan. Pertanyaan yang adil: bagaimana hasil versi itu setelah dipilih? Tes saat ini tidak boleh memilih pemenangnya sendiri. Setelah periode berakhir dan hasil tersedia, prosedur yang sudah ditentukan boleh memakainya untuk pemilihan selanjutnya. Itu tidak mengubah keputusan lama yang telah dicatat. [2]

Jendela pemilihan adalah rentang riwayat yang sedang dipakai. Jendela bergulir mempertahankan panjangnya dan membuang data tertua; jendela meluas mempertahankan titik awal dan menambah pengamatan. TimeSeriesSplit dari scikit-learn secara bawaan memperluas data pelatihan, tetapi ukurannya dapat dibatasi. Tentukan panjang dan frekuensi pembaruan sebelum tes. Dokumentasi mensyaratkan jarak pengamatan yang sama agar metrik sebanding; data tidak teratur juga perlu diperiksa durasi kalender sebenarnya. [3]

Bayangkan hasil pengamatan pelatihan terakhir baru selesai saat periode tes berikutnya berjalan. Saat pemilihan, hasil itu belum diketahui. Mengurutkan tabel berdasarkan waktu tidak memperbaikinya. Parameter gap pada TimeSeriesSplit dapat mengeluarkan pengamatan di akhir pelatihan. Jeda yang diperlukan mengikuti ketersediaan masukan dan selesainya hasil, bukan kurva terindah. Bahkan jeda tepat tidak membuktikan periode berdekatan saling independen atau menghilangkan semua bias. [3]

Kebocoran tidak harus terjadi di aturan perdagangan. Rata-rata untuk mengubah skala nilai mungkin dihitung dari seluruh berkas, termasuk tes masa depan. scikit-learn memperingatkan masalah serupa saat mengisi nilai kosong atau memilih fitur masukan. Pelajari transformasi itu hanya dari data pelatihan, lalu terapkan pada tes. Ulangi pemisahan setiap langkah; membagi tabel yang sudah diolah tidak membatalkan kebocoran. Simpan pula versi data dan waktu ketersediaannya. [4]

Hasil tiap periode tes harus digabungkan dengan benar. QuantConnect menjelaskan model harga dan jumlah pengisian yang dapat memasukkan spread dan Slippage. Evaluasi kami lalu memerlukan pembukuan yang jelas: jangan menambahkan laba pengembangan ke rekening tes atau diam-diam menghitung tes yang tumpang tindih berkali-kali. Saat berganti versi, jelaskan perlakuan posisi terbuka, modal, dan biaya perpindahan. Contoh di bawah menyederhanakannya dengan mengakhiri setiap periode tanpa posisi terbuka. [5]

Peter bisa terus mengganti panjang jendela, tujuan, atau kandidat hingga tes tampak bagus. Artinya, rangkaian tes itu juga telah dipakai untuk pengembangan. Bailey dan rekan-rekannya membahas keberhasilan kebetulan dari pencarian berulang pada data yang sama. Catat semua prosedur yang dicoba dan pisahkan validasi tambahan pada riwayat yang belum digunakan. Bergerak maju dalam waktu saja bukan jaminan statistik ataupun perkiraan kemungkinan overfitting, yakni terlalu menyesuaikan diri dengan data lama. [6]

Simpan batas jendela, kandidat, skor pemilihan, pilihan aktual, dan hasil tes berikutnya setelah biaya. Lengkapi jumlah akhir dengan kerugian, banyaknya pengamatan, dan pembanding dalam kondisi setara. NFA di AS mengingatkan bahwa hasil hipotetis tidak menangkap semua masalah likuiditas, slippage, atau perilaku saat rugi nyata; aturan promosinya mencakup anggota tertentu. Contoh kecil yang rugi tidak membantah seluruh metode. Jumlah positif pun tidak membuktikan keunggulan di masa depan. [7]

ContohCONTOH · WFA

Pemenang sebelumnya dapat kalah berikutnya

Ambil contoh rekaan kami: enam periode sama panjang dari 1 sampai 6 dan versi A serta B yang ditentukan sebelumnya. Dengan ukuran transaksi tetap yang sama, hasil bersihnya A [4, -1, 2, -3, 5, -2] USD dan B [1, 2, 1, 1, -2, 4] USD. Setiap hasil baru tersedia setelah periodenya selesai, mencakup semua biaya model, dan tidak meninggalkan posisi terbuka. Tidak ada biaya perpindahan tambahan, utang, setoran, atau penarikan. Sebelum tes kami menetapkan prosedur: jumlahkan tiga periode selesai terakhir, pilih jumlah lebih besar, lalu gunakan pemenangnya hanya pada periode berikutnya; jika seri, pilih A. Jendela pemilihan adalah [1, 2, 3], [2, 3, 4], dan [3, 4, 5], dengan tes berikutnya [4, 5, 6]. Jumlah pemilihan A adalah [5, -2, 4] USD dan B [4, 4, 0] USD. Maka kami memilih A, B, dan A berturut-turut. Hanya [-3, -2, -2] USD yang masuk hasil tes gabungan, total -7 USD. Rekening tes dimulai sebelum periode 4 dengan kas 1000 USD dan berakhir dengan 993 USD; ukuran transaksi tidak berubah mengikuti saldo. Laba periode pemilihan tidak dikreditkan ke rekening, dan setiap tes dihitung sekali. Diagram menunjukkan jendela pemilihan yang bergeser dan tes sesudahnya, bukan riwayat pasar nyata atau peluang keberhasilan mendatang.

Untuk gambaran yang lebih utuh, baca entri ini bersama Backtesting, Overfitting, Look-ahead Bias, Trading Plan, Trading Journal. Entri ini juga dirujuk dari Backtesting, Overfitting, Look-ahead Bias, Survivorship Bias.

01Bolehkah tes sebelumnya kemudian dipakai untuk pemilihan?

Ya, setelah periodenya selesai, data yang diperlukan tersedia, dan prosedur yang ditetapkan sebelumnya mengizinkan. Hal itu tidak boleh mengubah secara surut versi atau hasil yang telah dicatat untuk tes lama tersebut.

02Apakah Walk-forward Analysis mencegah overfitting?

Tidak dengan sendirinya. Jendela, kandidat, atau seluruh prosedur masih bisa disetel berulang kali terhadap hasil yang sama. Catat semua percobaan, periksa kebocoran informasi, dan bedakan pengembangan lanjutan dari validasi yang benar-benar baru.

DOC · 001QuantConnect — Walk Forward OptimizationDokumentasi DOC · 002QuantConnect — Optimization ParametersDokumentasi DOC · 003scikit-learn — TimeSeriesSplitDokumentasi DOC · 004scikit-learn — Common Pitfalls: Data LeakageDokumentasi DOC · 005QuantConnect — Trade Fills: Key ConceptsDokumentasi DOC · 006Bailey et al. — The Probability of Backtest OverfittingSumber primer DOC · 007NFA — Use of Promotional Material Containing Hypothetical Performance ResultsDokumentasi
Direvisi: Utamakan sumber · Bukan nasihat investasi