Akun demo, backtesting, forward testing, dan market replay
Anda dapat memeriksa strategi pada akun demo, melalui pengujian historis, secara waktu nyata, atau melalui pemutaran ulang pasar. Setiap lingkungan menjawab pertanyaan berbeda dan memiliki keterbatasan sendiri. Kami menjelaskan apa yang dibuktikan suatu hasil, cara memperhitungkan biaya, dan cara memisahkan pemilihan parameter dari evaluasi independen. Artikel ini juga menunjukkan bagaimana kesalahan data dan simulasi dapat memperindah kurva kinerja sebelum aturan menghadapi eksekusi order yang sesungguhnya.

- Pengujian tanpa deskripsi lingkungan tidak dapat diverifikasi. Instrumen, periode, sumber dan mutu data, model tick, model biaya, pembagian menjadi kelompok in-sample dan out-of-sample — tanpanya, hasil hanyalah angka tanpa satuan
- Backtest tanpa biaya menggambarkan sistem yang berbeda dari sistem yang hendak Anda perdagangkan. Dalam perhitungan di bawah, rangkaian transaksi yang sama menghasilkan +12.000 USD tanpa biaya dan tepat 0 USD setelah spread, komisi, serta slippage ditambahkan
- Optimasi adalah pencarian, bukan validasi. Susunan parameter terbaik dari seribu percobaan adalah yang terbaik pada riwayat tersebut — jumlah varian yang diperiksa merupakan bagian dari hasil, sama seperti hasil itu sendiri
- Walk-forward hanya bekerja selama kelompok out-of-sample tetap tidak disentuh. Jika Anda mengubah strategi setelah melihat hasil out-of-sample, rentang data itu tidak lagi merupakan out-of-sample bagi setiap iterasi berikutnya
- Look-ahead menyusup melalui pintu belakang: melalui entri pada harga penutupan candle yang menghasilkan sinyal, indikator yang dihitung ulang ke masa lalu, atau data makro dalam versi setelah revisi
- Demo dan paper trading bukan pengujian eksekusi. Keduanya memeriksa mekanisme dan kepatuhan terhadap aturan. Seberapa besar biaya eksekusi yang direproduksi server demo ditentukan oleh broker dan harus dibaca dalam dokumentasi akun tersebut; sisanya hanya dapat diukur pada akun dengan modal nyata — dan pengukuran itu berlaku untuk ukuran posisi yang memang diukur
- Forward test yang positif bukan jaminan. Hasilnya mengonfirmasi bahwa aturan berhasil melewati rentang data yang belum pernah dilihat. Hasil itu tidak mengonfirmasi bahwa aturan akan bertahan pada rezim pasar berikutnya
1. Demo, paper trading, backtest, forward test, replay, live — enam pertanyaan berbeda
Sebagian besar kesalahpahaman tentang pengujian berasal dari satu penyederhanaan pikiran: “Saya sudah memeriksa strateginya.” Diperiksa di mana, dan dari segi apa? Lingkungan tersebut bukan tahapan berurutan pada satu skala akurasi. Masing-masing mengukur hal yang berbeda.
Akun demo adalah akun di server broker yang didanai dengan uang virtual. Kuotasi biasanya berasal dari feed yang sama dengan akun live, tetapi eksekusinya disimulasikan di sisi server demo menurut aturan yang disederhanakan. Brokerlah, bukan platform, yang menentukan aturan tersebut, dan aturannya dapat berbeda antarjenis akun — karena itu setiap pernyataan tentang apa yang “tidak direproduksi demo” hanya berlaku setelah dokumentasi akun bersangkutan diperiksa, bukan sebagai aturan universal (butir 16 dalam bibliografi menunjukkan seperti apa deskripsi tersebut pada salah satu penyedia). Model eksekusi dan cara broker menangani arus order dibahas dalam bagian tentang memilih broker.
Paper trading berarti mencatat keputusan tanpa mengirimkan order untuk eksekusi nyata kepada broker. Harga pengisian ditetapkan oleh lembar kerja, skrip, atau emulator yang terpasang pada lingkungan grafik. Perbedaan ini sering dilewatkan, padahal penting: jika order virtual diisi oleh emulator, aturan emulatorlah — bukan pasar — yang menentukan harga entri. Paper trading menguji logika keputusan. Ini bukan pengujian mutu eksekusi, kecuali Anda mendeskripsikan dan membenarkan aturan emulator secara terpisah.
Backtest memutar kembali aturan pada data historis. Ia menjawab pertanyaan bersyarat: apa yang akan dihasilkan jika data, model tick, dan model biaya sesuai dengan kenyataan. Mutu jawabannya tidak melampaui mutu asumsi yang digunakan.
Forward test memeriksa aturan di luar periode penyesuaian. Ini dapat berupa rentang riwayat yang dicadangkan dan tidak pernah dilihat pengoptimal, atau pengamatan waktu nyata — bar demi bar, tanpa kesempatan kembali ke belakang.
Market replay memutar kembali riwayat dengan masa depan tersembunyi dan memungkinkan Anda mengambil keputusan secara manual. Ini merupakan perangkat latihan untuk strategi diskresioner, bukan padanan akun dengan modal nyata.
Akun live merupakan satu-satunya lingkungan tempat Anda mengukur biaya eksekusi sesungguhnya: slippage, pelebaran spread, penolakan, dan pengisian parsial.
| Lingkungan | Pertanyaan yang dijawab | Apa yang tidak dipastikan | Siapa yang menetapkan kondisi |
|---|---|---|---|
| Akun demo | Apakah Anda mampu mengoperasikan platform dan apakah sistem otomatis tidak macet selama operasi normal | Biaya eksekusi dan perilaku saat likuiditas rendah | Broker (server demo) |
| Paper trading | Apakah Anda mampu menerapkan aturan sendiri secara konsisten | Harga pengisian — ditetapkan oleh emulator atau konvensi Anda sendiri | Anda atau emulator perangkat |
| Backtest | Apa yang akan dihasilkan pada riwayat tertentu berdasarkan asumsi yang dinyatakan secara eksplisit | Masa depan, biaya eksekusi, dan apakah asumsinya akurat | Pembuat pengujian (data, model tick, biaya) |
| Forward test | Apakah aturan bertahan pada rentang data yang belum pernah dilihat pengoptimal | Rezim pasar berikutnya; ini tidak memperbaiki masalah sampel kecil | Pembagian data atau berjalannya waktu |
| Market replay | Apakah Anda mengenali situasi secara berurutan tanpa melihat ke sebelah kanan | Biaya eksekusi dan tekanan dari kerugian nyata | Pembuat sesi replay |
| Akun live (eksposur minimal) | Berapa biaya eksekusi sesungguhnya pada ukuran posisi tersebut | Biaya eksekusi pada ukuran yang jauh lebih besar | Broker dan kondisi pasar |
2. Apa yang tidak diukur demo dan paper trading
Akun demo kadang digambarkan sebagai “live tanpa uang”. Pernyataan itu keliru dalam beberapa hal konkret yang dapat diperiksa. Tabel berikut memuat unsur yang pada server demo mungkin tidak ada atau dimodelkan secara sederhana — dan masing-masing langsung memengaruhi hasil saat Anda beralih ke modal nyata. Kolom “Pada demo” menggambarkan penyederhanaan yang lazim, bukan aturan yang berlaku bagi setiap broker: penyedia akun menetapkan cakupan simulasi, yang bahkan dapat berbeda antarjenis akun di broker yang sama.
| Unsur | Pada demo | Pada akun live |
|---|---|---|
| Slippage | Di banyak broker nol atau dimodelkan dengan nilai tetap; cakupan simulasi ditetapkan penyedia akun | Berubah-ubah, bergantung pada waktu dan likuiditas; paling besar di sekitar rilis data dan pembukaan sesi |
| Pelebaran spread | Sering berupa spread tetap atau hampir tidak berubah | Spread melebar saat likuiditas rendah dan di sekitar peristiwa; profil itu cenderung diperhalus pada demo |
| Penolakan dan requote | Jarang atau tidak ada | Terjadi bergantung pada model eksekusi dan jenis akun — karakteristik broker, bukan platform |
| Pengisian parsial | Biasanya terisi penuh | Mungkin terjadi pada ukuran lebih besar dan likuiditas lebih buruk; pada posisi mikro biasanya tidak relevan |
| Likuiditas yang tersedia | Server demo biasanya tidak menolak; apakah penolakan dimungkinkan bergantung pada aturan penyedia tersebut | Terbatas; pada pasangan eksotis dan di luar sesi dapat hilang pada level harga Anda |
| Kesenjangan harga (gap) | Kadang direproduksi berbeda dari akun live | Stop loss di dalam gap bekerja seperti order pasar: dieksekusi pada harga pertama yang tersedia, bukan pada level stop |
| Taruhan psikologis | Nol — kerugian tidak menimbulkan konsekuensi | Nyata; memengaruhi apakah Anda benar-benar menjalankan rencana |
Baris terakhir dapat mengubah rencana yang masuk akal menjadi improvisasi, tetapi bukan pokok artikel ini. Mekanisme perilaku di bawah tekanan dibahas dalam artikel tentang proses dan hasil. Di sini yang kami bahas adalah bagian yang dapat diukur: biaya eksekusi.

Cara mengukur slippage, bukan menaksirnya. Untuk setiap transaksi, catat harga pada saat sinyal, harga yang diminta, harga eksekusi, spread saat klik, spread saat pengisian, latensi, sesi, informasi peristiwa makro, serta waktu server broker. Setelah sampel terkumpul, hitung median dan ekor distribusinya, bukan hanya rata-rata — rata-rata yang mencakup beberapa pengisian ekstrem dapat menyesatkan ke kedua arah. Hanya angka semacam itu yang layak dimasukkan ke model biaya backtest.
Kasus acuan: 3 Januari 2019, pergerakan tajam yen. Di tengah likuiditas tipis sesi Asia, pasangan yen mengalami lonjakan dalam hitungan menit; kejadian tersebut dijelaskan dalam kotak tersendiri pada laporan bank sentral Australia (butir 12 dalam bibliografi, isi diakses 22.08.2026). Laporan itu menyatakan bahwa “Pada pukul 9:36 AEDT, dalam sekitar 30 detik, tanpa berita material apa pun, yen menguat 3 persen terhadap dolar AS”, dan selisih bid-ask melebar “dari sekitar 2 pip menjadi 100–300 pip”. Dua kalimat dari kotak yang sama relevan bagi artikel ini: bahwa “likuiditas pasar rendah secara musiman pada waktu dan periode tahun tersebut”, serta bahwa broker ritel secara otomatis menutup posisi melalui order stop loss ketika kerugian melebihi level tertentu — artinya, dalam rentang itu justru mekanisme inilah yang terpicu, sementara tester hanya mereproduksi biayanya sejauh yang diizinkan mode pemodelan terpilih; pada mode sederhana, biaya itu sama sekali tidak direproduksi karena order diisi pada harga yang tercantum di dalamnya (lihat subbagian pengisian pending order). Besarnya pergerakan dan harga pengisian berbeda antarpenyedia data dan broker, sehingga tidak ada satu angka pip yang “benar” di sini dan kami tidak akan memberikannya. Bagi pengujian strategi, kesimpulannya terbatas dan konkret: model biaya dengan asumsi spread tetap dan slippage nol sama sekali tidak mereproduksi rentang semacam itu, dan strategi dengan stop ketat paling sensitif terhadapnya. Jalannya peristiwa dan latar pasarnya dibahas dalam bagian tentang sesi dan jam perdagangan.
3. Unsur hasil backtest: data, model tick, model biaya
Hasil tester merupakan fungsi dari tiga hal yang dapat diputuskan pengguna tanpa menyadarinya: data yang dimuat, cara mereproduksi pergerakan di dalam candle, dan apa yang ditambahkan pada setiap transaksi.
Model pembangkitan tick
Dokumentasi MetaTrader 5 mencantumkan lima mode tester: Setiap tick, Setiap tick berdasarkan tick nyata, OHLC 1 menit, Hanya harga pembukaan dan Perhitungan matematika. Perbedaan mode pertama dan kedua paling penting di sini. Pada mode Setiap tick, tick dibangkitkan secara algoritmis dari data menit. Pada mode Setiap tick berdasarkan tick nyata, pengujian menggunakan tick yang dikumpulkan broker — yaitu rekaman satu arus tertentu, bukan rekonstruksi pasar secara menyeluruh. OHLC 1 menit mengemulasikan empat harga per menit, Hanya harga pembukaan menjalankan logika pada pembukaan bar, dan Perhitungan matematika sama sekali tidak memuat riwayat dan berfungsi mengoptimalkan fungsi matematika. Nama dan urutan mode dikonfirmasi oleh halaman pengaturan tester (butir 2 dalam bibliografi, diakses 22.08.2026). Mode tester kadang berubah bersama versi terminal, jadi periksa halaman bantuan versi Anda sebelum mengandalkannya.
Namun, memilih mode tick nyata bukan pernyataan bahwa tidak satu pun tick hasil perhitungan akan muncul dalam pengujian. Dokumentasi menjelaskan perilaku cadangan secara eksplisit: “Jika riwayat simbol memiliki bar menit tanpa data tick, tester membangkitkan tick dalam mode »Setiap tick«”; sebaliknya, “Jika riwayat simbol tidak memiliki bar menit tetapi data tick untuk menit tersebut tersedia, tick itu diabaikan” (butir 1 dalam bibliografi, diakses 22.08.2026). Dengan kata lain: ketika arsip broker memiliki celah atau inkonsistensi, sebagian pengujian direproduksi menggunakan tick model, dan laporan tidak menandai rentang tersebut secara terpisah. Halaman yang sama juga menyatakan bahwa pada tick nyata “spread dapat berubah di dalam bar menit”, sedangkan pada tick yang dibangkitkan digunakan spread tetap dalam bar terkait — jadi mode data mengubah bukan hanya lintasan harga, melainkan juga model spread.
Konsekuensi praktisnya sederhana dan tidak nyaman. Jika aturan bergantung pada urutan harga menyentuh high dan low dalam candle — dan setiap strategi dengan stop serta target aktif bersamaan bergantung padanya — maka pengujian dengan tick yang dibangkitkan dari data menit menebak urutan tersebut. Ini bukan bug program, melainkan sifat model. Pada MetaTrader 4, tester melaporkan ukuran cakupan data historis tersendiri, tetapi pergerakan di dalam candle tetap dihitung, bukan dibaca dari rekaman arus nyata. Dokumentasi menjelaskan tiga mode pemodelan — Hanya harga pembukaan, Titik kontrol dan Setiap tick — yang terakhir “menggunakan untuk pembangkitan bukan hanya data kerangka waktu lebih rendah terdekat, tetapi juga semua kerangka waktu terdekat yang tersedia”; ketika data kerangka waktu lebih rendah tidak ada, tester menggunakan pola gelombang siap pakai (butir 14 dalam bibliografi, diakses 22.08.2026). Bilah mutu pemodelan menunjukkan kerangka waktu yang benar-benar digunakan — makin rendah kerangka waktunya, makin sedikit tebakan dalam lintasan harga. Ketersediaan tick nyata dan kedalaman riwayatnya bergantung pada broker serta lamanya pengarsipan.
Cara tester mengisi pending order
Model tick menentukan harga apa saja yang akan dilihat tester. Lapisan asumsi terpisah adalah tindakan tester terhadap harga tersebut ketika ada pending order di pasar — asumsi ini sering tidak terlihat dalam pengaturan dan perlu dicari pada dokumentasi perangkat. Di dalamnya ada dua pertanyaan terpisah; perhitungan baru benar setelah keduanya dibedakan: kapan order dieksekusi, dan pada harga berapa. Dalam tester MetaTrader 5, jawaban pertanyaan kedua bergantung pada dua sumbu terpisah: jenis instrumen dan mode pemodelan data. Mencampur kedua sumbu adalah cara termudah mengambil kalimat benar dari dokumentasi lalu menerapkannya pada konteks yang tidak berlaku.
Latensi. Emulasi latensi dalam tester MetaTrader 5 mencakup penempatan order oleh sistem otomatis, bukan eksekusi selanjutnya di server: “jika EA menggunakan pending order, penundaan hanya diterapkan pada penempatan order, bukan eksekusinya (dalam kondisi nyata, eksekusi terjadi di server tanpa penundaan jaringan)” (butir 2 dalam bibliografi, diakses 22.08.2026). Jadi, pengisian order yang sudah berada di pasar tidak memperoleh penundaan jaringan dalam pengujian — dan memang tepat demikian, sebab pada kenyataannya juga tidak.
Sumbu pertama: jenis instrumen. Tidak adanya latensi bukan berarti order akan diisi pada level yang tertulis di dalamnya. Dokumentasi terlebih dahulu membedakan persoalan ini berdasarkan jenis instrumen; simbol FX/CFD OTC yang dibahas di sini merupakan instrumen nonbursa, sedangkan kontrak mata uang yang diperdagangkan di bursa termasuk kategori lain. Aturan bagi instrumen nonbursa berbunyi: “Untuk instrumen nonbursa, pemicuan semua jenis pending order serta SL/TP dilakukan berdasarkan harga Bid dan Ask. Eksekusi dilakukan pada harga pasar Bid dan Ask saat pemicuan” (butir 13 dalam bibliografi, bagian Pemicuan dan Eksekusi Order, paragraf pertama, diakses 22.08.2026). Jadi semua jenis pending order — termasuk limit order — serta stop loss dan take profit dieksekusi pada bid atau ask saat pemicuan, bukan pada level yang tercantum dalam order. Untuk limit order, selisih yang menguntungkan dari harga yang ditetapkan merupakan perbaikan harga; ini bukan izin mengisi melewati limit ke arah merugikan.
Kalimat tentang pengisian limit order tanpa slippage berlaku bagi instrumen bursa. Paragraf berikutnya pada bagian yang sama membahas saham dan kontrak bursa secara terpisah, dengan aturan berbeda: “Untuk instrumen bursa, grafik digambar dan stop order dipicu oleh harga transaksi terakhir (Last). Limit order dipicu oleh harga Bid dan Ask. Limit order dieksekusi pada harga yang ditetapkan dalam order (tanpa slippage), sementara jenis order lain dieksekusi pada harga pasar Bid dan Ask saat itu (slippage mungkin terjadi)” (butir 13, paragraf kedua pada bagian yang sama, tanggal akses sama). Kalimat tersebut kadang dikutip sebagai aturan universal tester; ini kesalahan cakupan, bukan kesalahan kutipan: “limit tanpa slippage” berlaku untuk instrumen bursa. Untuk simbol FX nonbursa, paragraf sebelumnya yang berlaku; kontrak mata uang yang diperdagangkan di bursa mengikuti aturan instrumen bursa.
Sumbu kedua: mode pemodelan. Jenis instrumen menentukan apa yang terjadi pada mode akurat — Setiap tick dan Setiap tick berdasarkan tick nyata. Mode pemodelan adalah sumbu terpisah dan pada mode sederhana menonaktifkan aturan itu sepenuhnya: “Dalam mode pengujian »Hanya harga pembukaan« dan »OHLC 1 menit«, pending order serta SL dan TP dieksekusi pada harga yang ditetapkan dalam order. Algoritme eksekusi pada harga pasar yang digunakan pada mode akurat (setiap tick dan tick nyata) tidak cocok untuk mode yang kurang akurat” (butir 13, tanggal akses sama). Penyedia juga memberikan alasan dan kesimpulannya: “Pada beberapa mode, tick antara tidak dibangkitkan, sehingga selisih harga order yang diminta dan harga saat itu (Open atau OHLC) dapat signifikan. Eksekusi order pada harga yang diminta dalam »Hanya harga pembukaan« dan »OHLC 1 menit« memberikan hasil pengujian yang lebih akurat”. Logikanya berlawanan dengan intuisi: pada mode sederhana, tester tidak memiliki sumber harga pasar setelah pemicuan, sehingga mengisi pada harga yang tertulis di order, sebab pengisian pada pembukaan bar berikutnya akan menjadi kesalahan yang lebih besar dibandingkan pengisian pada level tersebut.
Menggabungkan kedua sumbu. Untuk simbol FX nonbursa dalam tester MetaTrader 5, hal ini menghasilkan dua lingkungan eksekusi berbeda yang mudah tertukar karena laporan keduanya tampak sama:
- Mode akurat (Setiap tick, Setiap tick berdasarkan tick nyata) — setiap pending order serta SL dan TP diisi pada bid atau ask saat pemicuan. Slippage dimodelkan, tetapi hanya di dalam lintasan harga yang direproduksi tester — baik dibangkitkan dari data menit maupun diambil dari arsip tick broker
- Mode sederhana (OHLC 1 menit, Hanya harga pembukaan) — setiap pending order serta SL dan TP diisi tepat pada harga yang tertulis dalam order. Slippage hilang sepenuhnya dari perhitungan, untuk semua jenis order sekaligus
Mekanisme penyederhanaan ini berbeda pada kedua jenis order, meskipun dampaknya searah. Setelah terpicu, stop order berperilaku seperti order pasar: pada kenyataannya harga eksekusi adalah harga pertama yang tersedia setelah level ditembus, bukan level itu sendiri. Pengisian pada level — seperti yang diberikan mode sederhana — menghapus seluruh biaya lompatan dari perhitungan dan memperbesar hasil. Limit order adalah pembelian di bawah pasar atau penjualan di atasnya: pengisian pada level yang tertulis mengasumsikan likuiditas cukup bagi seluruh posisi tepat pada level itu, padahal harga menyentuh suatu level tidak menjamin likuiditas cukup untuk pengisian. Di bursa, posisi antrean juga penting; untuk FX/CFD OTC, aturan eksekusi penyedia yang berlaku. Tester tidak memodelkan antrean maupun volume yang tersedia pada level tersebut: ia hanya mengetahui lintasan harga. Jadi kedua penyederhanaan menguntungkan hasil, tetapi baru masuk perhitungan bila mode terpilih mengizinkannya.
Kondisi tersendiri lainnya adalah sisi pasar: level disentuh oleh rangkaian harga yang sesuai dengan sisi order, sehingga pembelian bereaksi terhadap ask dan penjualan terhadap bid. Pengujian pada satu rangkaian, biasanya bid, mereproduksi sisi lain dengan menambahkan spread, dan dokumentasi MQL5 menyatakan bahwa “Selama pengujian, spread tidak dimodelkan, melainkan diambil dari data historis” (butir 3 dalam bibliografi, diakses 22.08.2026) — jadi saat pemicuan bergantung pada spread yang terekam dalam data, bukan spread yang akan terjadi di akun Anda. Kerapatan lintasan harga juga penting: halaman tentang tick memperingatkan bahwa “Level Stop dan pending order dapat terpicu pada harga berbeda dari yang ditentukan (terutama saat menguji pada kerangka waktu lebih tinggi)” (butir 1 dalam bibliografi).
Artinya bagi pembacaan laporan. Laporan tester tidak menyebutkan lingkungan mana dari keduanya yang menghasilkannya — Anda harus membacanya dari pengaturan pengujian. Aturan yang sama dijalankan pada mode akurat dan sederhana akan menghasilkan perhitungan berbeda, bukan karena presisi komputasi, melainkan aturan pengisian berbeda. Strategi dengan rata-rata transaksi kecil dan stop ketat paling sensitif, sebab biaya lompatan yang dihapus merupakan bagian besar hasilnya. Karena itu, aturan pengisian pending order harus dicantumkan dalam deskripsi lingkungan pengujian setara dengan model tick dan biaya; laporan yang tidak mengungkapkannya perlu dicocokkan dengan dokumentasi perangkat. Uji kontrolnya murah: ulangi pengujian dalam mode akurat, lalu sekali lagi dengan harga pengisian diperburuk sebesar kira-kira slippage rata-rata, dan lihat seberapa banyak hasil yang tersisa.
Model biaya
Empat unsur dengan satuan berbeda ditambahkan pada setiap transaksi dan tidak boleh dicampur:
- Spread — dalam pip atau point. Pertanyaan utamanya: apakah pengujian menggunakan spread tetap, spread yang terekam dalam data, atau spread saat pengujian dimulai. Tiga jawaban berbeda, tiga hasil berbeda — pada tester MetaTrader 5, dokumentasi yang dikutip di atas sudah menjawabnya; pada perangkat lain, jawabannya harus dicari dalam deskripsi tester tersebut
- Komisi — dalam mata uang akun, biasanya per lot dan per sisi. Untuk membandingkannya dengan spread, Anda harus mengonversinya menjadi pip menggunakan nilai pip instrumen dan ukuran posisi bersangkutan
- Poin swap — dibebankan untuk posisi yang melewati pergantian hari penyelesaian, dengan beban tiga kali lipat pada hari tertentu dalam seminggu. Tidak relevan bagi strategi intraday, tetapi pada strategi posisi kadang lebih besar daripada spread
- Slippage — dalam pip atau point, sebagai selisih harga yang diminta dan harga eksekusi. Dalam tester, unsur ini hanya masuk jika aturan pengisian mengizinkannya: pada tester MetaTrader 5 untuk pasangan mata uang dalam mode akurat, berlaku bagi semua jenis pending order beserta SL dan TP, sedangkan pada mode OHLC 1 menit dan Hanya harga pembukaan sama sekali tidak masuk karena pengisian dilakukan pada harga yang tertulis dalam order (butir 13 dalam bibliografi)
Latensi sengaja tidak ada dalam daftar, meski kadang ditambahkan sebagai unsur kelima. Latensi diukur dalam milidetik, bukan pip, dan bukan tambahan pada transaksi — latensi adalah parameter model eksekusi, yakni memengaruhi harga mana yang digunakan, bukan berapa banyak yang dikurangkan. Tester MetaTrader 5 memungkinkan emulasinya dalam mode Tanpa penundaan dan Penundaan acak serta penundaan tetap; sebagaimana ditunjukkan subbagian pengisian pending order, emulasi mencakup penempatan order oleh sistem otomatis, bukan eksekusi order yang sudah berada di pasar (butir 2 dalam bibliografi). Mencampur kedua besaran ini dalam satu baris perhitungan biaya merupakan kesalahan satuan, bukan pembulatan.
Dua kekeliruan yang tampak serupa perlu dibedakan. Latensi jaringan yang diukur melalui perintah ping ke alamat server bukan waktu yang dibutuhkan untuk mengeksekusi order — di antaranya terdapat validasi di sisi broker, antrean, dan momen eksekusi itu sendiri. Infrastruktur, server virtual, serta menjaga sistem otomatis tetap berjalan dibahas lebih lanjut dalam artikel tentang otomatisasi, EA, dan VPS; di sini yang penting hanyalah bahwa latensi harus diasumsikan secara eksplisit dalam pengujian, bukan diam-diam dianggap nol.
Mutu data itu sendiri
Sebelum hasil memiliki makna, data harus diperiksa: celah dan diskontinuitas rangkaian, duplikat, pencilan, kronologi, zona waktu dan pergeseran daylight saving, konvensi stempel waktu candle (pembukaan atau penutupan), serta apakah rangkaian dibentuk dari bid, ask, atau harga tengah. Butir terakhir sering disepelekan, padahal menentukan apakah level pernah disentuh: posisi short ditutup pada ask, sehingga candle berbasis bid mungkin tidak pernah menunjukkan harga yang memicu stop.
4. Backtest sempurna tetapi tidak realistis — anatomi kurva yang indah
Hasil tester yang indah biasanya bukan berasal dari satu penipuan besar, melainkan empat kelonggaran kecil yang masing-masing tampak tidak berbahaya. Berikut setiap kelonggaran beserta cara mendeteksinya.
Kelonggaran pertama: entri pada harga yang belum mungkin diketahui
Aturan berbunyi “masuk ketika candle ditutup di atas rata-rata”, tetapi pengujian masuk pada harga penutupan candle yang sama. Sinyal yang memerlukan penutupan final baru dapat menghasilkan order setelah penutupan dikonfirmasi, pada harga yang tersedia saat itu. Dalam model lazim yang menghitung sekali saat penutupan, ini berarti tick pertama bar berikutnya. Harga pengisian mungkin kebetulan sama dengan penutupan sebelumnya, tetapi ketersediaannya tidak boleh diasumsikan tanpa menyebutkan model. Memperbaiki asumsi ini dapat mengubah hasil secara berarti.
Uji sensitivitas, bukan vonis: geser entri satu candle lalu jalankan lagi. Jika hasilnya lenyap, yang Anda ketahui hanyalah sistem tidak tahan terhadap pergeseran entri satu periode. Kebocoran dari masa depan merupakan salah satu kemungkinan penjelasan, bukan satu-satunya: sinyal mungkin sekadar berumur pendek atau sensitif terhadap harga eksekusi. Penentunya adalah audit ketersediaan setiap variabel pada saat keputusan — prosedur lengkap pengujian tersebut beserta apa yang tidak dibuktikannya diberikan dalam kotak pada akhir bagian tentang look-ahead.
Kelonggaran kedua: tanpa biaya
Pengujian tanpa spread, komisi, dan slippage bukan versi sederhana sistem itu, melainkan sistem berbeda — dengan nilai harapan serta ambang profitabilitas berbeda. Besar pergeserannya dapat dihitung dan ditunjukkan bagian berikut.
Kelonggaran ketiga: satu susunan dari seribu percobaan
Pengoptimal menghasilkan peringkat. Mengambil baris teratas lalu menyajikannya sebagai hasil strategi menghilangkan informasi jumlah varian yang diperiksa. Dengan cukup banyak percobaan, hasil terbaik akan tinggi hanya karena statistik pencarian, termasuk untuk aturan yang tidak masuk akal — pembahasan formal fenomena ini ada pada butir 8 dalam bibliografi. Jumlah varian yang diuji harus masuk deskripsi hasil sebagaimana periode dan biaya.
Kelonggaran keempat: evaluasi pada data yang dipakai menyetel
Jika parameter dipilih pada periode yang sama dengan periode pelaporan hasil, sama sekali tidak ada validasi — yang ada hanya deskripsi kecocokan. Ini sekaligus kesalahan paling mudah dideteksi: cukup tanyakan rentang data mana untuk penyetelan dan mana yang khusus untuk evaluasi.
Empat kelonggaran dalam satu perhitungan — berapa banyak kurva indah yang tersisa
Mendaftar empat kelonggaran belum menunjukkan skalanya. Perhitungan berikut menunjukkannya dan disusun agar setiap langkah dapat diperiksa dengan satu operasi.
Lingkungannya sama dengan perhitungan pada bagian Uji sensitivitas biaya: EUR/USD, posisi 1,00 lot standar, nilai pip 10,00 USD, mata uang akun USD.
Data: kuotasi menit satu broker selama 36 bulan; 24 bulan sebagai in-sample dan 12 bulan sebagai out-of-sample, dengan batas ditetapkan sebelum penyetelan.
Jumlah transaksi pada in-sample: 1.000; pada out-of-sample sekitar 500 karena pada frekuensi perdagangan yang sama periode validasinya setengah panjangnya. Kolom dolar menormalisasi setiap baris menjadi 1.000 transaksi agar dapat dibandingkan — jadi pada baris keempat nilainya merupakan hasil normalisasi, bukan jumlah yang terjadi pada out-of-sample itu sendiri. Jumlah varian parameter yang diperiksa: 1.200.
Biaya satu putaran penuh pada varian contoh: spread 0,30 + komisi 0,70 + slippage 0,20 = 1,20 pip. Ini bukan susunan terukur ataupun tipikal pasar — nilainya dipilih agar perhitungan dapat diperiksa di kepala.
Poin swap: nol karena contoh secara eksplisit mengasumsikan strategi intraday yang menutup setiap posisi sebelum pergantian hari penyelesaian. Pada strategi yang melewati rollover, baris ini bukan lagi nol dan harus ditambahkan terpisah.
Tidak satu pun angka ini berasal dari tester yang dijalankan. Ini konstruksi untuk menunjukkan arah dan orde besaran masing-masing dari empat kelonggaran — dapat diperiksa dengan kalkulator, tetapi bukan pengganti pengujian sendiri.
| Langkah | Apa yang dihapus | Hasil (pip/transaksi) | 1.000 transaksi (USD, 1 lot) |
|---|---|---|---|
| 0. Laporan pengoptimal | tidak ada — entri pada penutupan candle sinyal, biaya nol, peringkat teratas, evaluasi pada periode penyetelan | +2,60 | +26.000 |
| 1. Entri yang benar-benar dapat dieksekusi | look-ahead: entri digeser ke pembukaan candle berikutnya | +1,20 | +12.000 |
| 2. Biaya ditambahkan | asumsi spread, komisi, dan slippage nol | 0,00 | 0 |
| 3. Tanpa hak istimewa peringkat teratas | median 1.200 varian menggantikan yang terbaik, periode dan biaya sama | −0,45 | −4.500 |
| 4. Evaluasi di luar periode penyetelan | susunan parameter beku yang sama pada data out-of-sample | −0,30 | −3.000 |
Cara memeriksa setiap baris. Kolom dolar adalah hasil dalam pip dikalikan 10,00 USD dan 1.000 transaksi. Langkah 0, 1, dan 2 merupakan varian parameter yang sama, dengan satu asumsi dihapus tiap langkah, sehingga pengurangannya berjalan vertikal: 2,60 − 1,40 = 1,20 dan 1,20 − 1,20 = 0,00. Langkah 3 dan 4 bukan pengurangan lanjutan, melainkan jawaban atas dua pertanyaan berbeda terhadap hasil yang sama — karena itu dihitung terpisah, bukan ditambahkan ke langkah 2.
Langkah 1 mengurangi 1,40 pip, yakni bagian pergerakan candle sinyal yang diklaim aturan dengan masuk pada harga yang baru diketahui saat penutupan. Tidak kebetulan bahwa setelah koreksi tersisa tepat 1,20 pip bruto: sistem inilah yang sensitivitas biayanya diuraikan bagian berikut. Langkah 2 menunjukkan akibat sensitivitas itu — setelah biaya putaran penuh 1,20 pip ditambahkan, hasil menjadi nol hingga sen terakhir.
Langkah 3 menunjukkan jarak hasil terpilih dengan median varian yang diuji. Puncak peringkat 1.200 varian merupakan nilai tertinggi dari 1.200 nilai; keunggulannya atas median — di sini 0,45 pip per transaksi — mengilustrasikan seleksi, tetapi tidak mengukur overfitting dengan sendirinya. Median negatif di seluruh peringkat juga tidak membuktikan bahwa titik terpilih merupakan lonjakan terisolasi: nilai lingkungan sekitarnya dan data independen. Langkah 4 mengevaluasi susunan beku yang sama pada 12 bulan yang belum dilihat pengoptimal, menghasilkan −0,30 pip per transaksi.
Dalam perhitungan hipotetis ini, menghapus tiga dari empat kelonggaran mengubah +26.000 USD menjadi −3.000 USD pada normalisasi 1.000 transaksi yang sama, tanpa mengubah satu pun aturan strategi. Kelonggaran keempat — hak istimewa menampilkan puncak peringkat — tetap dipertahankan pada baris keempat karena susunan parameter beku yang sama bekerja pada data out-of-sample; selisihnya dari median ditampilkan terpisah pada baris ketiga, yang menjawab pertanyaan berbeda. Yang berubah hanyalah asumsi kapan boleh masuk, berapa biaya transaksi, varian mana yang boleh ditampilkan, dan data mana yang boleh digunakan untuk evaluasi.
5. Uji sensitivitas biaya — perhitungan langkah demi langkah
Di sinilah sebagian besar strategi lenyap. Perhitungan berikut bukan hasil pengujian yang dijalankan — melainkan konstruksi berdasarkan asumsi eksplisit yang dapat diperiksa dengan kalkulator. Justru itu membuatnya cocok untuk menunjukkan mekanisme: asal setiap angka dapat dilacak.
Instrumen: EUR/USD, 1 pip = 0,0001 harga. Mata uang akun: USD.
Ukuran posisi: 1,00 lot standar, yaitu nosional 100.000 EUR. Nilai pip = 100.000 × 0,0001 = 10,00 USD (untuk EUR/USD mata uang kuotasinya USD, sehingga nilai pip tetap dalam mata uang akun).
Distribusi hasil bruto sebelum biaya: 1.000 transaksi, terdiri dari 600 untung sebesar +8,00 pip dan 400 rugi sebesar −9,00 pip.
Total laba bruto: 600 × 8,00 − 400 × 9,00 = 4.800 − 3.600 = 1.200 pip, yaitu 1,20 pip per transaksi.
Profit factor bruto = 4.800 / 3.600 = 1,33 (jumlah laba bruto dibagi nilai absolut jumlah kerugian bruto).
Biaya dihitung untuk satu putaran penuh — entri dan keluar sekaligus — dan ditambahkan pada setiap transaksi.
Konversi komisi ke pip: 3,50 USD per lot per sisi menghasilkan 7,00 USD per putaran penuh, yaitu 7,00 / 10,00 = 0,70 pip. Tarif komisi bergantung pada broker dan jenis akun — di sini merupakan nilai asumsi, bukan hasil pengukuran.
Poin swap: nol, dan itu asumsi, bukan pengukuran — contoh ini membahas strategi intraday yang posisinya tidak melewati pergantian hari penyelesaian. Jika melewatinya, baris terpisah harus ditambahkan ke kolom biaya; dengan beban tiga kali lipat pada hari tertentu dalam seminggu, nilainya dapat melampaui spread.
Tidak satu pun angka tabel ini berasal dari tester yang dijalankan atau pengukuran pada akun. Semuanya ilustratif dan hanya menunjukkan betapa cepat biaya menghabiskan keunggulan kecil per transaksi.
| Model biaya | Spread (pip) | Komisi (pip) | Slippage (pip) | Total biaya (pip) | Hasil bersih (pip/transaksi) | Profit factor bersih | 1.000 transaksi (USD, 1 lot) |
|---|---|---|---|---|---|---|---|
| Tanpa biaya | 0,00 | 0,00 | 0,00 | 0,00 | +1,20 | 1,33 | +12.000 |
| Spread saja | 0,30 | 0,00 | 0,00 | 0,30 | +0,90 | 1,24 | +9.000 |
| Spread dan komisi | 0,30 | 0,70 | 0,00 | 1,00 | +0,20 | 1,05 | +2.000 |
| Spread, komisi, slippage | 0,30 | 0,70 | 0,20 | 1,20 | 0,00 | 1,00 | 0 |
| Kondisi lebih buruk daripada asumsi | 0,60 | 0,70 | 0,50 | 1,80 | −0,60 | 0,86 | −6.000 |
Cara memeriksa setiap baris. Kolom “total biaya” adalah jumlah tiga kolom di sebelah kirinya. Kolom “hasil bersih” adalah 1,20 pip dikurangi total biaya. Kolom dolar adalah hasil bersih dikalikan 10,00 USD dan 1.000 transaksi. Profit factor bersih dihitung dari distribusi yang sama setelah biaya ditambahkan pada setiap transaksi — misalnya pada biaya 1,20 pip, laba per transaksi turun dari 8,00 menjadi 6,80 pip dan kerugian naik dari 9,00 menjadi 10,20 pip, menghasilkan laba 600 × 6,80 = 4.080 pip dan kerugian 400 × 10,20 = 4.080 pip, yaitu profit factor tepat 1,00. Jumlah seluruh biaya pada baris itu adalah 1.000 × 1,20 = 1.200 pip, sama dengan seluruh laba bruto — karena itulah hasil menjadi nol hingga sen terakhir.
Dua angka dari perhitungan ini patut diingat. Pertama: selisih baris ketiga dan keempat hanya slippage 0,20 pip, tetapi 2.000 USD pada hasil akhir. Kedua: antara pengujian tanpa biaya dan pengujian dengan biaya sebesar asumsi contoh ini, perbedaannya bukan koreksi kecil — melainkan perbedaan sistem yang untung dan yang tidak. Apakah 1,20 pip realistis bagi strategi Anda hanya dapat ditentukan melalui pengukuran pada akun sendiri; di sini angka itu dipilih untuk perhitungan, bukan dibaca dari pasar. Makin kecil hasil bruto rata-rata per transaksi dan makin tinggi frekuensinya, makin tajam transisi tersebut. Untuk strategi posisi dengan hasil rata-rata beberapa puluh pip, perubahan biaya yang sama bersifat marginal — karena itulah sensitivitas biaya harus dihitung bagi strategi sendiri, bukan diambil dari contoh orang lain.
6. Look-ahead dan kebocoran data — kebocoran dari masa depan
Look-ahead bias adalah penggunaan informasi yang belum tersedia pada saat keputusan dibuat. Kebocoran data merupakan konsep lebih luas: semua cara pengetahuan masa depan merembes ke proses penyusunan atau evaluasi aturan. Keduanya berbahaya karena tampak bukan sebagai kesalahan, melainkan hasil yang baik.
Tempat munculnya kebocoran:
- Entri pada harga penutupan candle sinyal. Dijelaskan pada bagian empat. Perbaikannya: entri paling cepat pada pembukaan candle berikutnya, atau sinyal yang dihitung hanya dari data yang sudah ditutup
- Indikator yang dihitung ulang ke masa lalu. Dokumentasi Pine Script mendefinisikan repainting sebagai kondisi ketika perilaku skrip membuat “perhitungan atau gambar historis dibandingkan waktu nyata” berperilaku berbeda (butir 4 dalam bibliografi, diakses 22.08.2026). Tidak setiap perilaku demikian merupakan penipuan, tetapi semuanya harus dijelaskan sebelum hasil dianggap kredibel. Mekanisme alert serta perbedaan riwayat dan waktu nyata dibahas lebih lanjut dalam artikel tentang TradingView
- Indikator terpusat. Setiap konstruksi yang menggunakan observasi dari t+k untuk nilai pada titik t tidak berguna untuk perdagangan, meskipun tampak sangat baik pada grafik historis
- Data makro setelah revisi. Angka indikator dalam versi yang direvisi bertahun-tahun kemudian bukan angka yang diketahui saat publikasi. Jika aturan menggunakan data makro, ia harus menggunakan versi data yang tersedia pada saat keputusan, termasuk revisi yang sudah dirilis saat itu, serta waktu publikasi yang sebenarnya. Interpretasi rilis dibahas dalam artikel tentang perdagangan di sekitar rilis data
- Memilih instrumen dengan pengetahuan masa depan. Menguji hanya instrumen yang bertahan hingga hari ini atau diketahui naik memasukkan seleksi berdasarkan masa depan. Pada mata uang, ini terutama menyangkut pasangan eksotis dan periode perubahan rezim nilai tukar
- Menyiapkan data sebelum membagi sampel. Normalisasi, penskalaan, atau pemilihan fitur yang dihitung pada seluruh kumpulan membawa informasi dari bagian out-of-sample ke in-sample. Pembagian in-sample dan out-of-sample harus menjadi operasi pertama, bukan terakhir
Asumsi. Aturan dan parameter sama, instrumen, periode, mode pembangkitan tick, serta model biaya sama seperti pengujian dasar. Hanya satu hal berubah: waktu entri. Catat versi kode, versi platform, dan pengenal kedua laporan; tanpa itu, perbandingan tidak dapat direproduksi.
Prosedur. Tunda seluruh sinyal satu periode keputusan penuh lalu jalankan lagi tanpa mengubah apa pun yang lain. Ulangi dengan penundaan dua periode — satu titik tidak menunjukkan bentuk hubungannya.
Hasil pengamatan. Yang diinterpretasikan adalah perbandingan tiga angka: hasil per transaksi tanpa penundaan, setelah satu periode, dan setelah dua periode. Tidak ada nilai spesifik di sini karena tidak ada pengujian yang dijalankan untuk artikel ini — isi ketiga kolom itu dengan angka dari laporan Anda sendiri.
Keterbatasan. Hilangnya hasil setelah penundaan tidak membuktikan kebocoran dari masa depan. Gambaran yang sama muncul pada sinyal berumur pendek yang keunggulannya habis dalam hitungan menit serta sinyal sensitif harga eksekusi, yang perbedaan satu candlenya setara seluruh keunggulan entri yang diharapkan. Pengujian ini membedakan sistem yang tahan terhadap waktu entri dari yang tidak, dan hanya itulah yang dapat dikatakan.
Apa yang benar-benar menentukannya. Kebocoran disingkirkan melalui audit ketersediaan: untuk setiap variabel keputusan, catat saat nilainya diketahui lalu bandingkan dengan saat keputusan dibuat. Variabel dengan stempel waktu setelah keputusan adalah kebocoran, apa pun hasil uji penundaan — sebaliknya, audit tanpa temuan menuntaskan persoalan meskipun hasil turun setelah ditunda.
7. In-sample, out-of-sample, dan walk-forward
Prinsipnya satu kalimat dan tanpa kompromi: data untuk penyetelan tidak boleh sekaligus menjadi validasi independen. Seluruh konsekuensi lain mengikuti prinsip itu.
In-sample (IS) adalah rentang riwayat tempat Anda boleh memilih parameter, menguji varian, dan mengubah aturan. Out-of-sample (OOS) adalah rentang yang tidak Anda lihat selama pekerjaan tersebut. Keduanya harus dipisahkan secara waktu — pengacakan observasi seluruh periode bukan pembagian IS/OOS, sebab deret waktu memiliki memori dan pengacakan membawa informasi ke kedua arah.
Konsekuensi paling penting pembagian ini: out-of-sample kehilangan independensi ketika hasilnya memengaruhi perubahan berikutnya. Jika Anda melihat hasil OOS, menilainya lemah, lalu mengubah strategi, rentang data itu bukan lagi OOS bagi semua yang dilakukan setelahnya. Anda masih boleh menggunakannya — sebagai bagian in-sample, bukan bukti independen. Tidak ada data tentang seberapa sering mekanisme ini merusak validasi dalam praktik, dan tidak perlu berpura-pura sebaliknya — dampaknya sudah jelas: periode OOS yang dipakai mengubah parameter bukan lagi bukti independen bagi model hasil revisi.
Tester MetaTrader 5 menyediakan pembagian ini. Pengaturan Forward menerima nilai Tidak, 1/2, 1/3, 1/4 dan Kustom, dan yang dicadangkan selalu bagian kedua yang lebih akhir dari periode (butir 2 dalam bibliografi). Ini memudahkan karena mengurangi risiko mengintip OOS tanpa sengaja, tetapi tidak menggeser jendela otomatis — walk-forward banyak putaran harus dirakit manual atau dengan perangkat eksternal. Status dokumentasi diperiksa pada 22 Agustus 2026.
Walk-forward: jendela yang bergerak
Walk-forward mengulang prosedur yang sama pada rentang riwayat berurutan yang digeser. Intinya, alih-alih satu putusan, Anda memperoleh rangkaian putusan; gabungan rentang validasinya membentuk satu rangkaian yang belum pernah dilihat pengoptimal secara keseluruhan.
- Tetapkan panjang jendela sebelum pengujian pertama — misalnya in-sample 12 bulan dan out-of-sample 3 bulan. Memilih panjangnya setelah melihat hasil merupakan bentuk penyetelan lainnya
- Optimalkan hanya pada jendela in-sample dan catat jumlah varian yang diperiksa
- Terapkan parameter terpilih pada jendela out-of-sample tanpa perubahan apa pun
- Geser kedua jendela sepanjang jendela out-of-sample lalu ulangi
- Evaluasi gabungan rentang validasi, bukan hasil optimasi. Berapa yang positif, seperti apa yang terburuk, dan apakah parameter pilihan tiap putaran saling mirip
Efisiensi Walk-Forward, ukuran yang diperkenalkan Pardo (butir 7 dalam bibliografi), kadang digunakan sebagai indikator ringkas ketahanan hasil di luar in-sample:
WFE = tingkat imbal hasil OOS tahunantingkat imbal hasil IS tahunan × 100%
Agar angka itu bermakna, kedua tingkat hasil harus dihitung setelah biaya yang sama, dalam mata uang sama, dan dengan aturan ukuran posisi yang sama. Jika hasil IS nol, rasionya tidak terdefinisi; jika negatif, rasio tidak berguna untuk menggambarkan retensi keunggulan positif. Membandingkan WFE antarsistem dengan definisi imbal hasil berbeda tidak masuk akal. Peringatan lebih penting: WFE bukan gerbang biner. WFE tinggi pada dua belas transaksi OOS kurang bermakna dibanding WFE sedang pada empat ratus transaksi. Lihat bersama jumlah transaksi, distribusi hasil setiap putaran, drawdown, serta perilaku ketika biaya dinaikkan.
8. Optimasi, stabilitas parameter, dan Monte Carlo
Optimasi menjawab susunan parameter mana yang memberi hasil terbaik pada data ini. Ia tidak menjawab susunan mana yang akan baik kelak. Ini bukan nuansa bahasa — melainkan perbedaan deskripsi masa lalu dan ramalan. Tanpa catatan penerapan, artikel ini tidak dapat menyebut jumlah sistem yang gagal karena alasan tersebut. Pengoptimal memeringkat hasil pada data masukan; hasil itu tidak membuktikan kinerja masa depan.
Lonjakan dan dataran
Alih-alih hanya melihat baris terbaik, lihat lingkungan sekitarnya. Jika nilai parameter tetangga memberikan hasil serupa, Anda memiliki dataran — area tempat aturan berperilaku serupa meskipun pengaturan sedikit berubah. Jika hasil runtuh ketika parameter digeser satu langkah, Anda memiliki lonjakan, kemungkinan besar kecocokan kebetulan dengan konfigurasi data historis. Memilih titik di tengah dataran biasanya lebih masuk akal daripada puncak; pembedaan ini dan seluruh metodologi walk-forward berasal dari karya Pardo (butir 7 dalam bibliografi).
Pengujian yang sama patut dilakukan untuk parameter yang biasanya tidak dioptimalkan: jam perdagangan, jarak stop minimum, filter hari dalam seminggu. Jika hasil bergantung pada perdagangan hingga pukul 22:00 atau 23:00 waktu server, periksa alasan ekonomi filter dan stabilitas di luar periode penyetelan; perbedaan jam saja tidak membuktikan overfitting.
Jumlah varian merupakan bagian dari hasil
Saat melaporkan backtest, sebutkan jumlah kombinasi yang diperiksa bersama hasilnya. Kebiasaan ini membedakan deskripsi pengujian dari iklan. Pembahasan metodis masalah pengujian berganda dan probabilitas hasil terbaik merupakan artefak pencarian ada dalam karya Bailey, Borwein, López de Prado, dan Zhu (butir 8 dalam bibliografi); deskripsi sistematis seleksi berdasarkan hasil diberikan Aronson (butir 9).
Monte Carlo sebagai uji ketahanan, bukan ramalan
Varian sederhana dan berguna, antara lain dijelaskan Tomasini dan Jaekle (butir 10 dalam bibliografi): ambil hasil transaksi dari rentang validasi, undi ulang urutannya berulang kali, lalu hitung distribusi drawdown maksimum. Yang diperhatikan adalah ekor kanan distribusi tersebut — misalnya persentil ke-95 drawdown maksimum, yaitu nilai yang tidak dilampaui oleh 95 persen simulasi. Jika nilai itu melampaui batas drawdown dalam rencana risiko, model asumsi dan ukuran posisi gagal memenuhi kriteria risiko tersebut, meskipun rata-ratanya tampak baik.
Dua keterbatasan harus disebutkan eksplisit. Pengacakan urutan mengasumsikan transaksi independen, yang tidak benar jika strategi membuka posisi berkorelasi atau menyesuaikan ukuran berdasarkan hasil terkini. Kedua, hal yang biasanya dirumuskan terlalu luas: pengacakan mengambil hasil yang sudah terjadi, jadi tidak akan menghasilkan satu transaksi pun di luar distribusi yang diamati. Itu tidak membatasi drawdown maksimum — justru tujuan simulasinya adalah menunjukkan bahwa urutan berbeda dapat memusatkan kerugian yang ada menjadi satu rangkaian dan menghasilkan drawdown lebih besar daripada yang diamati. Jadi Monte Carlo menguji sensitivitas terhadap urutan peristiwa, bukan cakupan kemungkinan peristiwa individual. Batas drawdown dan mekanisme penghentian perdagangan dibahas dalam artikel tentang drawdown dan kill switch.
9. Forward test, demo, dan market replay — apa tepatnya yang dikonfirmasi
Forward test kadang disebut bukti pamungkas. Bukan demikian. Ini tahap validasi yang mengonfirmasi sesuatu yang sempit dan sangat spesifik.
Forward test pada rentang riwayat yang dicadangkan mengonfirmasi bahwa aturan dengan parameter tetap menghasilkan hasil tertentu pada data yang belum dilihat pengoptimal. Ia tidak mengonfirmasi biaya eksekusi atau perilaku pada rezim pasar lain.
Forward test waktu nyata pada akun demo menambahkan dua hal: memeriksa implementasi bekerja benar selama operasi terminal normal dan kemampuan Anda menerapkan aturan tanpa improvisasi. Ia tidak mengukur biaya eksekusi sejauh server demo tidak mereproduksinya — dan apa tepatnya yang direproduksi ditentukan dokumentasi broker serta jenis akun itu, bukan prinsip umum. Sebelum diperiksa, hasil demo menggambarkan simulasi dengan asumsi eksekusi yang belum diverifikasi.
Forward test pada akun bermodal nyata dengan ukuran minimal menambahkan pengukuran biaya eksekusi. Dengan catatan dari bagian dua: yang diukur adalah ukuran yang Anda perdagangkan. Keputusan menambah eksposur bukan bagian prosedur pengujian — melainkan bagian rencana manajemen risiko, itu pun hanya jika rencana tersebut mengizinkannya.
Market replay
Replay mereproduksi riwayat dengan masa depan tersembunyi: Anda menggulir bar demi bar, memutuskan, baru melihat apa yang terjadi. Untuk strategi diskresioner, ini memungkinkan banyak pengulangan tanpa menunggu waktu nyata atau menulis kode aturan. Lingkungan replay terbagi menjadi simulator khusus dengan panel order dan statistik, serta mode bawaan platform grafik — yang kini bukan sekadar menggulir grafik. TradingView kini menjelaskan mode Replay Trading terpisah tempat “Anda dapat membuka posisi serta memasang limit, stop, dan stop-limit order, seperti pada broker nyata”, dan hasil sesi dihimpun dalam tab Ikhtisar, Kinerja, Analisis transaksi, Rasio risiko/kinerja dan Daftar transaksi, dengan “Kinerja dan Daftar transaksi juga dapat diekspor untuk analisis atau pencatatan lebih lanjut” (butir 5 dalam bibliografi, diakses 22.08.2026).
Apa yang tidak diberikan replay. Ia tidak memberikan biaya eksekusi karena pengisian ditetapkan simulator menurut aturannya sendiri — aturan yang harus diketahui sebelum hasil sesi diperlakukan lebih dari sekadar latihan. Ia juga tidak memberikan tekanan kerugian nyata. Ada pula kelemahan khas: Anda mudah menipu tanpa sadar. Membatalkan keputusan terakhir, mengulangi rentang, “sekali lagi karena tadi saya melihatnya berbeda” — setiap tindakan itu mengubah pengujian menjadi cerita. Agar sesi replay menjadi data, aturannya harus tertulis sebelum mulai dan semua keputusan tercatat, termasuk yang buruk.
10. Perangkat pengujian — perbandingan berdasarkan kriteria
Tidak ada perangkat yang mencakup seluruh tahap. Tabel berikut membandingkan menurut kriteria yang benar-benar menentukan pilihan, bukan jumlah fitur.
| Perangkat | Apa yang diuji | Sumber data | Pembagian in-sample / out-of-sample | Memerlukan kode | Keterbatasan utama |
|---|---|---|---|---|---|
| MetaTrader 4 — Strategy Tester | Sistem otomatis MQL4 pada satu instrumen | Tiga mode pemodelan: Hanya harga pembukaan, Titik kontrol, Setiap tick (butir 14) | Manual, melalui rentang tanggal | Ya (MQL4) | Pergerakan dalam candle dihitung dari data kerangka waktu lebih rendah, bukan dibaca dari arus tick; bilah mutu pemodelan menunjukkan kerangka waktu yang digunakan |
| MetaTrader 5 — Strategy Tester | Sistem otomatis MQL5, juga multi-instrumen | Lima mode pembangkitan tick, termasuk tick yang dikumpulkan broker (butir 2) | Bawaan (Forward: 1/2, 1/3, 1/4, Kustom) (butir 2) | Ya (MQL5) | Ketersediaan dan kedalaman tick nyata bergantung pada broker; pada celah arsip, tester mengisi pengujian dengan tick model (butir 1); jendela walk-forward tidak bergeser sendiri |
| cTrader — backtest cBot | Sistem otomatis dalam lingkungan cTrader Algo | Empat mode: Data tick dari server, Bar M1 dari server, Bar M1 dalam berkas CSV, Bar H1 dari server (butir 6) | Manual, melalui rentang tanggal | Ya | Komisi ditetapkan per juta unit yang diperdagangkan, spread tetap atau diundi secara acak dari rentang tertentu — jadi model biayanya sederhana dan harus diatur dengan sengaja |
| TradingView — strategi Pine dan Replay Trading | Aturan Pine Script dan latihan pengambilan keputusan pada grafik, dengan catatan posisi serta ekspor hasil sesi (butir 5) | Data penyedia yang dipilih pada grafik | Manual | Sebagian (Pine untuk strategi, replay tanpa kode) | Pengisian ditetapkan emulator; perilaku historis dan waktu nyata dapat berbeda (butir 4); pada grafik nonstandar, harga pengisian sintetis dan hasil biasanya tidak menggambarkan pasar (butir 15) |
| Simulator replay khusus | Strategi diskresioner, keputusan demi keputusan | Paket data yang disertakan perangkat; pada salah satu penyedia yang diperiksa, dokumentasi menyebut data tick dengan spread variabel — pada penyedia lain cakupannya dapat berbeda dan harus dibaca tersendiri (butir 11) | Manual | Tidak | Pengisian ditetapkan emulator sehingga tidak mengukur biaya eksekusi nyata — bahkan ketika penyedia memungkinkan spread variabel dan komisi; aturan pengisian itu sendiri tidak dijelaskan dalam dokumentasi penyedia yang diperiksa (butir 11); mengulangi rentang dan merusak sampel juga mudah |
| Penganalisis hasil (impor laporan) | Laporan jadi dari tester atau akun | Berkas masukan | Bergantung pada perangkat | Tidak | Tidak menjalankan pengujian — mewarisi semua kesalahan sumber |
| Python (pustaka backtesting) | Logika apa pun, kendali penuh pembagian sampel | Apa pun, beserta tanggung jawab mutu | Penuh, skema apa pun | Ya | Seluruh ketepatan metodologi menjadi tanggung jawab Anda — lihat artikel tentang Python dalam perdagangan |
Pilihan mengerucut menjadi tiga pertanyaan. Dapatkah aturan ditulis menjadi kode? Jika tidak, Anda memerlukan lingkungan replay, bukan tester. Apakah Anda memerlukan tick nyata? Jika aturan bergantung pada urutan peristiwa di dalam candle, jawabannya ya dan itulah penentu pilihan. Apakah Anda ingin mengendalikan skema pembagian sampel? Jika ya, cepat atau lambat Anda akan menggunakan kode sendiri karena pembagian bawaan sengaja dibuat sederhana.
11. Protokol reproduksibilitas dan daftar periksa kredibilitas
Pengujian yang tidak dapat diulang hanyalah opini dalam angka. Kolom berikut merupakan minimum agar Anda enam bulan mendatang, atau orang lain, dapat mereproduksi pengujian yang persis sama. Jika suatu kolom tidak dapat dipulihkan, nyatakan sebagai keterbatasan, jangan dilewati.
1. Versi aturan atau kode dan tanggal pembekuannya. 2. Seluruh parameter. 3. Instrumen dan simbol tepat pada broker, termasuk sufiks. 4. Sumber data dan cara memperolehnya. 5. Rentang tanggal. 6. Zona waktu data dan waktu server. 7. Konvensi stempel waktu candle. 8. Mode pembangkitan tick. 9. Model spread. 10. Tarif komisi dan cara pembebanan. 11. Poin swap jika posisi melewati pergantian hari. 12. Asumsi slippage dan latensi eksekusi. 13. Aturan pengisian pending order yang digunakan perangkat — kapan limit dianggap terisi, harga pengisian, dan penanganan lompatan pada stop order. 14. Modal awal dan mata uang akun. 15. Aturan ukuran posisi. 16. Versi platform atau pustaka pengujian. 17. Pembagian in-sample dan out-of-sample beserta tanggal batas. 18. Jumlah varian parameter yang diperiksa. 19. Pengenal laporan atau berkas keluaran.
Daftar periksa kredibilitas backtest
Sebelas pertanyaan yang diterapkan sama persis pada hasil orang lain maupun hasil sendiri. Jawaban “tidak tahu” adalah jawaban negatif.
- Apakah instrumen, simbol tepat, periode, dan sumber data disebutkan?
- Apakah mode pembangkitan tick disebutkan dan cocok dengan horizon strategi?
- Apakah diketahui pada harga berapa tester mengisi limit dan stop order — serta telah diperiksa dalam dokumentasi perangkat, bukan diasumsikan?
- Apakah hasil memperhitungkan spread, komisi, poin swap, dan asumsi slippage — masing-masing dengan satuan yang disebutkan?
- Apakah hasil bertahan jika biaya dinaikkan sebesar kira-kira slippage rata-rata yang diukur pada akun?
- Apakah waktu diketahuinya nilai setiap variabel keputusan dicatat dan tidak satu pun setelah keputusan itu sendiri? Uji entri tertunda melengkapi audit ini, bukan menggantikannya
- Apakah pembagian in-sample dan out-of-sample beserta tanggal batasnya disebutkan?
- Apakah out-of-sample hanya dilihat satu kali setelah parameter dibekukan?
- Apakah jumlah varian parameter yang diperiksa disebutkan?
- Apakah hasil bertahan di sekitar parameter terpilih, bukan hanya satu titik?
- Apakah jumlah transaksi dan panjang periode mencakup lebih dari satu rezim pasar, mengingat kesimpulannya hendak digeneralisasi?
Kegagalan terburuk prosedur ini bukan melewatkan satu butir, tetapi menjalankannya dalam urutan keliru: hasil dahulu, pembenaran kemudian. Urutan merupakan syarat kebermaknaan, bukan preferensi — butir tujuh dan delapan yang diputuskan setelah melihat hasil tidak lagi dapat ditetapkan secara jujur. Menulis aturan sebelum pengujian, menetapkan tanggal batas sebelum optimasi, dan mencatat jumlah varian selama proses memerlukan seperempat jam; itulah yang membedakan validasi dari pencarian grafik indah.
Setelah prosedur ditulis, langkah berikutnya sering memindahkannya dari klik dalam tester ke kode yang menjalankannya secara berulang dan melacak pembagian sampel sendiri. Di situlah topik artikel terpisah dimulai — Python dalam perdagangan, tempat reproduksibilitas lingkungan sama pentingnya dengan reproduksibilitas pengujian.
FAQ — menguji strategi sebelum masuk pasar
Apakah akun demo cukup untuk membuktikan strategi menghasilkan laba?
Berapa transaksi diperlukan agar hasil bermakna?
Apakah walk-forward menghilangkan overfitting?
Apa tepatnya arti backtest tidak memperhitungkan biaya?
Dapatkah market replay menggantikan pengujian akun bermodal nyata?
Apakah tick nyata menyelesaikan masalah mutu backtest?
Sumber dan bibliografi
- MetaQuotes — Bantuan MetaTrader 5: Tick Nyata dan Tick yang Dibangkitkan, metatrader5.com/en/terminal/help/algotrading/tick_generation (diakses 22.08.2026) — mode pembangkitan tick dan prinsip penggantian tick nyata yang hilang dengan tick model: “Jika riwayat simbol memiliki bar menit tanpa data tick, tester membangkitkan tick dalam mode »Setiap tick«”
- MetaQuotes — Bantuan MetaTrader 5: Pengujian Strategi — pengaturan tester, forward testing, dan emulasi penundaan, metatrader5.com/en/terminal/help/algotrading/testing (diakses 22.08.2026) — pengaturan Forward dengan pilihan Tidak, 1/2, 1/3, 1/4, Kustom serta prinsip: “jika EA menggunakan pending order, penundaan hanya diterapkan pada penempatan order, bukan eksekusinya”
- MetaQuotes — Referensi MQL5: Menguji Strategi Perdagangan, mql5.com/en/docs/runtime/testing (diakses 22.08.2026) — “Selama pengujian, spread tidak dimodelkan, melainkan diambil dari data historis”
- TradingView — Panduan Pengguna Pine Script: Repainting, tradingview.com/pine-script-docs/concepts/repainting (diakses 22.08.2026)
- TradingView — Pusat Bantuan: Belajar berdagang pada data historis (Replay Trading), tradingview.com/support/solutions/43000691889 (diakses 22.08.2026) — “Anda dapat membuka posisi serta memasang limit, stop, dan stop-limit order, seperti pada broker nyata”; tab Ikhtisar, Kinerja, Analisis transaksi, Rasio risiko/kinerja dan Daftar transaksi, dengan “Kinerja dan Daftar transaksi juga dapat diekspor untuk analisis atau pencatatan lebih lanjut”
- Spotware — cTrader Algo: Melakukan Backtest cBot, help.ctrader.com/ctrader-algo/documentation/cbots/backtest-a-cbot (diakses 22.08.2026) — empat mode data: “Data tick dari server”, “Bar M1 dari server”, “Bar M1 dalam berkas CSV”, “Bar H1 dari server”; komisi sebagai “tarif komisi per juta unit yang diperdagangkan”; spread dalam pilihan “Nilai Tetap” dan “Acak”
- Pardo, R. — Evaluasi dan Optimasi Strategi Perdagangan, Wiley, edisi ke-2, 2008 — walk-forward, Efisiensi Walk-Forward, dataran parameter, metodologi pengujian sistem
- Bailey, D.H., Borwein, J.M., López de Prado, M., Zhu, Q.J. — Probabilitas Overfitting Backtest, Journal of Computational Finance, 2017 — pengujian berganda dan probabilitas hasil terbaik merupakan artefak pencarian
- Aronson, D.R. — Analisis Teknikal Berbasis Bukti, Wiley, 2007 — data mining bias, seleksi berdasarkan hasil, validasi statistik
- Tomasini, E., Jaekle, U. — Sistem Perdagangan: Pendekatan Baru Pengembangan Sistem dan Optimasi Portofolio, Harriman House, 2009 — walk-forward, Monte Carlo, pengujian tingkat portofolio
- Forex Tester Software — Forex Tester Online: Pusat Dukungan, help.forextester.com (diakses 22.08.2026) — cakupan data yang disertakan: “Ya, kami menyediakan data tick dan membentuk candle berdasarkan data tersebut”, “Data perubahan harga per menit, meliputi harga Open, High, Low, Close, dan Volume (aktivitas perdagangan). Data tick memberikan rincian setiap perubahan harga simbol keuangan, serta spread mengambang”; parameter biaya: “Forex Tester Online mendukung pengujian strategi dengan spread variabel dan komisi”. Dokumentasi ini tidak menjelaskan aturan penetapan harga pengisian emulator. Alamat yang sebelumnya dikutip, forextester.com/documentation, mengembalikan halaman 404 (diperiksa 22.08.2026) dan telah diganti
- Reserve Bank of Australia — Pernyataan Kebijakan Moneter, Februari 2019, Kotak B: Peristiwa Flash Yen Jepang Terkini, rba.gov.au/publications/smp/2019/feb/box-b-the-recent-japanese-yen-flash-event.html (isi diakses 22.08.2026) — “Pada pukul 9:36 AEDT, dalam sekitar 30 detik, tanpa berita material apa pun, yen menguat 3 persen terhadap dolar AS”; “Spread bid-ask juga melebar signifikan dari sekitar 2 pip menjadi 100–300 pip”; “likuiditas pasar rendah secara musiman pada waktu dan periode tahun tersebut”
- MetaQuotes — Bantuan MetaTrader 5: Fitur Pengujian, metatrader5.com/en/terminal/help/algotrading/testing_features (diakses 22.08.2026) — bagian Pemicuan dan Eksekusi Order, dua paragraf berurutan dengan cakupan terpisah. Paragraf pertama yang berlaku bagi pasar mata uang: “Untuk instrumen nonbursa, pemicuan semua jenis pending order serta SL/TP dilakukan berdasarkan harga Bid dan Ask. Eksekusi dilakukan pada harga pasar Bid dan Ask saat pemicuan”. Paragraf kedua khusus instrumen bursa: “Limit order dieksekusi pada harga yang ditetapkan dalam order (tanpa slippage), sementara jenis order lain dieksekusi pada harga pasar Bid dan Ask saat itu (slippage mungkin terjadi)”. Halaman yang sama tentang mode sederhana: “Dalam mode pengujian »Hanya harga pembukaan« dan »OHLC 1 menit«, pending order serta SL dan TP dieksekusi pada harga yang ditetapkan dalam order”
- MetaQuotes — Bantuan MetaTrader 4: Strategy Tester — Pengaturan Tester, metatrader4.com/en/trading-platform/help/autotrading/tester/tester_parameters (diakses 22.08.2026) — mode Hanya harga pembukaan, Titik kontrol dan Setiap tick; mode terakhir “menggunakan untuk pembangkitan bukan hanya data kerangka waktu lebih rendah terdekat, tetapi juga semua kerangka waktu terdekat yang tersedia”, dan bilah mutu pemodelan menunjukkan kerangka waktu yang digunakan
- TradingView — Pusat Bantuan: Strategi menghasilkan hasil tidak realistis pada jenis grafik nonstandar, tradingview.com/support/solutions/43000481029 (diakses 22.08.2026) — “Karena level harga pada grafik nonstandar secara inheren sintetis, hasil backtest yang dihitung padanya biasanya tidak mewakili kondisi pasar nyata”
- IG — Apa perbedaan akun demo dan akun live?, ig.com/uk/help-and-support/articles/687034 (artikel 29.05.2026, diakses 22.08.2026) — deskripsi hanya menyangkut akun demo penyedia ini: “Transaksi melalui akun demo tidak akan terkena slippage, penyesuaian bunga dan dividen, atau pergerakan harga di luar jam perdagangan” dan “Transaksi dapat ditolak jika dana Anda tidak cukup untuk membukanya, tetapi berbeda dari akun live, tidak akan pernah ditolak karena ukuran atau harga”