Oleh William Harris · Terakhir ditinjau
Cara Backtest Expert Advisor di MetaTrader 5 (panduan lengkap Strategy Tester)
Apa yang Anda butuhkan
- • MT5 dengan EA yang sudah terpasang dan dikonfigurasi
- • Data tick dari broker (terunduh otomatis saat pertama kali dijalankan)
- • Minimal 2 GB RAM kosong untuk backtest M1 multi-tahun
Instruksi langkah demi langkah
Langkah 1: Buka Strategy Tester
View → Strategy Tester (Ctrl+R). Panel tester muncul di bagian bawah MT5 dengan tab Settings, Inputs, dan Results.
Strategy Tester adalah mesin terpisah dari terminal live — ia punya salinan sendiri dari kode EA yang sudah dikompilasi, aliran tick historisnya sendiri, dan berjalan di sandbox tanpa akses jaringan. Ini disengaja: backtest harus deterministik dan bisa direproduksi.
Pada penggunaan pertama, MT5 perlu mengunduh data historis untuk kombinasi simbol + timeframe yang Anda pilih. Backtest pertama pada pasangan apa pun memicu unduhan tick M1 untuk seluruh rentang tanggal yang diminta — bisa memakan 5–20 menit tergantung broker dan rentang tanggal. Proses berikutnya memakai data yang sudah tersimpan dan langsung berjalan.
Langkah 2: Konfigurasi tab Settings
Di tab Settings, isi: Expert (pilih EA Anda dari dropdown), Symbol (pilih dari simbol broker Anda), Period (timeframe; biasanya samakan dengan timeframe pemasangan live), Modelling (lihat langkah berikutnya), Date (From/To), Forward (pembagian untuk walk-forward testing), Deposit (saldo awal), Leverage (leverage aktual broker pada tipe akun Anda), Currency (mata uang akun), Optimization (matikan untuk backtest tunggal).
Rentang tanggal sangat penting. Untuk backtest yang kredibel gunakan jendela minimal 5 tahun yang mencakup rezim trending dan ranging — biasanya 2018-01-01 sampai hari ini sudah mencakup lonjakan volatilitas COVID 2020, perubahan rezim inflasi 2022, dan siklus penurunan suku bunga 2024+. Jendela yang lebih pendek berisiko hanya cocok pada satu rezim.
Deposit sebaiknya sama dengan akun live Anda — trade 0,1 lot memberi tekanan psikologis yang sangat berbeda pada $1.000 vs $100.000 walau P&L absolutnya sama; model risiko lot-percent akan menyesuaikan skala.
Langkah 3: Pilih mode Modelling yang tepat
Modelling menentukan bagaimana MT5 merekonstruksi setiap tick harga selama backtest. Ada empat mode:
'Every tick' — memakai OHLC M1 untuk menginterpolasi setiap tick. Cepat, tapi tick-nya sintetis. Profit factor EA scalping sering 1,5–2× terlalu tinggi. Hindari untuk scalping.
'Every tick based on real ticks' — memakai riwayat tick asli yang direkam broker. Lambat (10× lebih lama dari sintetis) tapi menghasilkan backtest yang paling mendekati performa live. Gunakan untuk EA apa pun di timeframe M1/M5 atau strategi scalping apa pun.
'OHLC 1 minute' — hanya memakai open, high, low, close tiap bar M1. Sangat cepat, tapi urutan high vs low di dalam bar tidak terdefinisi — merusak EA yang memakai logika intra-bar. Berguna hanya untuk EA timeframe harian.
'Open prices only' — paling cepat tapi tidak realistis. Gunakan hanya untuk cek logika inisialisasi, jangan pernah untuk evaluasi performa.
Default ke 'Every tick based on real ticks' kecuali Anda terbatas waktu atau menjalankan EA timeframe harian.
Langkah 4: Muat preset vendor di tab Inputs
Pindah ke tab Inputs. Klik Load dan pilih file .set vendor dari MQL5/Presets/. Pastikan nilai yang termuat sesuai skenario backtest.
Untuk backtest yang adil, EA harus dikonfigurasi persis seperti akan dijalankan live. Artinya: ukuran lot sama, persen risiko sama, filter waktu sama, magic number sama. Satu-satunya setelan yang boleh diubah untuk backtest adalah jendela tanggal trading jika EA meng-hardcode 'jangan trading sebelum 2024' atau sejenisnya.
Jika EA punya input 'Backtest Mode' atau 'Optimization Mode' yang menonaktifkan pengecekan tertentu, biarkan mati. Mode itu dibuat untuk fitting dan menghasilkan backtest yang bagusnya tidak realistis.
Langkah 5: Atur spread dan komisi yang realistis
Strategy Tester default ke 'Current spread' — memakai spread tick live pada saat Anda memulai backtest. Ini tidak realistis: spread melebar saat berita, saat likuiditas rendah (pembukaan Sydney), dan saat pergerakan cepat.
Untuk backtest yang pesimistis, timpa spread dengan nilai poin tetap 50–100% di atas spread tipikal. Untuk EURUSD di ECN, tipikalnya 0,3 pip — pakai 0,6 pip (6 poin). Untuk XAUUSD, tipikalnya 20 poin — pakai 40 poin. Hasil backtest-nya konservatif-pesimistis.
Komisi diatur lewat Tools → Options → Charts → 'Commission, $ per 1.0 lot per side' — tapi ini hanya memengaruhi tampilan terminal live. Untuk komisi Strategy Tester, file data tick broker biasanya sudah memuat metadata komisi. Jika perlu menimpa, edit spesifikasi simbol di Symbols → Properties → Trade → Commission.
Langkah 6: Jalankan backtest
Klik Start. Strategy Tester mulai mengalirkan tick historis ke EA. Progres tampil sebagai bar di bawah; kurva Equity ter-update real-time di tab Graph.
Backtest EURUSD M5 5 tahun dengan Every-Real-Ticks memakan sekitar 15 menit di PC modern. Backtest XAUUSD M1 lebih lambat karena kepadatan tick-nya 5–10× lebih tinggi dari EURUSD. Jika mesin Anda single-core (mis. Mac via Wine), perkirakan 3–5× lebih lama.
Pantau tab Journal selama proses untuk melihat error. Error runtime yang umum: 'Cannot load history' (data masih terunduh; jeda backtest, tunggu, mulai ulang) dan 'Symbol not found' (nama simbol tidak cocok). Proses yang sukses berakhir dengan 'Tester result: ...' di log.
Langkah 7: Baca tab Results
Saat backtest selesai, tab Results menampilkan metrik ringkasan. Bidang kunci untuk dibaca, berurutan berdasarkan kepentingan:
Profit Factor = gross_profit / gross_loss. 1,5+ bisa diterima, 2,0+ bagus, 3,0+ mencurigakan (kemungkinan overfit). Di bawah 1,3, EA merugi setelah spread dan komisi.
Maximum Drawdown — penurunan ekuitas puncak-ke-lembah terbesar. Sebaiknya tidak melebihi 30% untuk EA retail mana pun; 50%+ berarti EA menghancurkan akun rata-rata dalam satu tahun buruk yang tipikal.
Sharpe Ratio (terlihat di MT5 build 4000+) — imbal hasil terkoreksi risiko. Di atas 1,0 bisa diterima; 2,0+ bagus. Perhitungan MT5 memakai return harian; backtest di bawah 1 tahun bisa menyesatkan.
Recovery Factor = net_profit / max_drawdown. Di atas 5 bagus — artinya EA pulih dari drawdown terburuknya 5× lipat. Di bawah 2 rapuh.
Total Trades — kredibilitas backtest naik seiring jumlah trade. Di bawah 100 trade, metriknya berisik. Targetkan 500+ trade dalam jendela 5 tahun.
Langkah 8: Simpan laporan backtest
Klik kanan di mana saja di tab Results → 'Save as Report...'. MT5 membuat laporan HTML berisi kurva ekuitas lengkap, return bulanan, profil drawdown, daftar trade, dan semua metrik ringkasan. Simpan laporan di tempat permanen — dokumen inilah pembanding backtest-backtest berikutnya.
Untuk tuning sistematis, simpan juga file .set lewat tab Inputs → tombol Save, dinamai dengan tanggal backtest dan metrik kunci, mis. `MyEA-Aggressive-PF1.82-DD18-2026-05-17.set`. Dengan begitu Anda punya jejak preset mana yang menghasilkan backtest mana.
Sebelum bertindak atas sebuah backtest, jalankan EA yang sama dalam mode walk-forward (Settings → Forward, bagi 50/50). Hasil walk-forward yang menyimpang berarti dari hasil in-sample adalah indikator tunggal terpenting bahwa angka in-sample overfit.
Kesalahan umum yang harus dihindari
- ✗ Memakai modelling 'Every tick' (sintetis) untuk EA scalpingPerbaikan: Selalu pakai 'Every tick based on real ticks' untuk timeframe di bawah H1. Tick sintetis melewatkan pelebaran spread yang membunuh scalper di live.
- ✗ Backtest hanya 1 tahun data lalu menganggap hasilnya prediktifPerbaikan: Minimal 5 tahun. Backtest satu tahun terlalu sedikit perubahan rezimnya untuk bermakna secara statistik.
- ✗ Membiarkan spread di 'Current' alih-alih nilai tetap yang pesimistisPerbaikan: Naikkan spread 50–100% di atas tipikal. Backtest dengan spread ketat terlihat hebat, tapi eksekusi live kehilangan 0,5+ pip per round trip.
- ✗ Mengabaikan komisi sepenuhnyaPerbaikan: Akun ECN menagih $3–7 per lot round-turn. Bagi scalper itu 30–50% dari laba bersih; tidak memodelkannya adalah sumber bias backtest optimis terbesar.
- ✗ Optimisasi pada periode yang sama dengan periode backtest (in-sample fitting)Perbaikan: Pakai walk-forward: optimisasi pada 70% periode, validasi pada 30% sisanya. Buang preset yang tidak lolos uji out-of-sample.
- ✗ Backtest hanya satu simbol padahal EA men-trade satu keranjangPerbaikan: MT5 mem-backtest satu simbol per run. Untuk EA basket, backtest tiap simbol terpisah lalu gabungkan hasilnya di spreadsheet.
- ✗ Mempercayai Net Profit sebagai metrik utamaPerbaikan: Net Profit bisa membengkak dari ukuran lot besar pada satu trade kebetulan. Pakai Profit Factor dan Recovery Factor sebagai utama; Net Profit hanya cek kewajaran.
Pertanyaan yang sering diajukan
Kenapa backtest saya menunjukkan win rate 80% tapi live trading hanya 50%?
Divergensi backtest-ke-live adalah keluhan paling umum soal EA. Diagnostik yang berguna: backtest EA yang sama dengan .set yang sama hanya pada 30 hari terakhir, lalu bandingkan trade hipotetis backtest dengan trade live aktual EA pada 30 hari yang sama. Jika timestamp trade cocok tapi P&L berbeda — masalahnya eksekusi/slippage. Jika timestamp tidak cocok — masalah lingkungan kode (feed data berbeda, bug zona waktu).
Dari mana MT5 mendapat data tick untuk backtest?
Jika riwayat broker Anda terlalu pendek untuk periode backtest, ada tiga opsi: (1) pakai terminal broker lain yang riwayatnya lebih panjang, (2) impor data tick pihak ketiga seperti TickStory atau Dukascopy lewat tombol 'Import' di panel Symbols MT5, atau (3) terima jendela backtest yang lebih pendek. Untuk pengembangan EA yang serius, banyak trader memelihara akun demo Tickmill atau Dukascopy terpisah semata untuk data tick riwayat panjang berkualitas tinggi.
Bisakah MT5 mem-backtest EA multi-simbol dalam satu run?
Mode 'tiap simbol memakai aliran tick-nya sendiri' mengharuskan EA mengaktifkannya secara eksplisit lewat `TestSetTickStreamMode(TESTER_TICK_STREAM_ALL_SYMBOLS)` di OnInit — kalau tidak, simbol non-master jatuh ke tick sintetis. Kebanyakan EA basket yang terbit 2024+ sudah menanganinya; EA lama mungkin belum. Cek dokumentasi vendor.
Bisakah backtest MT5 dijalankan di cloud supaya lebih cepat?
Cloud Network hanya mempercepat mode Optimization (menjalankan banyak varian .set), bukan backtest tunggal. Untuk backtest tunggal, CPU lokal satu-satunya pilihan. Untuk memakai optimisasi cloud Anda perlu akun MQL5 Community dengan penagihan aktif, dan EA harus terkompilasi tanpa dependensi DLL lokal (agent cloud di-sandbox).
Backtest saya memakan 4+ jam — bagaimana mempercepatnya?
Kecepatan backtest tergantung jumlah tick × kompleksitas EA. M1 EURUSD sepanjang 10 tahun ≈ 100 juta tick; dengan EA kompleks yang mengevaluasi 10 indikator per tick, itu memang 4+ jam pada satu core CPU. Percepatan yang tepat tergantung tujuan — untuk tuning parameter, mode cepat cukup; untuk evaluasi final go/no-go, jalankan mode lambat Every-Real-Ticks dan tinggalkan mesinnya bekerja.
Perlukah menjalankan analisis Monte Carlo pada hasil backtest?
Hasil backtest MT5 standar menunjukkan SATU kemungkinan kurva ekuitas historis — urutan kronologis aktual. Monte Carlo bertanya: 'Bagaimana jika trade yang sama datang dalam urutan berbeda?'. Untuk EA trend-following jawabannya biasanya 'drawdown jauh lebih buruk', karena urutan kronologis diuntungkan oleh rangkaian tren aktual. Jalankan Monte Carlo sebelum menentukan ukuran posisi live: ambil drawdown 1% terburuk dari distribusi Monte Carlo sebagai anggaran risiko Anda, bukan max drawdown aktual backtest.
Backtest terlihat menjanjikan — apa selanjutnya?
Jalankan sweep optimisasi untuk menyetel input terhadap ukuran akun live dan broker Anda, lalu validasi walk-forward. Panduan setup lima menit di sini.
Lanjut ke: Cara mengoptimasi EA di MT5 →Panduan terkait

William Harris
Pendiri & Lead Developer FxRobotEasy
Chicago, Amerika Serikat · Sejak 2021
- 12+ Tahun Trading Live
- 10+ Tahun MQL5 / MQL4
- 3 Expert Advisor yang Diverifikasi Live
- Didirikan 2021
“Saya telah membangun hal-hal dengan kode sejak SMP. Saya trading sejak kuliah. Persimpangan kedua dunia itu — algoritma, pasar, dan teknologi yang menghubungkannya — adalah tempat saya menghabiskan lima belas tahun terakhir. FxRobotEasy adalah apa yang terjadi ketika Anda menolak untuk berhenti sampai hal yang Anda bayangkan benar-benar bekerja di akun broker live.”