Kategori
Kinerja
Tingkat
Pemula
Digunakan pada
BacktestingEvaluasi EA

Backtest

Backtest: simulasi aturan trading sebuah EA yang dijalankan pada data harga historis untuk memperkirakan bagaimana kinerja strategi tersebut di masa lalu.

juga: backtesting, simulasi historis, uji strategi

Diperbarui

Dengan bahasa sederhana

Menjalankan aturan EA di atas riwayat harga untuk melihat apa yang akan dilakukannya. Hasilnya mencatat sebuah simulasi, bukan ramalan, dan seberapa banyak kesamaan keduanya sepenuhnya bergantung pada bagaimana Anda menyusun simulasi itu.

Mengapa ini penting

Backtest adalah satu-satunya bukti yang pernah ditawarkan sebagian besar EA, sehingga memahami apa yang bisa dan tidak bisa dibuktikannya adalah bagian terbesar dari evaluasi EA. Ia menyingkirkan sebuah strategi dengan murah dan menunjukkan bahwa aturannya sesuai deskripsi; yang tidak bisa dilakukannya adalah meramal, dan hampir setiap pembelian yang mengecewakan berawal dari membacanya seolah-olah ia bisa.

  • Ia dapat dibantah dengan cara yang tidak dimiliki materi pemasaran. Sebuah backtest menyebutkan sumber data, rentang tanggal, dan model biaya, sehingga pembeli bisa bertanya apakah run itu dapat direproduksi — dan EA yang menolak menyebutkannya sudah memberi tahu Anda sesuatu.
  • Ia adalah tempat termurah untuk gagal. Aturan yang merugi pada riwayat tidak akan mulai menghasilkan di akun riil, jadi backtest menyingkirkan kandidat dengan biaya komputasi satu malam.
  • Hasilnya adalah sebuah rentang, bukan satu angka. Aturan yang sama pada sumber data, spread, dan tanggal mulai yang berbeda menghasilkan sebaran hasil, dan lebar sebaran itulah temuannya.

Memakainya untuk memvalidasi strategi

Di mana dipakai

  • Menyaring ide strategi sebelum uang atau waktu forward testing dikeluarkan untuknya.
  • Menetapkan frekuensi transaksi, rata-rata lama posisi ditahan, dan rentetan rugi terburuk yang harus diperkirakan penggunanya.
  • Menghasilkan angka yang dipublikasikan pada halaman EA — profit factor, drawdown, win rate — dan itulah sebabnya asal-usul run menjadi bagian dari klaimnya.
  • Menjalankan ulang EA yang sudah ada pada jendela data yang lebih baru untuk memeriksa apakah perilakunya sudah menyimpang.

Seperti apa hasil yang tepercaya

  • Sumber data, rentang tanggal, dan model tester semuanya dinyatakan, sehingga run itu dapat direproduksi alih-alih sekadar dipercaya.
  • Run tersebut memodelkan spread dan komisi pada tingkat yang realistis alih-alih membiarkannya pada nilai tetap yang ideal.
  • Jendela pengujian mencakup beberapa rezim pasar: minimal satu periode tren, satu periode sideways, dan satu periode tertekan.
  • Tidak ada yang menyetel aturan pada jendela yang dilaporkan, atau jika ada, halaman tersebut menampilkan jendela out-of-sample yang tak tersentuh di sebelahnya.
  • Jumlah transaksi berada di kisaran ratusan, sehingga statistik utamanya tidak ditopang oleh segelintir pencilan.

Tanda bahaya

  • Tangkapan layar kurva ekuitas tanpa sumber data, tanpa rentang tanggal, dan tanpa jumlah transaksi.
  • Jendela yang dimulai pada waktu yang menguntungkan: EA yang pengujiannya dimulai setelah krisis terakhir telah memilih soal ujiannya sendiri.
  • Parameter yang dikutip dengan ketelitian yang tidak masuk akal, seperti rata-rata 37 periode dengan stop 23,7 pip.
  • Angka modelling quality yang berasal dari template, bukan dari sebuah run. Model 0 di MT5 membangkitkan tick dari bar M1; hanya Model 4 yang memutar ulang tick yang terekam. Skema di balik halaman-halaman ini dulu memberi nilai bawaan 99 pada kolom itu, sehingga run Model 0 menampilkan '99% modelling quality, against a 92% minimum' sampai nilai bawaan tersebut dihapus pada 2026-08-06.
  • Hasil yang hanya ditampilkan pada satu-satunya instrumen tempat penulisnya melakukan optimasi.

Backtest vs perdagangan nyata

  • Eksekusinya optimistis. Tester mengasumsikan order sampai ke pasar pada harga yang dimodelkan; eksekusi riil menambahkan slippage, requote, dan latensi, dan ketiganya memakan biaya.
  • Biayanya statis. Backtest dengan spread tetap melewatkan pelebaran yang terjadi di sekitar rilis berita dan pergantian sesi, yaitu justru saat banyak strategi bertransaksi.
  • Pasarnya sudah terjadi. Jendela pengujian tidak memuat rezim yang belum pernah diperlihatkan kepada strategi, sedangkan trading riil pada akhirnya akan menyediakannya.
  • Perkirakan profit factor dan ekspektasi di akun riil berada di bawah angka hasil pengujian. Selisih yang moderat itu wajar; perubahan tanda berarti biaya pengujian salah dihargai atau aturannya terlalu dicocokkan.
  • Di sini selisihnya sudah diukur. Pada empat belas halaman EA di situs ini, profit factor backtest berada di antara 1.23 dan 1.53, sementara jendela out-of-sample setelah publikasi berkisar dari 0.72 sampai 6.43 pada tujuh hingga 142 transaksi: dua di bawah 1.0, termasuk yang punya backtest terbaik kedua di antara semuanya. Begitulah tampilan sampel sekecil itu, ke dua arah.

Metode validasi yang disarankan

  1. 1Tetapkan model biaya lebih dulu — spread dan komisi yang realistis — baru jalankan, alih-alih menyetel pada eksekusi ideal lalu menambahkan biaya di akhir.
  2. 2Sisihkan satu jendela yang tak tersentuh sebelum mengoptimasi apa pun, dan jangan melihatnya sampai aturannya final.
  3. 3Jalankan ulang pada sumber data kedua. Dua sumber yang berselisih lebih dari sedikit sedang memberi tahu Anda bahwa hasilnya bergantung pada data, bukan pada aturan.
  4. 4Geser tanggal mulai beberapa minggu lalu jalankan ulang. Hasil yang hanya bertahan pada satu tanggal mulai bukanlah hasil.

Contoh

Satu EA, satu jendela, empat run tester yang hanya berbeda pada spread tetap yang ditulis di berkas pengaturan.

Spread tetap disetel ke 20, 30, 40, dan 60 poin
empat laporan identik
MD5 keempat berkas laporan
471C1CE24EC24E669C20BD2B01EBB8A3
Masing-masing 621.050 byte: pengaturan itu tidak menggeser apa pun.

Diukur pada GBPJPYm pada 2026-07-31, itulah sebabnya halaman tersebut tidak memublikasikan angka spread sama sekali; sebuah perekam yang dijalankan kemudian di dalam tester mendapatkan rata-rata 19,14 poin.

Perhitungan 20 / 30 / 40 / 60 poin → satu laporan yang identik byte demi byte

Hasil Tester MT5 tidak punya kunci Spread: itu peninggalan MT4, jadi model biaya yang berlaku tidak pernah sama dengan yang disetel

Cara membacanya

Bacalah backtest sebagai sebuah klaim yang datang dengan syarat. Syarat itulah yang menentukan berapa banyak yang bertahan saat bertemu akun sungguhan.

Rentang Artinya
Tidak ada sumber data maupun rentang tanggal yang dinyatakan Bukan bukti. Tidak ada yang bisa direproduksi dan tidak ada yang bisa dibantah.
Sumber dinyatakan, satu instrumen, jendela hasil optimasi Sebuah titik awal. Ini menunjukkan aturannya bisa menang di suatu tempat, dan itu hal terlemah yang bisa ditunjukkan sebuah backtest.
Sumber dinyatakan dengan biaya realistis pada beberapa rezim Layak dibaca. Angkanya kini berbicara tentang strateginya, bukan lagi tentang cara penyetelannya.
Semua di atas ditambah jendela out-of-sample yang tak tersentuh Bukti terkuat yang bisa dihasilkan sebuah backtest sendirian: sebagiannya tidak tersedia bagi orang yang menyetel aturannya.
  • Tanyakan apa saja yang dioptimasi. Setiap parameter yang disetel pada jendela yang dilaporkan meminjam sedikit hasilnya dari data.
  • Periksa jumlah transaksi sebelum melihat profitnya. Lima puluh transaksi tidak bisa membedakan strategi dari keberuntungan, sebagus apa pun tampilannya.
  • Backtest yang tidak bisa direproduksi hanyalah tangkapan layar. Perlakukan baris asal-usulnya sebagai bagian dari angka itu, bukan sebagai catatan kaki.

Halaman EA mt5depot menyatakan sumber data, rentang tanggal, dan model tester untuk setiap run yang dipublikasikan, dan hanya 6 dari 30 halaman yang mencantumkan angka modelling quality — 6 dari 18 run yang dijalankan pada tick riil. Sebuah gerbang build membaca halaman yang sudah dibangun agar 24 sisanya tidak mengklaim angka itu.

Kesalahan umum

Membaca backtest sebagai ramalan

Ia melaporkan apa yang akan dilakukan aturannya pada data yang sudah ada. Masa depan memuat kondisi yang tidak ada di jendela itu, itulah sebabnya hasil forward lebih buruk dan selisihnya justru yang perlu direncanakan.

Mengoptimasi dan melaporkan pada jendela yang sama

Setiap parameter yang disetel menyerap sebagian derau jendela itu, jadi menguji pada data yang dipakai menyetel sama dengan mengukur penyetelannya. Hasilnya dijamin terlihat bagus dan dijamin tidak terulang.

Membandingkan dua backtest yang dijalankan pada kondisi berbeda

Spread berbeda, sumber data berbeda, rentang tanggal berbeda, dan model tester berbeda menggeser angkanya secara terpisah dari strateginya. Dua angka hanya bisa dibandingkan bila penyetelan di baliknya sama.

Menganggap jendela yang panjang otomatis lebih baik

Uji sepuluh tahun pada data bar interpolasi bisa lebih tidak informatif daripada dua tahun pada tick riil untuk strategi intraday, karena run yang lebih panjang itu tidak pernah memuat jalur di dalam bar yang sebenarnya ditransaksikan aturannya.

Penjelasan lengkap

Pertanyaan yang sering diajukan

Apakah backtest yang bagus sudah cukup untuk membeli sebuah EA?
Tidak. Backtest bisa menyingkirkan sebuah strategi dan bisa menunjukkan bahwa aturannya berperilaku seperti yang dijelaskan, tetapi ia tidak bisa membuktikan bahwa keunggulannya bertahan pada kondisi yang tidak ada di jendela pengujian. Cari jendela out-of-sample atau rekam jejak forward di sebelahnya, dan baca model biayanya sebelum melihat profitnya.
Berapa lama sebaiknya backtest sebuah EA?
Cukup panjang untuk memuat beberapa rezim pasar dan cukup banyak transaksi agar statistiknya stabil: dalam praktiknya beberapa tahun dan beberapa ratus transaksi untuk sebagian besar strategi. Panjangnya saja bukan kriteria: run panjang pada data buruk bisa kurang informatif dibandingkan run lebih pendek pada tick riil.
Mengapa hasil backtest berbeda antar broker?
Karena riwayat harga, catatan spread, dan kondisi tradingnya berbeda. Menjalankan aturan yang sama pada dua sumber data dan mendapat hasil yang jauh berbeda adalah informasi yang berguna: artinya hasilnya bergantung pada data sebanyak ia bergantung pada strateginya.