Beranda > Blog > Mengapa EA Berbasis Candle Tertutup Tidak Repaint

MQL5Desain EABacktest

Mengapa EA Berbasis Candle Tertutup Tidak Repaint

Dipublikasikan: 2026-11-01Waktu baca: sekitar 3 menit
⏱ Artikel ini mencerminkan informasi per tanggal publikasinya. Angka kinerja EA (PF, DD, imbal hasil tahunan) berubah seiring trading live dan validasi ulang — periksa yang terbaru di halaman EA. Lihat hasil EA terbaru →

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
AspekBar yang sedang terbentuk (shift 0)Candle tertutup (shift 1 dst.)
Nilai bahan keputusanBerubah sampai bar tertutupBiasanya tidak berubah
Reproduksibilitas sinyalRendahTinggi
Kecepatan entriCepatLebih lambat karena menunggu bar tertutup
Pengaruh metode tick di testerKeputusan itu sendiri bisa berubahPengaruh 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.

  1. 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).
  2. 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.
  3. 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.
  4. 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
  • iBarShift cenderung 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

📧 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 ↗

Komentar & pertanyaan