Mengapa EA Berbasis Candle Tertutup Tidak Repaint
Daftar Isi
- Mengapa bar yang sedang terbentuk berbahaya
- Desain penetapan sinyal
- CopyRates: tentukan posisi awal dan urutan secara eksplisit
- iBarShift menjadi jebakan di timeframe yang lebih tinggi
- Mencegah keputusan ganda saat restart
- Langkah pengecekan yang bisa dilakukan pengguna
- Batasan dan hal yang perlu diwaspadai
- Ringkasan
Kesimpulannya: sinyal EA yang hanya memakai candle tertutup sulit berubah karena bahan keputusannya sudah berhenti bergerak pada saat itu. Pada bar yang sedang terbentuk, harga penutupan, high, dan low bisa berubah di tick berikutnya. Sebaliknya, empat harga (OHLC) dari bar yang sudah tertutup biasanya tidak bergerak lagi.
Meski begitu, membaca candle tertutup belum tentu aman sepenuhnya. Tergantung cara indikator menghitung dan cara timeframe yang lebih tinggi ditangani, nilai dari masa depan bisa ikut tercampur walaupun Anda merasa sudah memakai candle tertutup.
Mengapa bar yang sedang terbentuk berbahaya
Di MQL5, shift 0 adalah bar yang sedang terbentuk, dan shift 1 adalah candle tertutup terakhir. Harga penutupan di shift 0 hanyalah "harga saat ini". Jika dipakai untuk mengambil keputusan, masalah berikut muncul:
- Kondisi bisa terpenuhi lalu hilang di setiap tick, sehingga dasar entri yang sudah dieksekusi bisa lenyap belakangan
- Order tereksekusi oleh sinyal sesaat yang tidak tersisa di chart setelah bar tertutup
- Di tester, hasil mudah berubah tergantung cara tick dibangkitkan. Jika pergerakan di dalam bar berbeda dari kondisi nyata, selisihnya langsung memengaruhi hasil
| Aspek | Bar yang sedang terbentuk (shift 0) | Candle tertutup (shift 1 dst.) |
|---|---|---|
| Nilai bahan keputusan | Berubah sampai bar tertutup | Biasanya tidak berubah |
| Reproduksibilitas sinyal | Rendah | Tinggi |
| Kecepatan entri | Cepat | Lebih lambat karena menunggu bar tertutup |
| Pengaruh metode tick di tester | Keputusan itu sendiri bisa berubah | Pengaruh pada keputusan kecil (pada exit tetap ada) |
Memakai bar yang sedang terbentuk tidak selalu salah. Ada desain yang memang menangkap breakout secara instan. Dalam kasus itu, Anda harus mengakui bahwa EA bergantung pada pergerakan di dalam bar, dan menekankan pengujian dengan tick nyata.
Perbandingan Broker Direkomendasikan →
🎁 Unduh EA Gratis📧 Kursus email gratis (8 email) + paket 13 indikator MT5 khusus pelanggan
Segera setelah mendaftar, Anda menerima tautan unduhan paket khusus pelanggan berisi 13 indikator MT5 kami: file terkompilasi (.ex5), kode sumber, dan panduan pemasangan. Lalu 8 email tentang dasar-dasar trading algoritmik, cara membaca backtest dengan benar, dan memilih broker (satu per hari selama 5 hari pertama, lalu 7, 14, dan 30 hari setelah mendaftar). Anda juga mendapat pemberitahuan sebelum setiap kenaikan harga versi yang dijual di MQL5 Market (harga peluncuran yang naik bertahap seiring penjualan). Di situs ini EA kami gratis dengan akun riil di broker mitra.
* Privasi sangat dilindungi. Anda dapat berhenti berlangganan kapan saja.
Desain penetapan sinyal
CopyRates: tentukan posisi awal dan urutan secara eksplisit
Baca candle tertutup hanya sekali, pada tick pertama bar baru.
datetime g_lastBar = 0;
void OnTick()
{
datetime t = iTime(_Symbol, _Period, 0);
if(t == 0 || t == g_lastBar) return;
MqlRates r[];
ArraySetAsSeries(r, true);
if(CopyRates(_Symbol, _Period, 1, 2, r) != 2) return;
g_lastBar = t;
// r[0] adalah candle tertutup terakhir, r[1] satu bar sebelumnya
}
Ada tiga poin penting. Pertama, posisi awal diset ke 1 agar bar yang sedang terbentuk tidak masuk dalam rentang data. Kedua, urutan ditentukan dengan ArraySetAsSeries. Ketiga, jika pengambilan data gagal, jangan perbarui g_lastBar dan coba lagi pada tick berikutnya. Jika Anda lupa menentukan urutan, elemen pertama array adalah bar paling lama.
iBarShift menjadi jebakan di timeframe yang lebih tinggi
Saat merujuk timeframe yang lebih tinggi, iBarShift mengembalikan "bar yang mengandung waktu tersebut". Jika Anda memasukkan waktu saat ini, yang dikembalikan biasanya bar timeframe lebih tinggi yang masih terbentuk.
int s = iBarShift(_Symbol, PERIOD_H1, TimeCurrent(), false);
if(s < 0) return;
double closedH1 = iClose(_Symbol, PERIOD_H1, s + 1);
Jika ingin bar timeframe lebih tinggi yang sudah tertutup, tunjuk satu bar lebih lama seperti di atas.
Repaint yang paling umum terjadi pada indikator yang menggambar nilai timeframe lebih tinggi di chart timeframe lebih rendah. Jika setiap bar lama di timeframe rendah diberi harga penutupan dari bar timeframe tinggi yang mengandung waktu yang sama, nilai akhir yang saat itu belum ada akan tergambar di masa lalu. Di chart tampak tepat sasaran, tetapi secara real-time keputusan yang sama tidak bisa dibuat.
Jika argumen keempat exact diset false, bar terdekat dikembalikan saat bar yang dicari tidak ada. Ini membuat data yang hilang sulit disadari, jadi sebaiknya periksa juga waktu bar yang diambil. Data simbol atau timeframe lain kadang terlambat diperbarui, jadi pastikan dulu bahwa bar tersebut memang bar pada waktu yang diharapkan sebelum mengambil keputusan.
Mencegah keputusan ganda saat restart
g_lastBar pada kode di atas kembali ke nilai awal ketika EA di-restart. Agar candle tertutup yang sama tidak dinilai ulang dan menghasilkan entri ganda, desain perlu memeriksa posisi yang sedang dipegang dan waktu eksekusi terakhir.
Langkah pengecekan yang bisa dilakukan pengguna
Meski tidak bisa membaca source code, Anda tetap bisa memastikannya sampai batas tertentu dengan cara berikut.
- Lihat di visual mode: Di visual mode tester, periksa apakah waktu entri berkumpul di sekitar awal bar. Jika order sering tereksekusi di tengah bar, kemungkinan EA memakai bar yang sedang terbentuk (exit adalah hal yang berbeda).
- Bandingkan dengan mengganti modeling: Untuk periode dan setelan yang sama, coba open prices only, every tick, dan every tick based on real ticks. Jika jumlah atau waktu entri bergeser jauh, curigai ketergantungan pada pergerakan di dalam bar.
- Catat panah indikator: Simpan waktu munculnya panah lewat screenshot, lalu bandingkan dengan beberapa bar kemudian. Jika posisinya berubah atau panahnya hilang, berarti indikator me-repaint.
- Tanyakan ke penyedia: Tanyakan apakah keputusan diambil dari candle tertutup, dan bagaimana timeframe yang lebih tinggi ditangani.
Semuanya hanya bukti tidak langsung, dan tidak satu pun cukup untuk membuktikan "tidak ada repaint". Jika ingin mencoba indikator, latih langkah-langkahnya dengan indikator gratis, dan untuk pemasangan EA, lihat cara setting EA.
Batasan dan hal yang perlu diwaspadai
Keputusan berbasis candle tertutup juga punya sisi kurang menguntungkan.
- Entri terlambat: Saat menunggu bar tertutup, harga terus bergerak sehingga Anda bisa masuk di posisi yang kurang menguntungkan. Pada kenaikan atau penurunan tajam, selisihnya bisa besar.
- Biaya di awal bar: Pada desain yang order-nya menumpuk di tick pertama bar baru, EA bisa terkena spread yang lebar atau gap pembukaan.
- Indikator yang merujuk masa depan tidak bisa dicegah: Indikator seperti ZigZag yang bentuknya berubah belakangan, atau yang butuh bar berikutnya untuk konfirmasi, bisa berubah nilainya bahkan di candle tertutup, tergantung posisi yang dibaca.
- Candle tertutup pun berbeda antarbroker: Jika waktu server atau feed harga berbeda, OHLC juga berbeda, sehingga EA yang sama bisa menghasilkan keputusan berbeda di broker lain. Kemungkinan histori dikoreksi belakangan juga tidak bisa dikesampingkan.
- Exit terjadi di dalam bar: Walaupun keputusan entri berbasis candle tertutup, stop loss dan take profit tereksekusi di tengah bar. Bagian ini tetap bergantung pada kualitas tick.
Yang terpenting, tidak repaint tidak sama dengan menguntungkan. Di antara EA kami pun ada yang hasil verifikasi data historisnya bagus, tetapi forward test di akun demo-nya minus. Memakai candle tertutup adalah salah satu prasyarat agar hasil verifikasi bisa dipercaya, bukan indikator performa di masa depan. Selain itu, apakah candle tertutup dipakai berbeda-beda di setiap desain EA, jadi periksa satu per satu saat memilih EA, lalu nilai bersama angka di ranking hasil pengukuran. Cara berpikir verifikasi terkait kami rangkum di pengetahuan EA & MT5.
Ringkasan
- Nilai bar yang sedang terbentuk bergerak sampai bar tertutup, sehingga sinyal bisa hilang atau berubah
- Jika keputusan diambil dari candle tertutup, bahan keputusan terkunci dan pengaruh metode pembangkitan tick juga lebih kecil
- Pada
CopyRates, tentukan posisi awal dan urutan secara eksplisit, lalu coba lagi jika pengambilan data gagal iBarShiftcenderung mengembalikan bar timeframe tinggi yang masih terbentuk, jadi geser shift jika ingin membaca candle tertutup- Penggambaran timeframe tinggi dan indikator yang merujuk masa depan adalah contoh khas repaint
- Candle tertutup punya masalah keterlambatan dan biaya, dan tidak menjanjikan keuntungan
Terkait
2026-07-14
Hasil Backtest Massal 43 EA Emas Populer Selama 11.5 Tahun
2026-10-29
MQL5 OnTick vs OnTimer: Pemakaian dalam Desain EA
2026-10-22
Jumlah Trade Sama, Keandalan Bisa Beda: Soal Independensi
2026-10-12
Uji Dark Algo MT5: PF 2.08, DD Maks 35.05% (Kondisi Sama)
📧 Kursus email gratis (8 email) + paket 13 indikator MT5 khusus pelanggan
Segera setelah mendaftar, Anda menerima tautan unduhan paket khusus pelanggan berisi 13 indikator MT5 kami: file terkompilasi (.ex5), kode sumber, dan panduan pemasangan. Lalu 8 email tentang dasar-dasar trading algoritmik, cara membaca backtest dengan benar, dan memilih broker (satu per hari selama 5 hari pertama, lalu 7, 14, dan 30 hari setelah mendaftar). Anda juga mendapat pemberitahuan sebelum setiap kenaikan harga versi yang dijual di MQL5 Market (harga peluncuran yang naik bertahap seiring penjualan). Di situs ini EA kami gratis dengan akun riil di broker mitra.
* Privasi sangat dilindungi. Anda dapat berhenti berlangganan kapan saja.
Punya pertanyaan tentang EA atau Forex?
Anda bisa mengajukannya di forum trading Nattzy (daftar gratis). Pertanyaan di luar artikel ini juga dipersilakan — pengaturan EA, memilih broker, dan lainnya.
Tanya di Nattzy ↗