Program Running | Program yang Berjalan dalam MQL4 | Program MQL4 dan Pengendali Peristiwa

Penawaran Terbatas! Paket Data 25GB Hanya Rp 90.000
Dapatkan kuota besar 25GB untuk semua nomor AS, Loop, dan simPATI hanya dengan Rp 90.000, berlaku selama 30 hari! Internet lancar tanpa khawatir kehabisan kuota, cocok untuk streaming, gaming, dan browsing sepuasnya!
Aktifkan sekarang dan nikmati kebebasan internet!
Read More Beli PaketProgram yang Berjalan dalam MQL4
Setiap skrip dan setiap Expert Advisor berjalan dalam utas terpisah. Semua indikator bekerja di dalam utas antarmuka grafis. Pemrosesan tick dan sinkronisasi riwayat juga dilakukan dalam utas antarmuka grafis. Indikator kustom bekerja dalam utas antarmuka utama. Jika indikator kustom dipanggil dengan fungsi iCustom(), indikator ini berjalan dalam utas program yang memanggilnya. Fungsi library (yang diimpor) bekerja di dalam utas program pemanggilnya juga.
Saat menjalankan Expert Advisor, pastikan bahwa ia memiliki lingkungan perdagangan yang aktual dan dapat mengakses riwayat simbol dan periode yang diperlukan, serta melakukan sinkronisasi data antara terminal dan server. Untuk semua prosedur ini, terminal menyediakan penundaan awal tidak lebih dari 5 detik, setelah itu Expert Advisor akan dijalankan dengan data yang tersedia.
Ringkasan Program MQL4
Program | Menjalankan | Catatan |
---|---|---|
Skrip | Sebuah utas terpisah, jumlah utas untuk skrip sama dengan jumlah skrip | Skrip yang berjalan dalam loop tidak dapat menghentikan program lainnya |
Expert Advisor | Sebuah utas terpisah, jumlah utas untuk Expert Advisor sama dengan jumlah Expert Advisor | Expert Advisor dalam loop tidak dapat menghentikan program lainnya |
Indikator | Semua indikator berbagi sumber daya dari utas antarmuka grafis terminal | Loop tak terbatas dalam satu indikator akan menghentikan kerja terminal |
Pengendali Peristiwa
Program hanya menerima peristiwa dari grafik tempat ia dijalankan. Peristiwa juga dapat dihasilkan oleh grafik (peristiwa grafik) atau program MQL4 (peristiwa kustom). Pembuatan peristiwa pembuatan atau penghapusan objek grafis pada grafik dapat diaktifkan atau dinonaktifkan dengan menetapkan properti grafik CHART_EVENT_OBJECT_CREATE dan CHART_EVENT_OBJECT_DELETE. Setiap program MQL4 dan setiap grafik memiliki antrean peristiwa masing-masing, di mana semua peristiwa baru yang masuk ditambahkan.
Berikut adalah pengendali peristiwa yang tersedia:
Jenis | Nama Fungsi | Parameter | Aplikasi | Komentar |
---|---|---|---|---|
int | OnInit | tidak ada | Expert Advisor, indikator, dan skrip | Pengendali peristiwa Inisialisasi. Memungkinkan penggunaan tipe pengembalian void. |
void | OnDeinit | const int alasan | Expert Advisor, indikator, dan skrip | Pengendali peristiwa Deinisialisasi. |
void | OnStart | tidak ada | skrip | Pengendali peristiwa Mulai. |
int | OnCalculate | const int rates_total, const int prev_calculated, const datetime &Time[], const double &Open[], const double &High[], const double &Low[], const double &Close[], const long &TickVolume[], const long &Volume[], const int &Spread[] | indikator | Pengendali peristiwa untuk menghitung semua harga. |
void | OnTick | tidak ada | Expert Advisor | Pengendali peristiwa NewTick. Saat peristiwa penerimaan tick baru sedang diproses, tidak ada peristiwa jenis ini lainnya yang diterima. |
void | OnTimer | tidak ada | Expert Advisor dan indikator | Pengendali peristiwa Timer. |
double | OnTester | tidak ada | Expert Advisor | Pengendali peristiwa Tester. |
void | OnChartEvent | const int id, const long &lparam, const double &dparam, const string &sparam | Expert Advisor dan indikator | Pengendali peristiwa ChartEvent. |
Fungsi yang Dilarang dalam Indikator dan Expert Advisor
Indikator, skrip, dan Expert Advisor adalah program yang dapat dieksekusi yang ditulis dalam MQL4. Mereka dirancang untuk berbagai jenis tugas. Oleh karena itu, ada beberapa pembatasan pada penggunaan fungsi tertentu, tergantung pada jenis program. Fungsi berikut dilarang dalam indikator:
- OrderSend();
- SendFTP();
- Sleep();
- ExpertRemove();
- MessageBox();
Semua fungsi yang dirancang untuk indikator dilarang dalam Expert Advisor dan skrip:
- SetIndexBuffer();
- IndicatorSetDouble();
- IndicatorSetInteger();
- IndicatorSetString();
Library bukanlah program independen dan dieksekusi dalam konteks program MQL4 yang memanggilnya: skrip, indikator, atau Expert Advisor. Oleh karena itu, pembatasan di atas juga berlaku untuk library yang dipanggil.
Memuat dan Membongkar Indikator
Indikator dimuat dalam kasus berikut:
- indikator dilampirkan ke grafik;
- terminal dimulai (jika indikator telah dilampirkan ke grafik sebelum terminal dimatikan);
- memuat template (jika indikator yang dilampirkan pada grafik tercantum dalam template);
- perubahan profil (jika indikator dilampirkan ke salah satu grafik profil);
- perubahan simbol dan/atau kerangka waktu grafik, tempat indikator dilampirkan;
- setelah kompile ulang yang berhasil dari indikator (jika indikator sudah dilampirkan ke grafik);
- perubahan parameter input indikator.
Indikator dibongkar dalam kasus berikut:
- ketika indikator dilepas dari grafik;
- penutupan terminal (jika indikator sudah dilampirkan ke grafik);
- memuat template (jika indikator dilampirkan ke grafik);
- penutupan grafik, tempat indikator dilampirkan;
- perubahan profil (jika indikator dilampirkan ke salah satu grafik profil yang diubah);
- perubahan simbol dan/atau kerangka waktu grafik, tempat indikator dilampirkan;
- perubahan parameter input indikator.
Memuat dan Membongkar Expert Advisor
Expert Advisor dimuat dalam kasus berikut:
- ketika Expert Advisor dilampirkan ke grafik;
- terminal dimulai (jika Expert Advisor telah dilampirkan ke grafik sebelum terminal dimatikan);
- memuat template (jika Expert Advisor yang dilampirkan pada grafik tercantum dalam template);
- perubahan profil (jika Expert Advisor dilampirkan ke salah satu grafik profil);
- koneksi ke akun, bahkan jika nomor akun sama (jika Expert Advisor sudah dilampirkan ke grafik sebelum otorisasi terminal di server).
Expert Advisor dibongkar dalam kasus berikut:
- ketika Expert Advisor dilepas dari grafik;
- jika Expert Advisor baru dilampirkan ke grafik, jika Expert Advisor lain sudah dilampirkan, Expert Advisor tersebut dibongkar;
- penutupan terminal (jika Expert Advisor sudah dilampirkan ke grafik);
- memuat template (jika Expert Advisor dilampirkan ke grafik);
- penutupan grafik, tempat Expert Advisor dilampirkan;
- perubahan profil (jika Expert Advisor dilampirkan ke salah satu grafik profil yang diubah);
- perubahan akun yang terhubung ke terminal (jika Expert Advisor sudah dilampirkan ke grafik sebelum otorisasi terminal di server);
- pemanggilan fungsi ExpertRemove().