Dalam artikel ini
Setelah membaca artikel ini…
- Rekonsiliasi hasil Ask/Bid dengan perubahan titik tengah tanpa menghitung spread dua kali.
- Kenali kebocoran waktu label dan batas jumlah transaksi sebagai bukti.
- Hitung ulang kategori laba/rugi serta profit factor setelah seluruh biaya.
Pelajari istilah tanpa meninggalkan artikel
Bid dan Ask (harga jual dan beli) Spread (selisih Bid–Ask) Backtesting (uji data historis) Bank sentral Komisi DrawdownTingkat kemenangan historis yang tinggi saja belum membuktikan keunggulan. Backtest mengevaluasi aturan eksplisit pada data yang ditentukan dengan model eksekusi tertentu. Pengujian yang teliti pun tidak menjamin hasil masa depan; tujuannya menemukan apa yang dapat dan tidak dapat disimpulkan dari percobaan yang dapat direproduksi.
Mengapa menguji aturan pada data historis?
Ekspektasi historis positif adalah bukti tentang sampel yang diuji. Hasil dapat berasal dari kebetulan, seleksi, atau penyesuaian berlebihan. Periksa data yang benar-benar disisihkan, biaya, dan ketahanan sebelum menarik kesimpulan lebih luas. Tidak ada hak otomatis untuk berpindah ke akun live setelah hasil positif.
Aturan harus menetapkan keputusan dan waktunya
Tulis simbol, timeframe, input sinyal, waktu order, aturan keluar, serta perhitungan ukuran posisi. Pada model aturan harian, bandingkan penutupan bar yang sudah selesai dengan high bar sebelumnya, lalu kirim order hanya setelah penutupan itu tersedia. Menggunakan close final untuk masuk pada open yang lebih awal di bar sama memakai informasi masa depan. Harga open berikutnya pun bukan fill yang dijamin.
Pengaturan EMA 50/200, RSI(14) di bawah 70, sentuhan rata-rata 20, stop 1,5 ATR(14), target 2,5 ATR, dan risiko 1% ekuitas dapat menjadi bagian spesifikasi hipotetis. Itu belum menjawab kapan sinyal tersedia, sisi harga, order, biaya, atau sizing diskret. Tetapkan pula tindakan jika posisi sudah ada, data hilang, atau margin tidak cukup. Pengaturan indikator tidak menyelesaikan keputusan tersebut.
Mencari keunggulan trading membahas hubungan hipotesis dan pengujian. Hasil historis dapat membantah aturan yang diajukan, tetapi angka positif tetap perlu penilaian biaya, seleksi, dan ketidakpastian. Hubungkan proses ini dengan pencatatan rutin di bagian praktik perpustakaan.
Data harus sesuai instrumen dan model eksekusi
Futures mata uang, spot OTC, dan CFD merupakan kontrak berbeda. Data futures terpusat tidak otomatis menggantikan data strategi spot ritel. Catat penyedia, produk, sisi kuotasi, zona waktu, celah, serta versi berkas. Pilih periode riset yang mencakup kondisi relevan dan nyatakan keterbatasannya.
Tidak ada ambang universal 100 transaksi untuk signifikansi statistik. Bukti yang diperlukan bergantung pada penyebaran hasil, ketergantungan antarobservasi, besar efek, seleksi ide, serta cakupan rezim. Laporkan ketidakpastian dan ukuran sampel efektif, bukan hanya jumlah baris. Menambah instrumen dapat mengubah hipotesis, bukan sekadar memperkuat bukti yang sama.
OHLC tidak menetapkan urutan stop dan target yang sama-sama tersentuh dalam satu bar. Dokumentasi rinci MT5 menjelaskan bahwa bar menit tanpa riwayat tick dapat memakai tick yang dibangkitkan bahkan ketika pengujian memakai real ticks. Periksa dataset dan jurnal, bukan nama mode saja. Untuk keranjang instrumen, simpan seleksi yang tersedia pada waktu itu; untuk rilis makro, pakai nilai yang sudah dipublikasikan saat keputusan, bukan revisi yang muncul kemudian.
Rekonsiliasi harga sebelum membebankan spread
Hasil dari Ask masuk dan Bid keluar berbeda dasar pengukurannya dari perubahan titik tengah. Asumsi sumber: dua kuotasi serentak untuk instrumen fiktif yang sama, masuk Bid/Ask 100/102, keluar 103/105. Titik tengah adalah rata-rata kedua sisi. Satu unit jumlah, eksekusi tepat pada Ask dan Bid yang ditetapkan, tanpa komisi, pendanaan, gap, atau slippage. Ini bukan kuotasi FX terkini atau fill yang dijamin.
Geser diagram secara mendatar bila perlu.
Ask 102 ke Bid 103 memberi 103 − 102 = +1 satuan harga. Titik tengah berubah 104 − 101 = +3. Harga beli satu di atas titik tengah dan harga jual satu di bawahnya, sehingga +3 − 1 − 1 = +1. Kedua cara merekonsiliasi model yang sama.
Spread penuh saat masuk dan keluar masing-masing 2. Mengurangi keduanya dari perubahan titik tengah memberi +3 − 2 − 2 = −1, tidak sesuai eksekusi. Mengurangi spread 2 lagi dari 103 − 102 juga menghitung komponen sama dua kali. Dokumentasi MetaQuotes membedakan harga pembentuk chart dari harga transaksi. Catat asal setiap harga; biaya lain membutuhkan model terpisah.
Biaya harus diterapkan pada seluruh transaksi
Model eksekusi menentukan biaya yang sudah masuk harga dan biaya yang terpisah. Ask masuk/Bid keluar sudah memasukkan spread dalam hasil harga. Tambahkan komisi, pendanaan, dan perbedaan eksekusi yang dinyatakan tanpa menduplikasi spread. Spread hipotetis 0,8 pip adalah 0,4% dari target 200 pip, tetapi 16% dari target 5 pip. Angka tersebut bagian dari jarak target, bukan bagian dari edge atau estimasi hasil transaksi nyata.
Contoh sumber yang terpisah memakai PLN: 50 transaksi tertutup, 30 laba masing-masing PLN 40 dan 20 rugi masing-masing PLN 50 sebelum biaya. Total laba PLN 1.200, total rugi PLN 1.000, hasil PLN 200, rata-rata PLN 4. Terapkan biaya penuh yang sama pada setiap transaksi, termasuk transaksi rugi.
| Biaya per transaksi | Total bersih | Rata-rata bersih | Profit factor bersih |
|---|---|---|---|
| PLN 0 | PLN 200 | PLN 4 | 1,20 |
| PLN 2 | PLN 100 | PLN 2 | Sekitar 1,10 |
| PLN 4 | PLN 0 | PLN 0 | 1,00 |
Pada biaya PLN 2, setiap laba menjadi PLN 38 dan setiap rugi PLN 52. Profit factor ialah 1.140/1.040 ≈ 1,10. Hanya asumsi biaya yang berubah; ini aritmetika, bukan catatan strategi teramati. Uji perubahan biaya dan fill yang masuk akal. Saringan biaya dua kali rata-rata adalah pilihan aturan, bukan margin keamanan universal atau bukti profitabilitas.
Model IDR: transaksi nol dapat menjadi rugi
Model tambahan terpisah memakai tiga transaksi tertutup dengan hasil harga +30.000, 0, dan −10.000 IDR. Hasil sudah memakai sisi eksekusi yang relevan, sehingga spread tidak dikurangkan lagi. Semua biaya terpisah diringkas sebagai biaya penuh c per transaksi, sama pada ketiganya. Tidak ada posisi terbuka, pajak, pendanaan lain, arus kas tambahan, atau perubahan ukuran. Angka diciptakan untuk latihan, bukan konversi dari tabel PLN atau biaya broker.
Hitung biaya pada setiap transaksi, lalu bentuk ulang kelompok hasil bersih. Mengurangi biaya hanya dari pemenang melebihkan hasil.
Pada layar kecil, gulir diagram mendatar atau perbesar. Nilai dan kesimpulan juga tersedia dalam teks di bawah.
- Tanpa biaya
- Total +20.000 IDR · PF 3 – Laba 30.000; rugi 10.000; transaksi nol belum masuk keduanya.
- Biaya 5.000 IDR per transaksi
- Total +5.000 IDR · PF 1,25 – Hasil +25.000, −5.000, −15.000; penyebut rugi menjadi 20.000.
- Biaya 10.000 IDR per transaksi
- Total −10.000 IDR · PF 2/3 – Hasil +20.000, −10.000, −20.000; biaya tiga transaksi 30.000.
Tanpa biaya, total +20.000 dan profit factor 30.000/10.000 = 3. Dengan c = 5.000 IDR, hasil menjadi +25.000, −5.000, dan −15.000: total +5.000, rata-rata sekitar +1.666,67 IDR, profit factor 25.000/(5.000 + 15.000) = 1,25. Transaksi yang sebelumnya nol sekarang masuk jumlah kerugian. Pada c = 10.000, hasil +20.000, −10.000, −20.000 memberi total −10.000 dan profit factor 2/3 ≈ 0,67.
Mengurangi biaya hanya dari transaksi pemenang memberi hasil salah: laba 25.000 dan rugi 10.000, total +15.000 serta profit factor 2,5 pada c = 5.000. Dua biaya yang terlewat berjumlah 10.000 IDR. Untuk 0 ≤ c ≤ 30.000, pembilang laba ialah 30.000 − c dan penyebut rugi 10.000 + 2c. Total selalu 20.000 − 3c; titik impas model c = 20.000/3 ≈ 6.666,67 IDR. Ini batas aritmetis model yang ditetapkan, bukan batas biaya aman strategi masa depan.
Seleksi histori dan kebocoran informasi
Memilih hasil terbaik dari banyak parameter, instrumen, dan pembagian sampel dapat menyesuaikan keunikan histori. Catat seluruh percobaan, termasuk ide yang dibuang di luar optimiser. Hasil terpilih yang kuat saja tidak membuktikan overfitting, tetapi perlu evaluasi terpisah. Membatasi optimisasi ke dua parameter tidak menghapus seleksi lain.
Bekukan aturan serta biaya sebelum menguji. Hasil pada histori yang dipakai memilih strategi masih membutuhkan pengamatan baru yang benar-benar terpisah. Bekukan pembagian sebelum tuning dan sisihkan data evaluasi; 70/30 hanya salah satu desain. Hasil evaluasi lebih lemah dapat berasal dari rezim atau variasi sampel, selain overfitting. Jika strategi direvisi setelah melihat hasil test, periode itu sudah menjadi data pengembangan; catat penggunaannya.
Urutan juga bergantung pada kapan hasil diketahui. Model sumber: keputusan pada t mendapat label pada t + 3. Test pertama dimulai pada t10 dan fitting harus selesai sebelumnya. Dari kandidat keputusan t1–t9, hanya t1–t6 memiliki hasil sebelum t10. Keputusan t6 diberi label pada t9; label t7–t9 muncul pada t10–t12 dan tidak boleh masuk fitting itu. Harga lebih awal masih mungkin dibutuhkan untuk indikator test. Pengecualian label ini menyelesaikan overlap yang dinyatakan, bukan seluruh kebocoran. Parameter gap pada TimeSeriesSplit mengecualikan baris akhir train; besar gap harus sesuai ketersediaan informasi, bukan dipilih tanpa memeriksa label.
Membaca statistik tanpa menciptakan riwayat
Asumsi hipotetis peluang menang 0,54, rata-rata kemenangan 2,3R, dan kerugian 1R memberi ekspektasi bruto 0,54 × 2,3 − 0,46 = 0,782R. Profit factor sekitar 2,70 dari 1,242/0,46. Asumsi tersebut tidak menetapkan drawdown atau total imbal hasil; urutan, biaya, eksposur, serta posisi terbuka belum diberikan.
Secara terpisah, imbal hasil yang ditetapkan +87% selama tepat lima tahun berarti laju majemuk 1,87^(1/5) − 1 ≈ 13,34% per tahun. Angka itu tidak diturunkan dari statistik transaksi tadi. Jangan menambahkan jumlah transaksi, periode kalender, drawdown, atau riwayat akun fiktif untuk membuatnya terlihat terukur.
Langkah kerja yang dapat direproduksi
Hubungkan laporan dengan dataset, versi aturan, dan model eksekusi yang dapat diidentifikasi. Reproduksi transaksi satu per satu, termasuk satu rugi, satu sinyal hilang, serta satu kasus intrabar ambigu. Demo dapat menguji operasi saat data datang; hasil positif tidak mewajibkan akun live.
- Simpan aturan mekanis dalam berkas teks, termasuk waktu informasi tersedia, order, sizing, serta tindakan untuk input ambigu atau hilang. Bandingkan sinyal yang direproduksi secara independen dan selidiki perbedaan.
- Tetapkan lama data serta pembagian kronologis sebelum tuning. Lima tahun untuk swing atau dua tahun untuk day trading bukan syarat universal; sesuaikan pertanyaan riset dan bukti yang tersedia.
- Masukkan spread yang belum termuat harga, komisi, pendanaan, dan asumsi slippage. Uji sensitivitas. Biaya yang menyerap lebih dari 20% laba bruto bukan ambang penolakan universal.
- Catat jumlah transaksi, ketergantungan, penyebaran, dan ketidakpastian. Seratus transaksi tidak otomatis signifikan; tambahan sejarah atau instrumen bisa mengubah sampel serta hipotesis.
- Bandingkan perilaku demo dengan model yang dibekukan. Selidiki selisih; tiga bulan demo tidak menjamin kesiapan atau keuntungan live. Analisis walk-forward membahas evaluasi periode berikutnya.
Pelajari data sumber nyata
Studi kalender kurs referensi ECB 2016–2025 (bahasa Indonesia) melaporkan 2.560 publikasi EUR/USD dan 49 hari kerja tanpa publikasi yang sesuai penutupan TARGET terjadwal pada snapshotnya; data, grafik, serta kode tersedia di sana. Ini studi kelengkapan publikasi, bukan data OHLC, spread, atau jalur tick. Kurs referensi harian tidak dapat menetapkan urutan stop dan target intraday. Angka tersebut berasal dari studi tertaut, bukan perhitungan ulang artikel ini.
Periksa pemahaman Anda
Latihan: sekitar 2 menit.
Lihat jawaban dan penjelasan
103 − 102 = 1. Jangan mengurangi ulang spread yang sudah tercermin pada Ask dan Bid.
Pertanyaan lain
Apa itu overfitting pada strategi?
Perangkat lunak mana yang tepat?
Berapa banyak histori diperlukan?
Seperti apa hasil backtest yang realistis?
Mengapa transaksi nol masuk penyebut rugi setelah biaya?
Sumber dan verifikasi
- MetaQuotes — Strategy Testing
Pengaturan, mode, jurnal, serta periode forward historis; bukan hasil uji artikel ini.
- MetaQuotes — Real and Generated Ticks
Bid/Ask dan fallback pembangkitan tick bila bar menit tidak memiliki tick.
- scikit-learn — TimeSeriesSplit
Pembagian urutan waktu dan parameter gap; tidak otomatis mengaudit seluruh kebocoran label.
- Studi sumber — kalender kurs referensi ECB 2016–2025
Kelengkapan publikasi snapshot; kurs referensi bukan data eksekusi intraday.
Perhitungan menggunakan asumsi yang dinyatakan secara terbuka. Perhitungan ini tidak menggantikan data pasar terkini atau ketentuan penyedia.
