Dalam artikel ini
Setelah membaca artikel ini…
- Pisahkan jumlah kasus lolos total dari kelulusan kategori wajib.
- Tentukan kriteria penolakan terkonfirmasi tanpa menandainya sebagai fill.
- Tandai bukti yang perlu diulang setelah perubahan versi tanpa menyamakannya dengan kegagalan.
Pelajari istilah tanpa meninggalkan artikel
Backtesting (uji data historis) Rencana trading Eksekusi order Equity (ekuitas akun) Likuiditas Ukuran posisi (jumlah unit atau lot)Backtest adalah satu tahap dalam evaluasi strategi. Nyatakan aturan, audit histori, pisahkan pengembangan dan evaluasi, lalu selidiki operasi melalui demo atau pengamatan tanpa order. Studi live berskala terbatas hanya pilihan yang perlu alasan tersendiri. Kelulusan beberapa tahap tidak menjamin akun bertahan atau hasil berulang.
Satu hasil historis belum menjadi proses validasi
Kebenaran program, kualitas data, hasil historis, dan operasi akun menjawab pertanyaan berbeda. Kode dapat menjalankan ide rugi dengan benar; laporan untung juga dapat berasal dari kesalahan kode. Simpan kartu bukti berversi: pertanyaan, keadaan yang diharapkan, hasil yang diamati, serta batas yang belum diselesaikan. Sertakan kasus entry berhasil, rugi, tanpa sinyal, penolakan terkonfirmasi, dan restart. Tulis “belum diperiksa” jika bukti belum ada.
Imbal hasil hipotetis 30% yang dipilih dari 300 kombinasi menjadi alasan menyelidiki seleksi, bukan bukti edge. Cara melakukan backtest strategi membahas satu pengujian historis yang dapat ditelusuri.
Total 98% tidak meloloskan kategori kegagalan
Catat jenis kasus bersama hasilnya. Asumsi sumber: daftar lengkap fiktif 100 kasus fungsi, dengan kriteria yang ditetapkan sebelumnya. Lolos berarti keadaan yang diharapkan tercatat; tidak ada harga, akun, atau transaksi nyata. Setiap kategori wajib dinilai sendiri. Ini pemeriksaan program, bukan estimasi keandalan statistik.
Geser diagram secara mendatar bila perlu.
Kedua kategori diwajibkan sebelum uji. Seluruh 98 kasus normal sesuai kriteria. Dalam dua kasus penolakan terkonfirmasi, program seharusnya mencatat penolakan tanpa menandai eksekusi; keduanya gagal. Total 98/100 = 98%, tetapi kategori penolakan 0/2 = 0%. Pemeriksaan masih terbuka. Perbaiki penanganan penolakan, ulangi kasus relevan, dan periksa operasi normal tetap berfungsi.
Setiap bingkai mewakili 100% kategorinya sendiri; luasnya tidak membandingkan 98 dengan 2 kasus. Persentase tersebut bukan peluang gagal di pasar, ukuran mutu broker, atau keuntungan mendatang. Respons jaringan yang hilang bukan penolakan terkonfirmasi. Dua kasus sumber menerima status penolakan yang sudah diketahui.
Model tambahan: bukti lama setelah kode berubah
Model fiktif terpisah memiliki enam kewajiban uji. Kriteria, data, serta peta ketergantungan ditetapkan sebelumnya. Anggap peta ini lengkap hanya untuk model; tidak ada kesimpulan bahwa proyek nyata memiliki ketergantungan sesederhana ini. Modul yang tidak berubah menghasilkan perilaku sama pada data yang sama. Uji adalah pemeriksaan keadaan, bukan perdagangan atau ukuran risiko uang.
| Kasus | Yang diuji | Modul yang diandalkan dalam model |
|---|---|---|
| E | Pembuatan permintaan entry | Sinyal dan pengiriman, tanpa menilai respons |
| N | Tidak membuat permintaan saat tidak ada sinyal | Sinyal |
| L | Perhitungan hasil dari input yang sudah diberikan | Aritmetika hasil |
| R | Pencatatan penolakan terkonfirmasi | Penangan respons |
| S | Rekonsiliasi setelah restart | State dan penangan respons |
| U | Respons hilang tetap berstatus belum diketahui | State dan penangan respons |
Versi v1 memiliki enam hasil lolos. Pada v2 hanya penangan respons berubah. Menurut peta model, bukti E, N, dan L dapat dipertahankan karena seluruh modul dan inputnya sama. Bukti R, S, dan U tidak lagi memeriksa versi aktif. Ketiganya perlu diulang; statusnya “belum diperiksa pada v2”, bukan otomatis “gagal”. Simpan laporan v1 sebagai riwayat.
Pisahkan gagal, belum diperiksa, dan bukti tidak aktual. Total tanda lolos historis bukan cakupan versi yang aktif.
Pada layar kecil, gulir diagram mendatar atau perbesar. Nilai dan kesimpulan juga tersedia dalam teks di bawah.
- Arsip v1
- 6 dari 6 lolos pada v1 – Semua hasil lama disimpan, dengan versi yang benar.
- v2 sebelum pengulangan
- 3 dari 6 memiliki bukti aktual – E/N/L tidak terpengaruh; R/S/U perlu diuji ulang.
- v2 setelah R diulang dan lolos
- 4 dari 6 memiliki bukti aktual – S dan U belum diperiksa pada v2; tidak otomatis gagal.
Setelah hanya R dijalankan ulang dan lolos, cakupan bukti aktif menjadi 4/6, dengan S dan U tetap terbuka. Menampilkan enam tanda lolos lama seolah hasil v2 menyembunyikan dua pemeriksaan yang belum aktual. Angka 4/6 bukan peluang program benar. Pada proyek nyata, telusuri dampak perubahan sebelum memakai ulang bukti; bila peta tidak dapat dipertanggungjawabkan, contoh ini tidak membenarkan pembatasan pengujian.
Aturan tertulis harus menyelesaikan ambiguitas
Tulis entry, exit, stop, target, dan sizing sehingga dapat direproduksi. Kandidat hipotetis memakai EMA(50), EMA(200), RSI(14), rata-rata 20 periode, stop 1,5 ATR(14), target 2,5 ATR, serta risiko rencana 1% ekuitas. Itu masih memerlukan waktu bar yang tepat, arti “sentuhan”, harga yang dapat dieksekusi, serta keputusan jika dua exit terpicu bersamaan. Jangan memakai close final untuk entry yang lebih awal pada bar sama.
Sesuaikan data dengan pertanyaan riset
Pilih histori untuk strategi dan data kontrak yang tersedia, bukan jumlah tahun tetap. Simpan penyedia, produk, zona waktu, sisi kuotasi, celah, versi kode, input, dan asumsi eksekusi. Arsipkan dataset atau identitasnya beserta operasi dan jurnal. Bedakan tick MT5 yang diamati dari penggantinya yang dibangkitkan. Perubahan histori, build terminal, atau pengaturan akun dapat mengubah laporan tanpa perubahan strategi. Jumlah transaksi saja tidak membuktikan pengamatan independen.
Lindungi blok evaluasi dari pengembangan
Tetapkan pembagian kronologis sebelum seleksi aturan. Desain 70/30 hanya salah satu pilihan; hasil out-of-sample lebih lemah dapat berasal dari sampel, biaya, kondisi, atau seleksi. Jangan gunakan test untuk memilih aturan kemudian menyebutnya belum tersentuh.
Contoh sumber: versi 1.0 diuji pada 2024–2025. Kerugian Senin memotivasi versi 1.1 yang mengecualikan Senin. Pengujian ulang pada 2024–2025 kini bukti pengembangan untuk versi baru. Simpan kedua laporan dan alasan perubahan. Mengganti nama periode tidak mengembalikan independensinya. Hal ini berbeda dari model E–U: perubahan strategi akibat hasil test dan bukti fungsi yang kadaluarsa adalah dua masalah yang perlu dicatat masing-masing.
Walk-forward sebagai pemeriksaan tambahan
Model rolling melatih pada 2018–2021 dan menguji 2022, kemudian melatih 2019–2022 dan menguji 2023. Ulangi prosedur yang ditetapkan tanpa informasi masa depan. Lima sampai tujuh siklus adalah pilihan desain, bukan sertifikasi. Tentukan metrik WFE beserta penyebutnya sebelum membaca angka; rentang 0,5–0,75 atau di bawah 0,3 bukan vonis universal.
Bekukan aturan sebelum setiap jendela evaluasi. Jika hasil mengubah versi berikutnya, simpan perubahannya dalam log riset alih-alih memperlakukan jendela yang sama sebagai bukti belum disentuh. Analisis walk-forward menguraikan desain jendela; hubungkan dengan catatan kerja riset yang sama.
Demo dan studi live opsional menguji operasi berbeda
Demo atau observasi tanpa order dapat memeriksa waktu sinyal, izin, respons, dan restart ketika data baru datang. Catat ID ide, volume diminta, fill, serta order aktif. Opsi bernama Forward pada tester MT5 memakai bagian lebih akhir dari rentang histori; itu bukan pengamatan kuotasi masa depan pada demo. Bulan yang berlalu tidak memeriksa kegagalan langka yang tidak terjadi, dan fill demo belum tentu mereproduksi akun live.
Model sumber menargetkan pembelian 0,20 lot. Sebelum koneksi putus, 0,08 terisi; sisa order kemudian dikonfirmasi batal. Tidak ada posisi atau order lain untuk ide tersebut. Meminta ulang 0,20 lalu mengasumsikan seluruhnya terisi memberi total 0,28, melampaui target 0,08 atau 40%. Mengisi selisih 0,20 − 0,08 = 0,12 memberi total 0,20. Jika pembatalan belum diketahui, sisa order lama masih mungkin terisi; rekonsiliasi dahulu. Contoh ini memeriksa satu jalur kegagalan dengan asumsi tertentu, bukan keandalan keseluruhan.
Dokumentasi MetaQuotes membedakan permintaan, order, deal, dan perubahan posisi. Satu permintaan dapat menghasilkan beberapa kejadian transaksi; urutan pemberitahuannya tidak dijamin. Jangan merekonstruksi keadaan hanya dari jumlah callback. Gunakan identitas serta keadaan server yang relevan dan tangani hasil belum diketahui secara eksplisit.
Jika ada alasan melakukan studi live, nyatakan ukuran kontrak aktual dan eksposurnya. Label micro-lot tidak berarti sepersepuluh dari ukuran target apa pun. Periode tiga sampai enam bulan hanya ilustrasi. Bandingkan biaya serta eksekusi dengan model, catat selisih sebelum mempertimbangkan peningkatan ukuran. Angka antar tahap yang mirip tidak menghapus risiko pasar.
Contoh breakout: angka ditetapkan, bukan diamati
Seluruh angka contoh berikut diberikan untuk ilustrasi. Kandidat EUR/USD M30 memakai high 20 bar sebelumnya untuk entry dan low 10 bar sebelumnya untuk exit; waktu order dan fill masih perlu ditetapkan. Pengembangan 2014–2020, evaluasi 2021–2023. Misalkan optimisasi memilih 23/11 bar serta stop 1,4 ATR. Statistik IS yang ditetapkan ialah win rate 58%, profit factor 1,72, dan imbal hasil tahunan 22%; OOS 54%, 1,51, serta 18%.
Ringkasan tersebut tidak merekonstruksi urutan transaksi atau drawdown. Skenario demo berikutnya memberi biaya eksekusi tambahan 0,5 pip, dan skenario live opsional menetapkan 51% kemenangan. Tidak ada hasil yang diamati atau bukti laba bersih live dari win rate itu saja. Ringkasan tidak memvalidasi tahap berikutnya atau menentukan ukuran posisi; bandingkan sinyal, pembayaran hasil, biaya, serta ketidakpastian yang tercatat.
Langkah kerja berikutnya
- Tulis aturan mekanis dalam berkas teks dengan parameter tepat, rumus stop loss, serta ukuran posisi sebagai persentase ekuitas. Tentukan waktu informasi tersedia dan cara menyelesaikan kondisi bersamaan.
- Audit histori instrumen, termasuk timestamp, periode hilang, asal tick, serta perubahan kontrak. Pilih sampel yang sesuai hipotesis dan jelaskan kondisi yang dicakup serta tidak dicakup.
- Tetapkan pembagian kronologis, metrik evaluasi, dan desain walk-forward. Pembagian 70/30 dan lima sampai tujuh siklus hanya pilihan. Selidiki parameter tidak stabil; perubahan 50% atau WFE di bawah 0,5 tidak otomatis menetapkan penyebab.
- Gunakan demo untuk memeriksa alur operasi dengan aturan beku. Studi live, jika dilakukan, memerlukan batas eksposur rencana dan perbandingan biaya serta eksekusi. Tiga sampai enam bulan dan simulasi Monte Carlo tidak menjamin kesiapan memperbesar ukuran.
- Bandingkan biaya, drawdown, dan ketidakpastian bersama return. Dua belas persen pada setiap tahap tidak otomatis lebih aman daripada 30% IS dan 8% OOS. Gunakan perbedaan untuk menyelidiki hipotesis keunggulan trading, bukan menetapkan peningkatan ukuran berdasarkan judul angka.
Periksa pemahaman Anda
Latihan: sekitar 2 menit.
Lihat jawaban dan penjelasan
Total benar, tetapi tidak menggantikan hasil 0/2 pada kategori wajib tersendiri.
Pertanyaan lain
Apa bedanya proses ini dengan satu backtest?
Berapa lama dari ide sampai live?
Metrik apa perlu dibandingkan antar tahap?
Apakah menyelesaikan proses menjamin laba live?
Apakah bukti yang tidak aktual berarti kasus gagal?
Sumber dan verifikasi
- MetaQuotes — Strategy Testing
Forward pada rentang historis, pengaturan, dan jurnal; bukan pengamatan demo masa depan.
- MetaQuotes — Real and Generated Ticks
Bedakan data tick yang tersedia dari penggantinya pada histori.
- MQL5 — OnTradeTransaction
Satu permintaan dapat menghasilkan beberapa kejadian dengan urutan pemberitahuan yang tidak dijamin.
- MQL5 — OrderSend
Pengiriman atau nilai true tidak sama dengan eksekusi transaksi terkonfirmasi.
Perhitungan menggunakan asumsi yang dinyatakan secara terbuka. Perhitungan ini tidak menggantikan data pasar terkini atau ketentuan penyedia.
