Halo trader! Kali ini kita akan membahas kode sederhana yang mendeteksi 'New Bar' atau 'New Candle' ketika sudah diterima.
Prinsip dasar dari kode ini sangat mudah. Pertama, kode ini menyimpan Waktu dari bar / Candle sebelumnya. Kemudian, kita tambahkan 60 detik (setara dengan 1 menit, dan Anda bisa menambah waktu sesuai kebutuhan) untuk mendapatkan nilai waktu penutupan dari Current Bar / Candle.
Setelah itu,
Waktu Saat Ini = nilai waktu penutupan dari Current Bar / Candle. Ini berarti bar baru telah diterima atau bar saat ini telah ditutup.
Pada kode ini, ada flag (variabel bool 'NewBarReceived') yang menghindari pemanggilan berulang dari blok kode ini, sehingga kode ini hanya dieksekusi sekali per bar / candle. Fungsi Comment(); dan PlaySound("ok.wav"); digunakan untuk memeriksa akurasi dari blok kode. Anda bisa menghapusnya jika tidak diperlukan.
Flag ini akan direset menjadi false ketika waktu saat ini sudah melewati waktu penutupan candle saat ini untuk memeriksa kedatangan bar berikutnya. (Perhatikan komentar untuk lebih jelas).
//+------------------------------------------------------------------+ //| New Bar Detect.mq5 | //| by H A T Lakmal | //| https://t.me/Lakmal846 | //+------------------------------------------------------------------+ bool NewBarReceived = false; // Flag untuk kontrol. //+------------------------------------------------------------------+ //| Fungsi inisialisasi Expert | //+------------------------------------------------------------------+ int OnInit() { //--- buat timer EventSetTimer(60); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Fungsi deinitialisasi Expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- hancurkan timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Fungsi tick Expert | //+------------------------------------------------------------------+ void OnTick() { datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1); datetime TimeCurrentClose = TimePreviousBar + 60; // Waktu Penutupan bar saat ini. datetime Time_Current = TimeCurrent(); if(Time_Current == TimeCurrentClose && NewBarReceived == false) { PlaySound("ok.wav"); // Untuk memeriksa apakah pembacaan berhasil. NewBarReceived = true; // Update flag untuk menghindari pemanggilan berulang. // Kode Anda di sini ----- (Lakukan sesuatu) } else if(Time_Current > TimeCurrentClose) { NewBarReceived = false; // Reset flag untuk pembukaan bar berikutnya. // Kode Anda di sini ----- (Lakukan sesuatu) } Comment("\n" + "\n" + "Waktu Current Bar -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "Waktu Current Close -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" + "Waktu Current -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + "\n" +"\n" + "Bar Baru Diterima -: " + NewBarReceived); // Untuk memeriksa perhitungan } //+------------------------------------------------------------------+ //| Fungsi Timer | //+------------------------------------------------------------------+ void OnTimer() { //--- } //+------------------------------------------------------------------+ //| Fungsi Trade | //+------------------------------------------------------------------+ void OnTrade() { //--- } //+------------------------------------------------------------------+ //| Fungsi ChartEvent | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+
Postingan terkait
- MQL5 Wizard: Mengoptimalkan Sinyal Perdagangan dengan Morning/Evening Stars dan MFI
- MQL5 Wizard: Membuat EA dengan Sinyal Trading Berdasarkan Pola Morning/Evening Stars dan Stochastic
- Menggunakan MQL5 Wizard untuk Sinyal Trading Berdasarkan Pola Candlestick dan CCI
- MQL5 Wizard: Menggunakan Sinyal Trading Berbasis Morning/Evening Stars dan RSI untuk MetaTrader 5
- Menggunakan MQL5 Wizard untuk Sinyal Perdagangan: Pola Hammer/Hanging Man dan RSI