Kategori
Kinerja
Tingkat
Lanjutan
Digunakan pada
BacktestingDesain strategiOperasional MT5

Analisis walk-forward

Analisis walk-forward adalah metode validasi yang mengoptimasi ulang strategi pada satu jendela riwayat, menjalankannya tanpa disentuh pada jendela berikutnya, lalu menggeser kedua jendela dan mengulanginya — hanya segmen tak tersentuh yang dikutip.

juga: WFA, optimasi walk-forward, WFO, uji out-of-sample bergulir

Diperbarui · Ditinjau · Ditinjau oleh mt5depot research desk

Dengan bahasa sederhana

Setel aturan pada satu penggal riwayat, jalankan tanpa disentuh pada penggal yang mengikutinya, lalu geser kedua penggal itu dan ulangi lagi. Hanya penggal yang tak tersentuh yang boleh masuk ke angka yang Anda kutip.

Mengapa ini penting

Satu uji out-of-sample menjawab satu pertanyaan satu kali. Walk-forward mengajukannya lagi di setiap langkah, dan hanya itulah cara melihat apakah sebuah keunggulan terus bertahan terhadap penyetelan ulang, bukan bertahan sekali karena beruntung. Ia juga melatih apa yang benar-benar dilakukan orang yang menjalankan EA: memilih parameter dari masa lalu terdekat, lalu membawanya ke masa depan yang belum dilihat siapa pun.

  • Ia menilai prosedurnya, bukan satu setelan. 'Setel ulang dengan cara ini, lalu jalankan' adalah yang benar-benar akan Anda lakukan, jadi itulah yang layak divalidasi.
  • Ia mengembalikan satu deret hasil out-of-sample, bukan satu angka, sehingga satu kuartal yang menyanjung tidak bisa memikul klaimnya sendirian.
  • Ia menyingkap parameter yang menolak diam. Ketika setiap penyetelan ulang mendarat di tempat baru, aturannya sedang mengikuti sampel, bukan pasar.
  • Satu blok cadangan menyembunyikan pertanyaan rezim. Dua dari delapan pencarian yang kami catat lolos pada jendela sesudah pencarian lalu gagal pada jendela sebelumnya.

Memakainya untuk memvalidasi strategi

Di mana dipakai

  • Memvalidasi strategi yang parameternya memang sungguh-sungguh hendak Anda setel ulang secara berkala.
  • Memilih interval optimasi ulang — berapa lama satu set parameter tetap layak pakai sebelum perlu disegarkan.
  • Memisahkan keunggulan yang bertahan melintasi beberapa rezim dari keunggulan yang hanya pernah ada di jendela tempat ia disetel.
  • Membangun catatan out-of-sample yang bisa dipertahankan ketika riwayatnya terlalu pendek untuk menyisihkan satu blok cadangan besar.

Seperti apa hasil yang tepercaya

  • Hanya segmen out-of-sample yang menyusun angka utama, disambung ujung ke ujung, dengan angka in-sample berdiri di sebelahnya alih-alih dilebur ke dalamnya.
  • Anda menetapkan panjang pelatihan, panjang pengujian, dan besar langkah sebelum run pertama, dan ketiganya ikut dilaporkan bersama hasilnya.
  • Laporannya mengutip efisiensi out-of-sample — kinerja out-of-sample sebagai bagian dari kinerja in-sample — bukan hanya labanya.
  • Setiap langkah mencantumkan parameter yang dipilihnya, sehingga pembaca bisa menilai seberapa jauh parameter itu mengembara.
  • Jumlah konfigurasi walk-forward yang dicoba tercantum di suatu tempat, karena mencoba banyak konfigurasi itu sendiri adalah bentuk penyetelan.

Tanda bahaya

  • Satu angka gabungan, tanpa pemisahan antara paruh in-sample dan paruh out-of-sample.
  • Panjang jendela yang tampak ikut disetel: rasio pelatihan terhadap pengujian yang ganjil dan tak dijelaskan siapa pun.
  • Parameter yang melompat pada setiap penyetelan ulang, artinya tiap penyetelan mengejar derau jendela sebelumnya.
  • Efisiensi mendekati atau di atas 100 %, yang jauh lebih sering menunjuk kebocoran antar jendela daripada strategi yang luar biasa tangguh.
  • Varian anchored dan rolling dikutip bergantian, padahal jendela yang tumbuh dan jendela yang tetap menjawab pertanyaan berbeda.

Backtest vs perdagangan nyata

  • Walk-forward menutup sebagian jurang menuju hasil riil karena prosedur yang diuji adalah prosedur yang dijalankan.
  • Ia tidak menyentuh risiko eksekusi. Slippage, pelebaran spread, dan latensi semuanya berada di luar latihan ini.
  • Ia tidak bisa mengarang rezim yang tak pernah ada di riwayat, jadi strategi yang bertahan melewati dua puluh penyetelan ulang di dalam satu dekade yang tenang tetap belum teruji terhadap dekade yang penuh tekanan.
  • Harapkan hasil riil berada dekat deret out-of-sample, bukan dekat angka in-sample. Angka in-sample mendiagnosis pencariannya; ia tidak meramalkan apa pun.

Metode validasi yang disarankan

  1. 1MetaTrader 5 tidak menyertakan walk-forward bergulir. Kolom Forward pada tab Settings di Strategy Tester memotong intervalnya sekali — 1/2, 1/3, 1/4, atau tanggal pilihan sendiri — lalu menilai pass yang bertahan pada bagian ekornya di tab Forward Results terpisah. Satu run membeli satu langkah.
  2. 2Susun deretnya dengan tangan: ulangi optimasinya sekali per langkah, masing-masing dengan rentang tanggal yang digeser sebesar panjang langkah, dan simpan baris forward dari tiap run. Dua puluh segmen berarti dua puluh run, jadi tetapkan jumlah langkahnya sebelum Anda mulai.
  3. 3Pilih kriteria optimasi sebelum Anda melihat gridnya, karena kriteria itulah yang menentukan pass mana yang disebut MT5 sebagai pemenang di setiap langkah. Custom max mengalihkan keputusan itu ke OnTester() ketika tidak ada kriteria bawaan yang cocok dengan cara Anda menilai sebuah run.
  4. 4MT5 selalu memotong irisan forward-nya dari ujung akhir rentang, jadi jendela tepat sebelum periode pelatihan tidak pernah menghadapi ujian. Jalankan yang satu itu sendiri: pada kumpulan kami sendiri, langkah ini menangkap dua rancangan yang sudah diloloskan pemeriksaan forward.
  5. 5Catat parameter pemenang langkah demi langkah. Tab Forward Results memberi Anda sebuah pass, tidak pernah lintasan setelan sepanjang langkah — dan lintasan itulah temuannya.
  6. 6Perlakukan seluruh latihan ini sebagai satu eksperimen. Menjalankannya ulang dengan panjang jendela yang baru sampai lolos hanya memindahkan overfitting satu tingkat ke atas alih-alih menghapusnya.

Contoh

Satu langkah, dari catatan kerja kami sendiri: delapan pencarian parameter dalam EXP-PARAM-SEARCH-OUTCOMES-001. Template ichimoku menyisir grid berisi 12 kombinasi pada H1, menyimpan pass in-sample terbaiknya, lalu bertemu dua jendela yang tak pernah disentuh pencarian itu.

Grid yang disisir
12 kombinasi
SL 30-80 x TP 60-250, H1
Profit factor in-sample
1,37
Jendela sesudah pencarian
0,89
Jendela sebelum pencarian
0,80
Pencarian tercatat / diadopsi
8 / 0

Angka 65 % jatuh di dalam pita yang oleh sebagian besar laporan disebut kuat. Setelan yang sama tetap merugi pada kedua jendela yang belum pernah dilihatnya, dan karena itulah satu langkah dibaca sebagai satu titik data, tidak pernah sebagai vonis.

Perhitungan 0,89 dibagi 1,37 = efisiensi 65 % pada langkah itu; 0,80 dibagi 1,37 = 58 % pada jendela yang lebih awal

Hasil Efisiensi 65 % — pada setelan yang kami tolak untuk dirilis

Cara membacanya

Baca deret out-of-sample lebih dulu, lalu rasionya, lalu kestabilan parameternya. Laba utama adalah yang paling sedikit memberi informasi di antara ketiganya.

Rentang Artinya
Di bawah kira-kira 40 % Pencariannya sebagian besar hanya mengepaskan jendelanya sendiri. Keunggulan kecil mungkin bertahan, tetapi bukan keunggulan yang diiklankan.
Kira-kira 40–60 % Biasa saja begitu beberapa parameter bergerak. Rencanakan berdasarkan angka out-of-sample, bukan angka in-sample.
Di atas 60 % pada satu langkah Menjanjikan, bukan vonis. Langkah 65 % kami tetap merugi pada kedua jendela yang belum dilihatnya.
Di atas 60 % pada sebagian besar langkah, parameter stabil Kuat. Penyetelan ulangnya terus bekerja dan semuanya sepakat soal setelannya.
Mendekati atau di atas 100 % Curigai kebocoran antar jendela, look-ahead, atau segmen yang terlalu sedikit untuk bermakna.
  • Hitung segmennya. Empat segmen itu anekdot; dua puluh segmen itu sebaran.
  • Petakan parameter terpilih sepanjang langkah. Optimum yang mengembara sedang memberi tahu Anda bahwa ia derau.
  • Jangan pernah melebur ekuitas in-sample dan out-of-sample menjadi satu kurva: leburan itu separuh soal ujian, separuh kunci jawaban.
  • Uji juga jendela sebelum periode pelatihan. Dua dari delapan pencarian kami lolos ke depan dan gagal ke belakang.

mt5depot mempublikasikan jendela data, model tester, dan jumlah transaksi di balik setiap run, sehingga klaim out-of-sample mana pun di sini bisa diperiksa terhadap sampel yang menghasilkannya.

Kesalahan umum

Menyebut satu run Forward MT5 sebagai walk-forward

Kolom Forward membagi intervalnya sekali dan melaporkan bagian ekornya. Itu satu blok cadangan anchored dengan tab yang lebih rapi, dan ia menjawab pertanyaannya satu kali. Walk-forward menuntut titik pembagi itu bergerak, yang di MT5 berarti Anda sendiri yang menjalankan pengulangannya: satu optimasi per langkah, lalu mengumpulkan baris-baris forward menjadi sebuah deret.

Menyetel konfigurasi walk-forward itu sendiri

Mencoba beberapa panjang pelatihan dan pengujian, lalu mempublikasikan pasangan mana pun yang skornya terbaik, semata memindahkan overfitting satu tingkat lebih tinggi. Panjang jendela juga parameter, jadi pilihlah, catatlah, baru jalankan.

Membaca angka out-of-sample yang tinggi sebagai otomatis bagus

Pencarian macd_signal kami mencapai 1,14–1,15 pada jendela sesudah pencarian dan 0,74–0,77 pada jendela sebelumnya. Angka out-of-sample yang tinggi bisa berarti kebocoran, rezim yang kebetulan menguntungkan, atau segmen yang terlalu sedikit — selidiki dulu sebelum merayakan.

Mengira walk-forward membuktikan ketangguhan terhadap kondisi yang belum pernah ada

Ia hanya pernah menguji kondisi yang termuat dalam riwayatnya. Dua puluh penyetelan ulang di dalam satu rezim menghasilkan dua puluh hasil dari rezim itu, yang tidak mengatakan apa pun tentang rezim berikutnya.

Penjelasan lengkap

Pertanyaan yang sering diajukan

Bagaimana cara menjalankan analisis walk-forward di MetaTrader 5?
MT5 memberi Anda potongan-potongannya, bukan pengulangannya. Setel Forward pada tab Settings di Strategy Tester ke 1/2, 1/3, atau 1/4: tester mengoptimasi pada bagian depan rentang tanggal Anda lalu menilai pass yang bertahan pada bagian ekornya, yang ia daftarkan di tab Forward Results tersendiri. Itu satu langkah. Untuk mendapatkan deret, geser seluruh rentang tanggal maju sebesar panjang langkah dan jalankan optimasinya lagi, sekali per segmen, sambil mencatat baris forward dan parameter pemenangnya setiap kali. Dua puluh segmen berarti dua puluh run.
Berapa seharusnya panjang jendela in-sample dan out-of-sample?
Cukup panjang sehingga jendela pelatihan memuat lebih dari satu rezim dan jendela pengujian memuat cukup transaksi untuk berarti. Rasio bawaan tester 1/2, 1/3, dan 1/4 adalah titik awal yang masuk akal, dan tanggal forward pilihan sendiri memberi irisan uji yang lebih pendek ketika langkahnya kecil. Aturannya lebih penting daripada angkanya: pilih rasionya sebelum run pertama, karena mencoba beberapa lalu mempublikasikan yang terbaik justru mengulang kesalahan yang hendak ditangkap walk-forward.
Apakah analisis walk-forward menghapus overfitting?
Tidak. Ia memindahkannya dan membuatnya terlihat. Penyetelan ulang tetap terjadi di dalam setiap jendela pelatihan, jadi metode ini mengukur berapa banyak dari penyetelan itu yang selamat saat bersentuhan dengan jendela berikutnya, bukan mencegahnya. Delapan pencarian yang kami catat sendiri menjalankan 116 kombinasi parameter dan tidak satu pun diadopsi: dua di antaranya lolos pada jendela sesudah pencarian lalu gagal pada jendela sebelumnya, dan justru pola itulah yang disembunyikan oleh satu blok cadangan tunggal.
Berapa efisiensi out-of-sample yang tergolong bagus?
Kira-kira 40–60 % itu biasa begitu segelintir parameter bergerak, dan angka di atas 60 % yang bertahan pada sebagian besar langkah dengan parameter stabil tergolong kuat. Curigai setiap langkah tunggal: pencarian kami yang paling pas membaca 65 % pada satu langkah dan setelan pilihannya tetap merugi pada kedua jendela yang belum pernah dilihatnya. Angka mendekati atau di atas 100 % lebih sering menandakan kebocoran antara jendela pelatihan dan pengujian daripada strategi yang luar biasa tangguh.
Kriteria optimasi mana yang sebaiknya memeringkat pass-nya?
Putuskan sebelum gridnya muncul, karena kriteria itu — fungsi tujuan, dalam literatur yang lebih luas — memilih pass pemenang di setiap langkah. Pemeringkatan berbasis balance memberi hadiah kepada pass yang mengambil risiko paling besar, pemeringkatan berbasis drawdown memberi hadiah kepada pass yang paling sedikit bertransaksi, dan Custom max menyerahkan keputusan itu ke OnTester() milik Anda sendiri ketika keduanya tidak cocok. Pada pencarian yang kami catat, pemeringkatan tester tidak pernah memutuskan apa pun sendirian: setiap pass yang bertahan masih harus menjaga profit factor di atas 1,0 pada tiga jendela, dan tak satu pun dari kedelapan pencarian itu berhasil.
Apa beda walk-forward dengan satu uji out-of-sample tunggal?
Uji tunggal menyisihkan satu blok data dan memeriksa parameter finalnya terhadap blok itu satu kali. Walk-forward mengulang siklus setel-lalu-uji di sepanjang riwayat, sehingga ia mengembalikan satu deret hasil out-of-sample sekaligus menguji prosedur penyetelan ulangnya sendiri — hal yang benar-benar dikerjakan seorang operator bulan demi bulan.