Backtesting adalah
Backtesting adalah pengujian aturan trading pada data harga masa lalu. Tujuannya melihat bagaimana aturan itu akan berperilaku jika dijalankan secara konsisten.
Backtest tidak meramal masa depan. Hasil yang bagus hanya menunjukkan bahwa aturan tersebut cocok dengan data yang diuji. Kondisi pasar, spread, dan likuiditas bisa berubah.
Trading forex dan CFD dengan leverage dapat menghabiskan modal dengan cepat. Hasil backtest yang rapi tidak mengurangi risiko itu.
Siap mencoba di akun riil atau demo?
Tautan mitra · trading memiliki risiko kerugian yang tinggi
Mekanisme dasar backtest
Backtest terdiri dari tiga bagian:
- Aturan tertulis. Kondisi entry, exit, stop loss, take profit, ukuran posisi, dan jam trading. Aturan harus cukup jelas sehingga orang lain atau program bisa menjalankannya tanpa menebak.
- Data harga. Data bar (OHLC: open, high, low, close) atau data tick (setiap perubahan harga bid dan ask).
- Model eksekusi. Cara simulasi mengisi order: pada harga berapa, dengan spread berapa, dan apakah ada slippage. Slippage adalah selisih antara harga yang diminta dan harga eksekusi.
Ada backtest manual, yaitu menggulir chart bar demi bar lalu mencatat setiap sinyal. Ada juga backtest otomatis, yaitu menjalankan kode strategi (Expert Advisor atau skrip) di mesin pengujian. Backtest manual melatih disiplin membaca chart. Backtest otomatis lebih cepat dan bebas dari ingatan selektif.
Aturan sebaiknya ditulis lebih dulu di trading plan sebelum Anda melihat hasil uji.
Kualitas data
Data yang buruk menghasilkan kesimpulan yang buruk. Periksa hal-hal berikut:
- Celah dan bar hilang. Akhir pekan dan hari libur memang normal. Celah di tengah sesi aktif biasanya kesalahan data.
- Spike palsu. Harga yang melonjak sesaat lalu kembali bisa memicu stop yang di pasar nyata tidak pernah tersentuh.
- Zona waktu. Penyedia data memakai zona waktu berbeda. Strategi berbasis sesi, misalnya London Breakout atau range sesi Asia, sangat sensitif terhadap hal ini.
- Bid saja atau bid dan ask. Data yang hanya berisi bid menyembunyikan spread yang sebenarnya.
- Resolusi. Pada bar besar, simulator tidak tahu mana yang tersentuh lebih dulu, high atau low. Jika stop dan target berada di dalam satu bar yang sama, hasilnya bisa salah. Data tick atau timeframe lebih kecil mengurangi masalah ini.
Data dari server broker hanya mencerminkan feed broker tersebut. Data dari sumber lain bisa berbeda tipis, dan perbedaan itu berpengaruh pada strategi jangka pendek.
Memasukkan biaya
Banyak strategi terlihat untung sebelum biaya, tetapi rugi setelah biaya. Masukkan semua komponen berikut:
| Biaya | Pengaruh di backtest |
|---|---|
| Spread | Dibayar di setiap entry. Sering melebar saat rilis berita dan pergantian sesi. |
| Komisi | Ada di sebagian jenis akun. Dihitung per lot. |
| Swap | Biaya atau kredit untuk posisi yang ditahan melewati pergantian hari. |
| Slippage | Paling besar pada order stop dan saat pasar bergerak cepat. |
Gunakan spread yang realistis, jangan spread terendah. Untuk scalping, biaya sering menentukan hasil akhir. Angka spesifik untuk instrumen Anda bisa dihitung dengan kalkulator trading.
Backtest MT4 dan MT5
MetaTrader punya Strategy Tester untuk menguji Expert Advisor pada data historis.
Backtest MT4. Tersedia beberapa mode pemodelan: "Every tick", "Control points", dan "Open prices only". Mode "Every tick" di MT4 tidak memakai tick asli. Tick dibuat dari data bar menit, jadi pergerakan di dalam bar tetap hasil perkiraan. Spread dalam pengujian biasanya tetap, tidak berubah mengikuti kondisi pasar.
Backtest MT5. Ada mode "Every tick based on real ticks" yang memakai tick asli jika tersedia di server, termasuk spread yang berubah-ubah. MT5 juga mendukung pengujian multi-simbol, optimasi dengan agen lokal atau jaringan, serta fitur forward test bawaan.
Langkah umumnya:
- Pilih EA, simbol, timeframe, dan rentang tanggal.
- Pilih mode pemodelan yang paling teliti untuk strategi Anda.
- Atur deposit awal, leverage, dan spread agar sesuai dengan kondisi akun yang akan dipakai.
- Jalankan uji, lalu baca laporan: jumlah trade, drawdown, profit factor, dan urutan trade.
- Periksa chart visual untuk memastikan entry dan exit sesuai aturan.
Penjelasan tentang platform ada di Platform & Aplikasi.
Software backtesting lain
Selain MetaTrader, trader memakai platform charting dengan bahasa skrip sendiri, pustaka pemrograman seperti Python, atau spreadsheet untuk uji manual. Saat memilih software backtesting, periksa:
- apakah tersedia data tick atau hanya bar;
- apakah spread, komisi, dan slippage bisa diatur;
- apakah ada pencegahan look-ahead bias, yaitu penggunaan data yang belum tersedia pada saat sinyal muncul;
- apakah hasilnya bisa diekspor untuk dianalisis sendiri.
Topik otomatisasi dibahas di Algorithmic Trading.
In-sample dan out-of-sample
Bagi data menjadi dua bagian:
- In-sample: bagian yang dipakai untuk merancang dan menyetel parameter.
- Out-of-sample: bagian yang tidak disentuh sampai aturan dikunci. Data ini hanya dipakai untuk uji akhir.
Jika Anda melihat hasil out-of-sample lalu mengubah aturan, data itu berubah fungsi menjadi in-sample. Untuk uji baru, Anda perlu data segar lagi.
Walk-forward
Walk-forward mengulang proses tadi secara bergulir. Anda mengoptimasi parameter pada satu jendela data, menguji pada jendela berikutnya, lalu menggeser kedua jendela ke depan dan mengulanginya. Hasil seluruh jendela uji digabung.
Cara ini meniru kondisi nyata: parameter selalu ditentukan dari masa lalu, lalu dipakai pada data yang belum pernah dilihat. Jika hasil jendela uji jauh lebih buruk daripada jendela optimasi, strategi kemungkinan terlalu disesuaikan dengan data.
Setelah itu, lanjutkan dengan forward testing di akun demo dengan eksekusi real-time.
Tanda overfitting
Overfitting terjadi ketika aturan menghafal kebisingan data, bukan menangkap perilaku pasar yang berulang. Tandanya:
- terlalu banyak parameter dan filter dibandingkan jumlah trade;
- hasil runtuh jika parameter digeser sedikit (tidak ada "dataran" hasil yang stabil);
- hanya bekerja pada satu pair dan satu periode;
- kurva ekuitas terlalu mulus;
- aturan yang dibuat untuk menghindari kerugian tertentu di masa lalu.
Cara mengeceknya: uji sensitivitas parameter, uji di instrumen dan periode lain, acak urutan trade (simulasi Monte Carlo), dan hitung berapa variasi yang sudah Anda coba. Makin banyak variasi yang dicoba, makin besar peluang menemukan hasil bagus secara kebetulan.
Cara backtest yang menyesatkan menyebabkan kerugian
- Biaya diremehkan. Strategi dengan target kecil berubah dari untung menjadi rugi setelah spread dan slippage nyata.
- Look-ahead bias. Sinyal memakai harga close bar yang belum selesai.
- Survivorship dan seleksi. Hanya menguji instrumen atau periode yang "terlihat cocok".
- Drawdown diremehkan. Drawdown nyata bisa lebih dalam dan lebih lama daripada yang tercatat di backtest. Banyak trader berhenti di titik terburuk. Lihat psikologi trading.
- Sistem penambahan posisi. Pada martingale dan grid, backtest bisa tampak stabil lama, lalu satu pergerakan searah menghapus akun.
- Leverage terlalu tinggi. Ukuran posisi yang wajar di simulasi bisa memicu stop-out di akun nyata. Stop-out adalah penutupan posisi secara paksa saat margin tidak cukup. Lihat manajemen risiko.
Contoh hipotetis
Contoh ini hipotetis dan bukan klaim kinerja. Seorang trader menguji MA crossover dengan stop berbasis ATR. Di in-sample, hasilnya positif setelah parameter disetel. Ia lalu menambahkan spread realistis dan slippage, dan hasilnya menjadi mendatar. Di uji walk-forward, sebagian jendela untung dan sebagian rugi, dengan drawdown lebih dalam daripada di in-sample. Kesimpulannya: aturan belum layak dipakai dan perlu disederhanakan. Bukan berarti perlu ditambah filter.
Checklist singkat
- Aturan ditulis sebelum pengujian.
- Data diperiksa: celah, spike, zona waktu.
- Biaya realistis sudah dimasukkan.
- Out-of-sample dikunci.
- Walk-forward dan uji sensitivitas sudah dilakukan.
- Forward test di akun demo sebelum memakai dana nyata.
Pertanyaan yang sering diajukan
Apa bedanya backtesting dan forward testing?
Backtesting memakai data masa lalu. Forward testing menjalankan aturan secara real-time, biasanya di akun demo, sehingga eksekusi dan emosi ikut teruji.
Apakah backtest MT4 cukup akurat?
Cukup untuk strategi pada timeframe besar. Untuk strategi jangka pendek, tick buatan dan spread tetap di MT4 bisa menyesatkan. Backtest MT5 dengan tick asli lebih mendekati kondisi nyata, tetapi tetap simulasi.
Berapa banyak data yang dibutuhkan?
Tidak ada angka pasti. Data harus mencakup kondisi pasar yang berbeda (tren, sideways, volatilitas tinggi dan rendah) dan menghasilkan cukup banyak trade agar hasilnya tidak bergantung pada segelintir transaksi.
Apakah hasil backtest yang bagus berarti strategi akan untung?
Tidak. Backtest hanya menunjukkan perilaku aturan di masa lalu. Trading dengan leverage tetap bisa rugi dengan cepat.
Software backtesting apa yang sebaiknya dipakai?
Pilih yang mendukung data dan biaya sesuai strategi Anda, serta mudah diperiksa hasilnya. Istilah yang belum jelas bisa dicari di glosarium trading.
