Backtesting & verifikasi intermediate 12 menit baca

Optimasi Parameter MT5: 116 Kombinasi, 252 Pengujian, 0 Setelan yang Kami Rilis

Optimasi parameter MT5: kami menjalankan pencarian pada delapan template strategi kami sendiri dan tidak mengadopsi satu pun. Yang berguna adalah cara masing-masing gagal: pemenang in-sample terbesar jatuh paling jauh, satu desain lolos satu pemeriksaan out-of-sample lalu runtuh, dan dua tidak pernah melewati 1,0 bahkan pada periode tempat keduanya dicocokkan. Ini prosedur dan cara membacanya.

Diterbitkan · Ditinjau

Optimasi parameter di MetaTrader 5 adalah sebuah pencarian: Anda menetapkan rentang untuk setiap input, Strategy Tester menjalankan setiap kombinasinya, dan ia menyerahkan sebuah tabel yang sudah diurutkan berdasarkan metrik mana pun yang Anda pilih. Bagian yang sulit bukanlah menjalankannya. Bagian yang sulit adalah tabel itu selalu punya baris teratas, dan baris teratas itu hampir selalu salah.

Yang Anda dapat dari artikel ini adalah sebuah prosedur yang menghasilkan sebuah keputusan, bukan sebuah angka: pencarian yang bisa Anda pertanggungjawabkan, cara membaca grid lintasan yang selamat ketika bertemu periode kedua, dan sebuah syarat berhenti.

Kondisi pengujian
ID eksperimenEXP-PARAM-SEARCH-OUTCOMES-001
Eksperimen indukEXP-BUILDER-TEMPLATE-BASELINE-001
Sumberea-templates-manifest.jsbt.explored
Populasi8 recorded searches of the 53 measured templates
Simbol / timeframeUSDJPYm, M5 and H1
ModelM1 OHLC (Model=1), Exness MT5, measured 2026-06-18
Parameter yang divariasikanstop loss and take profit only
Terakhir diverifikasi2026-08-25

Persiapan: grid, pembelahan, dan datanya

Tiga setelan menentukan apakah pencariannya layak dijalankan sama sekali. Salah menyetelnya dan grid lintasan Anda hanyalah pembangkit angka acak yang sangat mahal.

KolomDi manaYang harus disetelKenapa
OptimisationTab SettingsSlow complete algorithm untuk grid kecilMode genetik mengambil sampel ruangnya; untuk 12–32 kombinasi Anda mampu melihat semuanya
Start / Step / StopTab Inputs, per inputDua parameter, langkah yang kasarSetiap input yang Anda centang melipatgandakan grid-nya. Milik kami menggerakkan dua
ForwardTab Settings1/2, 1/3, atau 1/4Membelah intervalnya sehingga tester menilai paruh belakangnya secara terpisah — inilah pemeriksaan yang menjadi alasan Anda menjalankan pencarian itu
Optimisation criterionTab SettingsPutuskan sebelum Anda melihat grid-nyaIa metrik yang dipakai tester untuk memeringkat lintasan, jadi ia yang menentukan baris mana yang menjadi baris teratas
ModellingTab SettingsMode kasar untuk menyisir, lalu jalankan ulang kandidat yang bertahan pada tick nyataMode penyisiran itu untuk memeringkat kandidat, tidak pernah untuk angka yang diterbitkan
PeriodTab SettingsCukup panjang untuk memuat lebih dari satu rezimPencarian di dalam satu tren menemukan setelan yang menumpang tren itu

Kriterianya layak mendapat sebuah keputusan, bukan sebuah nilai bawaan. Memeringkat berdasarkan laba bersih memberi hadiah kepada lintasan yang mengambil risiko paling besar, dan memeringkat berdasarkan ukuran berbasis drawdown memberi hadiah kepada lintasan yang paling sedikit bertransaksi — faktor pemulihan ada justru karena kedua jawaban itu tidak sepakat. Pencarian kami sendiri sama sekali tidak dinilai dari peringkat tester: setiap kandidat yang bertahan dinilai lewat faktor profit pada tiga jendela terpisah, dan peringkat di dalam salah satu jendela itu tidak pernah menentukan apa pun.

Kualitas data lebih dulu: pencarian di atas tick yang buruk mengoptimasi celah-celahnya. Versi ringkasnya, kualitas modelling di bawah 90% membuat grid lintasan intraday tidak bisa dipakai, dan jalannya pengujian yang dibangun dari data tick hasil interpolasi tidak bisa memutuskan stop yang duduk di dalam sebuah bar.

  1. Jalankan satu backtest lebih dulu, pada nilai bawaannya, dan simpan laporannya. Tanpa baseline, grid lintasan Anda tidak punya apa pun untuk dikalahkan — cara menjalankan backtest mengurus lintasan itu dari ujung ke ujung.
  2. Di tab Settings, setel Optimisation ke lintasan lengkap untuk grid kecil, dan setel Forward ke 1/3 supaya tester menahan sepertiga terakhir intervalnya.
  3. Di tab Inputs, centang hanya parameter yang benar-benar Anda uji, dan beri masing-masing sebuah Start, Step, dan Stop. Dua input dengan langkah kasar mengalahkan empat input dengan langkah halus.
  4. Tekan Start dan biarkan selesai. Baca tab Optimisation Results sebagai sebuah tabel, dan Optimisation Graph sebagai sebuah bentuk — satu lonjakan tunggal adalah peringatan, sedangkan dataran adalah temuan.
  5. Ambil kandidat yang bertahan — bukan pemenangnya — dan jalankan ulang masing-masing sebagai backtest tunggal pada periode sebelum jendela optimasinya. Inilah langkah yang menghasilkan setiap verdict negatif di kumpulan kami, dan inilah langkah yang orang lewati.

Membaca hasilnya: tiga periode, bukan satu

Inilah seluruh kumpulan tercatat kami, diurutkan berdasarkan faktor profit in-sample terbaik yang dicapai masing-masing pencarian. IS adalah periode tempat setelannya dicocokkan, OOS adalah hold-out-nya, dan prior adalah jendela lebih awal yang tidak pernah dilihat pencarian itu.

TemplateGrid yang dicariIS terbaikOOSPriorVerdict
ichimoku12 kombinasi × 3 jendela1,370,890,80no_robust_edge
ma_crossover20 + 12 kombinasi, dua timeframe1,230,89–0,940,78no_robust_edge
cci_level12 kombinasi × 3 jendela1,071,050,92no_robust_edge
adx_trend12 kombinasi × 3 jendela1,040,910,80no_robust_edge
breakout12 kombinasi × 3 jendela1,040,79–0,890,64–0,84no_robust_edge
macd_signal12 kombinasi × 3 jendela1,14–1,150,74–0,77no_robust_edge
rsi_reversal12 kombinasi × 3 jendela0,91no_robust_edge
bb_bounce12 kombinasi × 3 jendela0,91no_robust_edge

Baca ke bawah kolom angka pertama, lalu ke samping. Hasil in-sample terbesar di kumpulan ini menghasilkan keruntuhan terbesar: 1,37 milik ichimoku jatuh ke 0,89 lalu ke 0,80. Urutan itu bukan kebetulan — setelan yang paling pas dengan sebuah jendela justru, menurut caranya dibuat, adalah setelan yang paling banyak menyerap derau jendela tersebut.

Sekarang baca setelan yang sebenarnya paling mendekati. Ia tidak ada di tabel di atas, karena ia tidak pernah menjadi baris teratas apa pun: pada grid ichimoku yang sama, SL50/TP150 mencetak 1,18 di dalam sampel, 0,99 di luar sampel, dan 1,00 pada jendela prior. Tiga periode, semuanya kurang lebih datar. Ia dicatat sebagai kandidat terdekat dan tetap tidak diadopsi, karena impas di tiga jendela bukanlah keunggulan — ia justru ketiadaan keunggulan, yang diukur dengan cermat.

Berbanding dengan itu, baseline yang hendak dikalahkan pencarian-pencarian ini berada di antara 0,92 dan 1,03. Tidak satu pun pencarian menggeser nilai bawaan yang sudah dirilis.

Jebakan yang harus dihindari

Modus kegagalan di bawah kelimanya sama saja. Overfitting bukanlah kesalahan yang Anda buat di akhir sebuah pencarian — ia adalah hasil bawaan dari menjalankan pencarian, dan disiplin tiga periode itu ada supaya ia terlihat sebelum Anda bertindak atasnya.

Memperbaiki dan mengulang: apa yang diubah, dan kapan berhenti

Ubah satu hal, jalankan ulang, bandingkan dengan baseline yang tadi Anda simpan. Urutan yang paling sedikit membuang waktu:

  1. Lebarkan periodenya sebelum melebarkan grid-nya. Lebih banyak rezim mengalahkan lebih banyak kombinasi. Pencarian yang hanya mencakup satu tren akan menemukan setelan yang menumpang tren itu, seberapa pun resolusinya.
  2. Baru sesudah itu kasarkan langkahnya, jangan justru menghaluskannya. Kalau sebuah hasil hanya ada di SL47, hasil itu tidak ada.
  3. Baru setelah itu, dan hanya setelah itu, tambahkan satu parameter. Milik kami tidak pernah sampai sejauh ini, karena dua parameter saja sudah gagal melewati palang tiga periode.

Berhentilah ketika salah satu dari ini benar, dan tuliskan yang mana:

  • Sebuah kandidat yang bertahan lolos ketiga periodenya. Rilis ia, dan catat seluruh grid yang Anda cari — bukan cuma lintasan yang Anda simpan.
  • Hasil in-sample terbaiknya di bawah 1,0. Anda punya jawaban yang sungguhan: dua dari delapan pencarian kami berakhir di sini, dan berakhir di sini setelah 36 evaluasi itu murah.
  • Kandidat yang bertahan terus lolos di satu jendela dan gagal di jendela lain. Aturannya bergantung rezim. Mencari lebih banyak hanya menghasilkan lebih banyak setelan yang bergantung rezim.
  • Anda mulai menjelaskan kenapa jendela prior “tidak dihitung”. Itulah saat pencarian Anda berhenti menjadi sebuah pengujian.

Catatan yang jujur atas sebuah pencarian adalah rentang yang Anda jelajahi dan verdict-nya, bersama-sama. Kedelapan pencarian kami disimpan seperti itu, dan justru karena itulah artikel ini bisa ditulis dari mereka sama sekali — pemenang yang disimpan sendirian tidak akan membuktikan apa pun.

Langkah selanjutnya: forward test, lalu putuskan

Optimasi adalah langkah kedua dari empat. Urutannya adalah backtest → optimasi → walk-forward → demo, dan masing-masing menyingkirkan satu cara berbeda untuk menjadi salah.

  • Latih putarannya pada sesuatu yang Anda kendalikan: bangun sebuah strategi di Builder dan carilah sendiri stop dan target-nya, sebab grid yang Anda tetapkan sendiri jauh lebih mudah dibaca dengan jujur daripada grid warisan orang lain.
  • Versi formal dari pemeriksaan tiga periode itu adalah analisis walk-forward, yang menggulirkan pembelahannya ke depan alih-alih memakukannya di satu tempat.
  • Apa pun yang diserahkan kembali oleh pencarian itu, laporan tempat ia diserahkan tetap harus dibaca: membaca laporan backtest MT5 membahas populasi mana yang sebenarnya sedang diklaim oleh masing-masing angka utamanya.
  • Untuk melihat seperti apa catatan yang sudah jadi ketika angka-angkanya memang selamat, EA yang diterbitkan masing-masing membawa daftar lengkap transaksi tertutupnya beserta manifes eksekusinya.
  • Bagaimana kami menguji, menilai, dan mencatat semua ini dijabarkan dalam metodologi pengujian kami.

Pertanyaan yang sering diajukan

Berapa banyak parameter yang sebaiknya dioptimasi sekaligus?
Lebih sedikit daripada yang diizinkan tester. Setiap pencarian di kumpulan tercatat kami sendiri menggerakkan tepat dua — stop loss dan take profit — di rentang 12 sampai 32 kombinasi, dan tidak satu pun dari kedelapannya menghasilkan setelan yang bersedia kami rilis. Menambahkan parameter ketiga dan keempat tidak memperbaiki itu; ia melipatgandakan grid-nya dan membuat jauh lebih mudah menemukan kombinasi yang mencocoki derau di jendela pengujian Anda. Kalau dua parameter tidak bisa menghasilkan hasil yang selamat melewati tiga periode, masalahnya ada pada aturannya, bukan pada resolusi pencariannya.
Faktor profit berapa yang harus saya cari dalam satu lintasan optimasi?
Lihat tiga angka, bukan satu. Di kumpulan kami, faktor profit in-sample terbaik mencapai 1,37 pada template ichimoku — dan setelan yang sama mencetak 0,89 di luar sampel dan 0,80 pada jendela yang lebih awal. Setelan yang paling mendekati layak pakai justru jauh kurang mengesankan secara in-sample: 1,18, bertahan di 0,99 dan 1,00 pada dua periode lainnya. Setelan itu tetap tidak diadopsi, karena impas pada dua dari tiga jendela bukanlah keunggulan. Angka in-sample yang tinggi adalah angka yang paling tidak informatif di layar.
Apakah satu pengujian out-of-sample cukup untuk memvalidasi setelan hasil optimasi?
Tidak, dan kami punya kasus yang menunjukkan alasannya. Template macd_signal menghasilkan setelan yang mencapai 1,14 sampai 1,15 di luar sampel — lulus bersih pada satu hold-out — lalu mencetak 0,74 sampai 0,77 pada jendela sebelum periode pengujiannya. Desain kedua, cci_level, melangkah lebih jauh: 1,07 di dalam sampel, 1,05 di luar sampel, dan 0,92 pada jendela sebelumnya. Dua periode pun ternyata tidak cukup. Keduanya akan lolos rilis di bawah aturan hold-out tunggal yang lazim.
Apa artinya kalau optimasi sama sekali tidak menemukan setelan yang menguntungkan?
Artinya Anda mendapat jawabannya lebih awal dan lebih murah, dan itulah hasil yang baik. Dua dari delapan pencarian kami — rsi_reversal dan bb_bounce — tidak pernah menghasilkan faktor profit di atas 1,0 bahkan pada periode tempat keduanya dicocokkan; hasil in-sample terbaiknya 0,91. Aturan yang tidak bisa dibuat bekerja pada data tempat ia disetel tidak akan diselamatkan oleh grid yang lebih lebar atau jalannya pengujian yang lebih panjang. Catat rentang yang Anda cari beserta verdict-nya, lalu lanjut ke ide berikutnya.