Beranda > Blog > MQL5 OnTick vs OnTimer: Pemakaian dalam Desain EA

MQL5Pengembangan EAMT5

MQL5 OnTick vs OnTimer: Pemakaian dalam Desain EA

Dipublikasikan: 2026-10-29Waktu baca: sekitar 2 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 →

Kesimpulan: keputusan di candle baru, urusan waktu di OnTimer

Kesimpulannya saya tulis di awal. Untuk EA yang mengambil keputusan trading di timeframe lebih panjang seperti H1 atau H4, cukup lakukan penilaian pada tick pertama setelah candle baru terbentuk. Jika perhitungan yang sama diulang setiap tick, hasilnya tidak berubah, hanya CPU yang terpakai. Sebaliknya, OnTimer dipakai untuk proses yang perlu berjalan meski tidak ada tick, misalnya menulis status ke file saat akhir pekan atau merapikan order pada jam tertentu.

Namun mana yang benar tergantung pada strateginya. Artikel ini merangkum perbedaan kedua mekanisme tersebut dan poin yang bisa Anda periksa sebagai pihak yang memilih EA.

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.

Cara kerja: digerakkan tick dan digerakkan waktu

OnTick (digerakkan tick)

OnTick dipanggil setiap kali harga baru (tick) masuk untuk simbol tempat EA berjalan. Saat pasar bergerak cepat, fungsi ini bisa dipanggil beberapa kali dalam satu detik, dan saat akhir pekan ketika pasar tutup, fungsi ini tidak dipanggil sama sekali.

Ada satu spesifikasi yang perlu Anda ketahui. Tick yang masuk saat proses OnTick sebelumnya belum selesai tidak ditaruh dalam antrean, melainkan dilewati. Artinya, EA dengan proses yang berat akan kehilangan tick ketika harga bergerak tiba-tiba.

OnTimer (digerakkan waktu)

OnTimer dipanggil pada setiap interval yang Anda tentukan lewat EventSetTimer(). Fungsi ini berjalan tanpa bergantung pada pergerakan harga, sehingga tetap dipanggil saat pasar tutup. Satu EA hanya punya satu timer, dan jika prosesnya tersendat, panggilan berikutnya juga dilewati. Selain itu, tidak ada jaminan fungsi ini dipanggil tepat pada interval yang ditetapkan.

ItemOnTickOnTimer
Pemicu panggilanPembaruan hargaBerlalunya waktu tertentu
Saat pasar tutupTidak dipanggilDipanggil
Frekuensi panggilanMakin sering saat pasar bergejolakNyaris konstan
Cocok untukKeputusan entry dan exitRekap berkala, proses yang ditentukan jam
Catatan utamaProses berat membuat tick terlewatTetap berjalan walau belum ada harga baru

Cara menulis strategi frekuensi rendah tanpa membuang CPU

Pada strategi yang mengambil keputusan di H4, sebanyak apa pun OnTick dipanggil selama satu candle berlangsung (4 jam), nilai candle yang sudah closed dan dipakai untuk keputusan tidak berubah. Karena itu, kami pada dasarnya memakai pola yang meloloskan proses berat hanya saat candle berganti, seperti berikut.

datetime g_lastBar = 0;

void OnTick()
{
   datetime cur = iTime(_Symbol, PERIOD_H4, 0);
   if(cur == g_lastBar) return;   // selama masih candle yang sama, tidak melakukan apa-apa
   g_lastBar = cur;
   // di sini keputusan diambil memakai candle yang sudah closed (shift 1)
}

Hal penting lainnya: handle indikator dibuat sekali saja di OnInit, bukan dibuat ulang di dalam OnTick setiap kali. Jika Anda memakai OnTimer, panggil EventKillTimer() di OnDeinit untuk menghentikan timer.

Jika di VPS Anda memasang EA pada banyak chart, perbedaan seperti ini akan terlihat sebagai beban CPU. Pertimbangan memilih VPS kami rangkum di Informasi VPS.

Yang bisa Anda periksa saat memilih EA

Walaupun kode di dalamnya tidak bisa dilihat, beberapa hal berikut masih bisa diperiksa sampai batas tertentu.

  • Deskripsi dan parameter: apakah ada pengaturan seperti "keputusan hanya pada candle baru"
  • Penggunaan CPU di VPS: jika beban turun jelas setelah satu EA dilepas, bisa jadi EA itu menjalankan proses berat di setiap tick
  • Log Expert: periksa apakah output yang sama berderet di setiap tick
  • Hasil tester: untuk EA yang memutuskan di harga open candle, hasil mode "Open prices only" dan "Every tick" seharusnya tidak jauh berbeda. Jika selisihnya besar, berarti EA juga bereaksi terhadap pergerakan harga di tengah candle

Dasar-dasar cara memasang dan mengatur EA ada di Cara Pengaturan EA.

Keterbatasan dan hal yang perlu diwaspadai

Sisi yang kurang menguntungkan juga perlu disebutkan.

  • Risiko di tengah candle tidak terpantau: jika keputusan dibatasi pada candle baru, EA tidak bereaksi terhadap perubahan mendadak di tengah candle. Kalau stop loss tidak dirancang sebagai stop order yang menempel pada order, kerugian yang tak terduga bisa terjadi.
  • Keterlambatan candle baru: meski candle baru sudah terbentuk, proses belum berjalan sampai tick pertama di candle itu masuk. Pada simbol atau jam dengan pergerakan sepi, keputusan bisa tertunda dari awal candle.
  • OnTimer mudah berbeda antara tester dan kondisi nyata: di tester, timer dipanggil menurut waktu virtual, sehingga intervalnya belum tentu sama dengan di akun sebenarnya.
  • Proses yang ringan tidak mengubah hasil: menurunkan beban CPU tidak membuat EA lebih mudah profit. Bagus tidaknya strategi adalah persoalan yang berbeda.

Pada EA H4 dengan transaksi yang sedikit, seperti ETHEREUM EA, perbedaan desain semacam ini justru makin sulit terlihat. Meski begitu, apa yang bisa diperiksa dari luar ada batasnya. Yang bisa kami pastikan hanyalah kode yang kami tulis sendiri.

Ringkasan

  • OnTick dipanggil saat harga masuk, OnTimer dipanggil pada interval waktu tertentu
  • Event yang masuk saat proses sedang berjalan tidak diantrekan, melainkan dilewati. Proses berat berujung pada tick yang terlewat
  • Pada strategi frekuensi rendah, pola "mengambil keputusan hanya saat candle baru" menghemat CPU
  • Gunakan OnTimer untuk proses yang perlu berjalan di saat tidak ada tick
  • Antisipasi risiko di tengah candle dengan stop order. Proses yang ringan tidak menaikkan hasil trading
  • Pengetahuan lainnya kami rangkum di Pengetahuan EA dan MT5

📧 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