Dalam artikel ini
Setelah membaca artikel ini…
- Membandingkan deklarasi dua run dan menemukan bukti yang belum tersedia.
- Membedakan perubahan biaya dari bukti bahwa lingkungan tes benar.
- Menguji mengapa saldo akhir sama belum membuktikan lintasan keputusan sama.
Pelajari istilah tanpa meninggalkan artikel
Backtesting (uji data historis) Komisi Expert Advisor (EA)Dua pengujian robot yang tampak sama dapat menghasilkan hasil berbeda meskipun parameter yang terlihat tidak berubah. Sebelum mengubah strategi, periksa kode, data, spesifikasi simbol dan model eksekusi. Manifest run mencatat deklarasi kondisi tersebut. Pembanding di bawah membandingkan dua catatan, sedangkan contoh memisahkan perubahan komisi. Catatan identik belum membuktikan lingkungan identik: simpan laporan dan log eksekusi yang mendasarinya.
Apa yang disimpan sebelum menjalankan tester lagi?
Arsipkan laporan, daftar eksekusi, jurnal dan set parameter kedua run, termasuk hasil yang kurang menguntungkan. Beri identitas terpisah. Screenshot kurva equity tidak membuktikan harga fill pertama, jumlah eksekusi parsial atau awal tes aktual. Anda memerlukan hubungan antara kondisi pengujian, operasi dan hasil akhir.
Bedakan pengujian tunggal, pencarian optimasi dan evaluasi periode berikutnya. Dokumentasi Strategy Tester menjelaskan mode tersebut. Nama file robot sama dapat menyimpan kompilasi atau dependensi berbeda. Simpan build terminal, program dan pustaka relevan; nama tidak mengidentifikasi isi file.
Bandingkan awal yang diminta dengan awal aktual. MetaQuotes menjelaskan bahwa riwayat persiapan yang tidak cukup dapat menggeser awal aktual. Sebulan penuh berbeda dari periode terpotong. Pemeriksa cakupan CSV memeriksa ekspor; artikel ini membandingkan kondisi run yang lebih luas.
Membuat dua manifest dengan format sama
Tempel dua objek JSON memakai tepat tiga belas nama kolom berikut. Jangan terjemahkan kunci atau menambah kolom tingkat atas. version adalah angka 1 untuk format manifest, bukan versi EA. Nilai lain berupa string; inputs, costs dan initialState boleh berupa objek biasa untuk rincian pengaturannya.
| Kunci tetap | Catatan |
|---|---|
| version, platform, build, codeRevision | Format, platform, build serta identitas kode/dependensi. |
| inputs, dataSnapshot | Parameter dan versi dataset yang diarsipkan. |
| symbolSpecification, executionModel, costs | Kontrak, aturan simulasi dan seluruh biaya asumsi. |
| requestedStart, actualStart, end | Batas waktu yang diminta dan benar-benar dievaluasi. |
| initialState | Saldo awal, posisi dan kondisi inisialisasi relevan. |
Pada dataSnapshot, masukkan identitas arsip atau checksum yang dihitung terpisah. Label data-v1 tetap deklarasi: alat tidak membaca file. Menamai codeRevision sebagai hash juga tidak memverifikasi isinya. Label teknis cukup; jangan masukkan sandi, kode akses atau informasi pribadi. Kolom yang belum diketahui adalah pekerjaan verifikasi, bukan alasan menciptakan versi yang tampak sah.
Gunakan tanggal dengan zona waktu eksplisit, sebaiknya representasi UTC konsisten. Menambahkan Z pada jam server tidak mengonversinya ke UTC. Dua format dapat merujuk saat yang sama tetapi tetap berbeda secara literal. Standarkan hanya setelah memeriksa tanggal dan offset sumber. Pembanding tidak mengetahui kalender penyedia atau apakah waktu yang ditulis cocok dengan log.
Apa yang sebenarnya diperiksa pembanding?
Edit dua contoh manifest lalu bandingkan deklarasinya. Alat bekerja lokal, tanpa mengirim data, mengimpor file atau menyimpan isian secara persisten. Ia tidak menjalankan MT5 atau membaca akun. Objek sama berarti isian sama; dependensi yang tidak dicatat atau deskripsi keliru tetap mungkin ada. Keputusan tentang penyebab memerlukan laporan serta log, bukan indikator bahwa semua kolom sama.
Bandingkan dua catatan backtest
Contoh fiktif: transaksi sama, komisi berbeda
Asumsikan kontrak linier, akun USD dan satu transaksi tertutup dengan dua fill. Laba harga 10 USD; harga, kuantitas dan periode cocok, sedangkan pendanaan serta biaya lain nol. Run A menyatakan komisi 1 USD per fill dalam costs, B menyatakan 2 USD. Hasil A = 10 − 2 × 1 = 8 USD; B = 10 − 2 × 2 = 6 USD. Perubahan biaya menjelaskan selisih 2 USD dalam model. Itu tidak membuktikan sinyal lebih buruk, data rusak atau slippage. Pembanding menandai costs; interpretasinya tetap harus dicocokkan dengan laporan dan asumsi lain. Angka ini bukan tarif broker.
Satu transaksi, dua asumsi biaya
Komisi menjelaskan selisih model 2 USD; alat tidak memverifikasi kebenaran deklarasi.
Pada layar kecil, gulir diagram mendatar atau perbesar. Nilai dan kesimpulan juga tersedia dalam teks di bawah.
Contoh tambahan: saldo akhir sama, lintasan berbeda
Latihan baru memakai rupiah terpisah dari contoh USD dan tidak merupakan hasil robot nyata. Saldo awal Rp1.000.000, tanpa posisi mengambang, biaya atau arus kas. Pada lintasan A, hasil tertutup berurutan +Rp80.000 lalu −Rp60.000 memberi saldo Rp1.080.000 lalu Rp1.020.000. Pada B, −Rp60.000 lalu +Rp80.000 memberi Rp940.000 lalu Rp1.020.000. Dua hasil akhir sama-sama laba Rp20.000, tetapi operasi pertama sudah berbeda.
Dengan drawdown hanya pada titik saldo yang disebut, A turun Rp60.000 dari puncak Rp1.080.000: sekitar 5,56%. B turun Rp60.000 dari puncak awal Rp1.000.000: 6%. Tidak diasumsikan lintasan intratransaksi, sehingga ini bukan maximum equity drawdown dari tick lengkap. Saldo akhir yang cocok tidak membuktikan dua run mereproduksi keputusan yang sama. Cari peristiwa pertama berbeda; jangan menambah field baru pada skema alat untuk menutupi kekurangan arsip.
Hasil akhir bukan pengganti urutan eksekusi yang dapat ditelusuri.
Pada layar kecil, gulir diagram mendatar atau perbesar. Nilai dan kesimpulan juga tersedia dalam teks di bawah.
- A: +80.000, lalu −60.000
- Akhir Rp1.020.000 – Puncak Rp1.080.000; penurunan 60.000/1.080.000≈5,56%.
- B: −60.000, lalu +80.000
- Akhir Rp1.020.000 – Puncak awal Rp1.000.000; penurunan 6%.
Bagaimana jika semua deklarasi masih sama?
Cari eksekusi pertama yang berbeda: waktu sinyal, simbol, sisi harga, jumlah serta alasan masuk/keluar. Saldo akhir dapat menutupi perbedaan sejak pembacaan indikator pertama. Catat pula keputusan tidak bertransaksi. Pada run terkontrol, ubah satu kondisi dan simpan laporan sebelumnya. Mengubah beberapa pengaturan sekaligus menyulitkan penelusuran penyebab.
Periksa dependensi file dan inisialisasi program. Dokumentasi tester membedakan lingkungan agent dari terminal, termasuk global variables dan operasi file. Jika program memakai angka acak, simpan cara inisialisasinya. Jangan menyalahkan cache untuk semua perbedaan, atau menghapus arsip sebagai tindakan pertama. Bila mengompilasi ulang, simpan executable lama serta catat revisi dan build.
Manifest cocok merupakan awal pemeriksaan lebih rinci, bukan sertifikat reproduktibilitas. Jangan otomatis memilih laba lebih besar atau menyebut hasil lebih kecil sebagai kesalahan platform. Register versi dan bukti membahas validasi lanjut; panduan MT4/MT5 membahas pengaturan.
Langkah setelah membandingkan run
- Simpan laporan A dan B terpisah, lengkapi tiga belas kolom serta hubungan identitas ke arsip kode, data dan pengaturan. Tandai informasi yang belum diketahui.
- Pilih satu perbedaan dan uji konsekuensinya pada contoh pendek yang terkontrol. Untuk komisi, cocokkan jumlah fill serta biaya; untuk tanggal awal, temukan sinyal pertama tersedia. Simpan hasil yang tidak mengonfirmasi penjelasan awal.
- Jika deklarasi sama, cari peristiwa jurnal pertama yang menyimpang. Tentukan informasi yang diperlukan untuk mereproduksi keputusan dan perluas arsip Anda. Kembali menilai strategi setelah menjelaskan penyebab; alat tidak meramal laba masa depan atau menyertifikasi hasil historis.
Periksa pemahaman Anda
Latihan: sekitar 2 menit.
Lihat jawaban dan penjelasan
Benar. A: 10 − 2 = 8 USD; B: 10 − 4 = 6 USD. Selisihnya 2 USD.
Pertanyaan lain
Apakah manifest sama menyertifikasi backtest?
Apakah cache harus dihapus atau EA dikompilasi ulang dahulu?
Mengapa actualStart berbeda dari requestedStart?
Apakah pilih hasil laba terbesar?
Mengapa dua saldo akhir sama belum cukup?
Sumber dan verifikasi
- MetaTrader5 — Strategy Testing
Tes tunggal, optimasi dan evaluasi forward berbeda; parameter dan biaya bagian dari konteks run.
- MetaTrader5 — persiapan riwayat
Riwayat persiapan tidak cukup dapat menggeser awal aktual; periksa jurnal tes tertentu.
- MetaTrader5 — Testing Features
Lingkungan agent, global variables dan lokasi operasi file dapat berbeda dari terminal.
Perhitungan menggunakan asumsi yang dinyatakan secara terbuka. Perhitungan ini tidak menggantikan data pasar terkini atau ketentuan penyedia.
