Status VPS hijau dan daftar transaksi yang tenang menjawab pertanyaan berbeda. Untuk mengawasi EA Forex, Anda memerlukan bukti terkini tentang terminal, data pasar yang diperlukan, operasi program, dan order broker saat ini, serta jalur peringatan yang tetap berfungsi ketika terminal pelapor berhenti.
Ini adalah Panduan 4 dalam seri VPS & Stabilitas MT4. Mulailah dengan hosting dan kesinambungan, gunakan Panduan 2 untuk konfigurasi dan Panduan 3 untuk pemulihan. Panduan ini berfokus pada pengamatan operasi normal dan deteksi ketidakpastian sebelum insiden membesar.
Definisikan operasi normal sebelum mendefinisikan kegagalan
EA dapat sehat tanpa membuka transaksi. Filter sesi, batas spread, kelompok posisi yang sudah ada, aturan risiko, atau tidak adanya sinyal valid dapat menjelaskan keadaan tersebut. Pemantauan perlu menguji apakah lingkungan yang dimaksud dapat menjalankan tugas yang didokumentasikan, termasuk mengelola order yang sudah ada, alih-alih menuntut jumlah transaksi minimum.
Catat identitas terminal, akun/server yang dimaksud, simbol dan timeframe yang tepat, versi EA, Inputs yang disetujui, aturan kepemilikan, dan sesi operasional yang diharapkan. Sertakan simbol lain yang diperlukan EA. Tanyakan kepada pengembang status, log, dan perilaku restart yang benar-benar disediakan program. File EX4 tidak otomatis menyediakan heartbeat atau penjelasan lengkap setiap keputusan.
Pisahkan tiga status: normal, masalah yang dikonfirmasi, dan tidak diketahui. Jika dashboard berhenti diperbarui, tampilkan waktu pengamatan terakhir dan tandai status saat ini sebagai tidak diketahui; jangan terus menampilkan status hijau lama sebagai bukti terkini.
Periksa empat lapisan bukti
| Lapisan | Pengamatan yang berguna | Yang tidak dapat dibuktikan sendiri |
|---|---|---|
| VPS dan sistem operasi | Ketersediaan, peristiwa restart, tekanan sumber daya, penyimpanan, dan proses MT4 yang dimaksud. | Mesin yang dapat dijangkau atau proses yang berjalan tidak membuktikan logika EA responsif. |
| MT4 dan data pasar | Akun/server yang benar, koneksi, dan data terbaru untuk setiap simbol yang diperlukan. | Satu chart bergerak tidak membuktikan bahwa simbol wajib lain diperbarui. |
| Operasi EA | Inisialisasi berhasil, status yang didokumentasikan, izin, dan heartbeat yang bermakna jika didukung. | Pesan timer tidak membuktikan bahwa perhitungan sinyal atau pengelolaan posisi selesai. |
| Order broker dan pengelolaan | Order terbuka/pending saat ini, perlindungan yang diterima, hasil permintaan, dan pemilik pengelolaan yang dimaksud. | Balance, laporan lama, atau transaksi berhasil terakhir tidak membuktikan perlindungan saat ini. |
Ini adalah pemeriksaan terpisah. Pemeriksaan dapat ditinjau manual atau dikumpulkan oleh sistem pemantauan yang dikonfigurasi secara sengaja; MT4 tidak otomatis menggabungkannya menjadi dashboard yang dijelaskan di sini.
Peninjauan lima menit tanpa mengubah strategi
- Konfirmasikan lokasi EA berjalan. Periksa terminal dan akun yang dimaksud, bukan chart lokal yang tertinggal setelah migrasi.
- Periksa sesi dan kuotasi yang diperlukan. Tentukan apakah pembaruan diharapkan saat ini dan apakah simbol broker yang tepat memiliki data yang dapat digunakan.
- Periksa inisialisasi dan izin. Baca pesan terbaru dari
ExpertsdanJournaldan status EA yang didokumentasikan. - Periksa order saat ini. Verifikasi siapa yang mengelolanya dan perlindungan apa yang benar-benar ada di broker.
- Periksa jalur pemantauan. Konfirmasikan waktu laporan terbaru dan bahwa peringatan uji mencapai perangkat yang dimaksud.
Lima menit merupakan format peninjauan, bukan jaminan diagnosis atau waktu respons yang cocok untuk setiap EA. Jika ada hal yang tidak jelas, simpan bukti dan gunakan panduan kesalahan EA. Jangan melonggarkan batas spread atau risiko, mengubah Magic Number, atau memaksakan entry agar lampu status menjadi hijau.
Terhubung berbeda dari menerima kuotasi baru
IsConnected() melaporkan koneksi terminal ke server. Fungsi ini tidak menjamin data baru untuk setiap simbol, akses trading, atau logika strategi yang sehat. Periksa nama simbol yang tepat, termasuk suffix broker, dan data yang diperlukan EA di luar chart tempat EA terpasang.
MarketInfo(symbol, MODE_TIME) memberikan waktu tick masuk terakhir untuk simbol tersebut berdasarkan waktu server broker. Kuotasi terakhir adalah bukti historis; bukan jam yang terus bergerak tanpa tick baru. Selama akhir pekan, jeda sesi simbol, dan periode sepi, kuotasi lama dapat wajar. Periksa jadwal broker aktual sebelum menganggap tidak adanya kuotasi sebagai kegagalan feed.
Tentukan pemeriksaan usia kuotasi per simbol dan sesi setelah mengamati perilaku normal. Tidak ada batas waktu aman universal untuk semua pasangan Forex atau setiap EA. Harga Bid yang datar saja juga tidak cukup: tick berurutan dapat membawa harga yang sama. Jika tersedia, catat penerimaan peristiwa data, bukan hanya perubahan harga.
Gunakan jam yang tepat untuk setiap pertanyaan
| Jam atau cap waktu | Makna | Batas pemantauan |
|---|---|---|
TimeCurrent() | Waktu server terakhir yang diketahui. Dalam OnTick(), waktu ini merujuk pada tick yang ditangani; dalam handler lain, pada kuotasi terbaru untuk simbol Market Watch yang dipilih. | Waktu ini dapat berhenti bergerak tanpa kuotasi dan bukan bukti khusus kemutakhiran simbol target EA. |
MODE_TIME | Waktu tick masuk terakhir untuk simbol yang ditentukan. | Gunakan dasar waktu server dan konteks sesi yang benar. |
TimeLocal() | Jam lokal komputer. | Zona waktu, daylight saving, atau koreksi jam dapat mengubah perbandingan. |
| Waktu penerimaan pengumpul independen | Saat layanan pemantauan benar-benar menerima laporan dengan identitas tertentu. | Waktu ini bergantung pada pengumpul dan jalur pengiriman; bukan bukti bahwa alur transaksi yang mendasarinya selesai. |
Jangan langsung mengurangi waktu kuotasi broker dari jam Windows lalu menyebut hasilnya usia kuotasi tanpa memastikan dasar waktu yang sama. Pengembang dapat mengukur interval berlalu dengan penghitung yang sesuai, tetapi harus menangani reset dan putaran ulang penghitung. Pengumpul eksternal perlu mengevaluasi laporan hilang dengan logika waktu berlalu sendiri yang telah diuji, terpisah dari cap waktu pasar.
Beri log keterangan sumber, tanggal, dan zona waktu. Samakan dasar waktu sumber sebelum merekonstruksi insiden; layar yang menampilkan dua waktu yang tampak serupa tidak membuktikan urutannya. Lihat panduan Experts dan Journal.
Tentukan apa yang sebenarnya dibuktikan heartbeat
Heartbeat adalah laporan berkala dari komponen bernama. Heartbeat VPS memberi informasi tentang host itu; EA pemantau memberi informasi tentang pemrosesan peristiwanya sendiri. Keduanya tidak otomatis membuktikan bahwa EA trading terpisah telah mengevaluasi sinyal atau mengelola kelompok posisi.
OnTick() berjalan pada tick baru untuk simbol chart tempat EA terpasang. Heartbeat yang dikirim hanya di sana dapat berhenti ketika simbol tersebut tidak memiliki tick. Program dapat menggunakan EventSetTimer() dengan OnTimer() untuk meminta peristiwa berkala sebagai gantinya, jika pengembang mengimplementasikannya. Peristiwa timer masuk antrean; ketika satu sudah mengantre atau diproses, peristiwa lain tidak ditambahkan. Ini bukan jam eksternal yang presisi atau jaminan bahwa program yang terblokir akan terus melapor.
Tanyakan titik pemeriksaan yang menghasilkan laporan: masuk ke handler, selesainya pemeriksaan data, selesainya siklus pengelolaan, atau pengiriman berhasil. Data berguna mencakup identitas instans, versi, nomor urut, mode operasi, status data, serta waktu pembuatan/penerimaan laporan. Nomor urut yang bertambah membantu membedakan laporan baru dari laporan yang diputar ulang; tetap bukan bukti eksekusi.
Untuk EA berkode tertutup, gunakan status vendor yang didukung dan pengamatan eksternal. Jangan menggambarkan pengamat tambahan sebagai akses ke kesehatan internal strategi. EA pemantau terpisah memerlukan chart sendiri; memasangnya pada chart strategi menggantikan EA yang sudah ada. Pengamat seharusnya mengamati tanpa mengirim transaksi atau mengelola order strategi.
Pantau laporan hilang dari luar terminal
Terminal yang berhenti tidak dapat secara andal mengirim pesan gangguan terakhirnya sendiri. Pengamat independen dapat mendeteksi bahwa laporan yang diharapkan berhenti masuk, selama pengamat, koneksinya, dan jalur notifikasinya masih berfungsi. Menyimpan satu-satunya watchdog pada VPS yang sama membuatnya rentan terhadap kegagalan host yang sama.
Pisahkan pengumpulan dari intervensi. Alarm laporan hilang berarti pengamatan gagal di suatu bagian pengirim, jaringan, pengumpul, atau jalur peringatan. Alarm tidak membuktikan EA utama berhenti trading dan tidak boleh otomatis mengaktifkan salinan trading cadangan. Selidiki host dan order broker saat ini sebelum prosedur pengalihan dalam Panduan 3.
Beri setiap instans yang dimaksud identitas pemantauan berbeda, dan deteksi pengirim yang tidak dikenal atau ganda. Pastikan pengumpul sendiri dapat diamati dengan jalur kontak cadangan yang diuji. Kirim hanya status yang diperlukan; kata sandi, rahasia aktivasi, dan akses akun tanpa batas bukan data heartbeat.
Pantau izin tanpa mengaktifkannya begitu saja
Pada MT4 desktop biasa, periksa AutoTrading dan izin trading EA sendiri, beserta akses trading akun yang dimaksud serta lisensi vendor. Login hanya baca dapat menampilkan informasi akun sambil mencegah trading. Perubahan izin dapat membuat EA tetap menghitung tetapi tidak mampu melakukan perubahan order yang dimaksud.
Fungsi tanpa argumen IsTradeAllowed() memeriksa izin EA pemanggil dan apakah konteks trading sibuk. Hasil false bukan diagnosis lengkap; hasil true bukan jaminan broker menerima permintaan berikutnya. Hasil izin pengamat terpisah tidak menjamin izin per program milik EA lain.
Beri peringatan atas perubahan tak terduga dari mode operasional yang disetujui. Terminal yang sengaja dijeda harus dicatat sebagai dijeda, bukan diperbaiki watchdog. Menonaktifkan otomatisasi tidak menutup posisi; tindakan ini dapat mengganggu exit yang dikelola lokal. Gunakan rencana pengelolaan yang jelas untuk setiap jeda.
Pantau permintaan gagal dan posisi yang sudah ada
Ikuti urutan permintaan trading yang didokumentasikan: tindakan yang dimaksud, percobaan, hasil yang dikembalikan, dan rekonsiliasi dengan catatan broker. Permintaan ditolak dan modifikasi gagal tetap penting meskipun tidak ada posisi baru. Jika vendor tidak mencatat percobaan atau alasan melewati sinyal, informasi itu tidak dapat direkonstruksi secara andal dari daftar transaksi saja.
Kesalahan 128 berarti timeout transaksi. Setelah respons hilang atau tidak pasti, periksa order terbuka dan pending order serta riwayat terkait sebelum memutuskan mencoba ulang. Tidak adanya konfirmasi lokal tidak membuktikan penolakan. Sertakan simbol yang tepat, arah, volume, tiket jika diketahui, dan waktu permintaan dalam penyelidikan; hindari menebak order mana yang berasal dari percobaan tersebut.
Tinjau eksposur saat ini, P/L mengambang, equity, dan Stop Loss/Take Profit yang diterima, bersama aturan kepemilikan yang didokumentasikan EA. Perlindungan yang disimpan broker berbeda dari stop virtual yang direncanakan atau penyesuaian trailing mendatang. EA yang berhenti dapat membiarkan posisi terbuka, dan pending order dapat terpicu saat pemantauan lokal tidak tersedia. Panduan ini tidak menetapkan ambang drawdown baru atau kebijakan likuidasi otomatis.
Uji peringatan hingga mencapai penerima
- Pada terminal yang dimaksud, buka
Tools → Options → Notifications, aktifkan notifikasi push dan masukkan pengenal terminal seluler yang dimaksud berupaMetaQuotes ID. - Gunakan
Test, konfirmasikan hasil terminal, dan verifikasi penerimaan pada perangkat aktual. Periksa izin notifikasi perangkat dan jalur respons praktis. - Uji kondisi peringatan sebenarnya dari EA atau pengamat secara terpisah. Tes pengaturan tidak membuktikan bahwa aturan heartbeat hilang atau peringatan order ditolak tersedia.
- Catat waktu tes, pengirim, tujuan, dan hasil; ulangi setelah migrasi VPS, perubahan perangkat, atau perubahan pengaturan notifikasi.
Notify of trade operations mencakup operasi transaksi berhasil dan peristiwa akun yang didokumentasikan; fitur ini tidak memberi notifikasi tentang operasi trading yang gagal. Karena itu, fitur ini bukan pemantau lengkap untuk penolakan, data kedaluwarsa, atau gangguan terminal.
Untuk pemanggilan kustom SendNotification(), MetaQuotes mendokumentasikan batas 255 karakter, maksimum 2 pemanggilan per detik dan 10 per menit. Pelanggaran batas frekuensi dapat menonaktifkan fungsi. Fungsi ini tidak bekerja dalam Strategy Tester, sehingga pengiriman harus diperiksa pada lingkungan demo berjalan yang sesuai. Hasil pengiriman berhasil bukan bukti seseorang melihat atau mengakui pesan. Kelompokkan kesalahan berulang dan kirim perubahan status yang bermakna, bukan peringatan pada setiap tick.
Tulis aturan peringatan dengan konteks dan langkah berikutnya
| Kondisi | Konteks yang diperlukan | Langkah berikutnya yang berguna |
|---|---|---|
| Tidak ada laporan terbaru | Pengirim/interval yang diharapkan, kesehatan pengumpul, dan pemeliharaan terencana jika ada. | Konfirmasikan jalur pengamatan dan status utama; jangan aktifkan cadangan secara otomatis. |
| Kuotasi lama untuk simbol yang diperlukan | Simbol yang tepat, sesi operasional, perilaku pembaruan normal, dan dasar waktu. | Periksa simbol wajib lainnya, koneksi, dan status layanan broker. |
| Pembatasan trading tak terduga atau permintaan gagal | Mode yang disetujui, EA/akun pemanggil, pesan yang tepat, dan order saat ini. | Selidiki izin atau penolakan; rekonsiliasikan eksekusi tidak pasti sebelum mencoba ulang. |
| Status pengelolaan tidak diketahui dengan order terbuka | Eksposur saat ini, perlindungan broker yang diterima, dan instans pengelola yang dimaksud. | Ikuti rencana insiden yang didokumentasikan dan pastikan tanggung jawab pengelolaan. |
Tentukan durasi kondisi sebelum peringatan, jarak pengulangan, konfirmasi penerimaan, dan kondisi pemulihan. Pesan pemulihan harus menyatakan pengamatan mana yang kembali berlangsung; satu heartbeat baru tidak membuktikan setiap lapisan pulih. Gunakan jendela pemeliharaan yang jelas dengan penanggung jawab dan waktu berakhir, alih-alih menekan alarm yang berisik secara permanen.
Pilih tingkat keparahan berdasarkan keadaan akun aktual. Masalah data yang sama dapat memiliki dampak berbeda ketika tidak ada eksposur dibandingkan ketika posisi bergantung pada exit lokal. Pemantauan mengidentifikasi keadaan itu; pemantauan tidak menyediakan waktu tunggu aman universal.
Contoh heartbeat hilang dengan satu jam
Contoh hipotetis: pengumpul mengharapkan satu laporan beridentitas setiap 60 detik dan memberi peringatan laporan hilang setelah 180 detik tanpa laporan baru. Ini adalah pengaturan untuk pembelajaran, bukan ambang universal yang direkomendasikan. Semua waktu di bawah merupakan pengamatan pengumpul dalam UTC; tidak ada waktu kuotasi broker yang dikurangkan darinya.
| Waktu pengumpul (UTC) | Pengamatan | Kesimpulan yang didukung |
|---|---|---|
| 10:00:00 | Heartbeat terakhir yang beridentitas diterima. | Satu laporan masuk; titik pemeriksaan yang ditentukan telah dilaporkan. |
| 10:01:00 | Pemeriksaan host terpisah merespons; tidak ada heartbeat EA baru yang masuk. | Jalur pemeriksaan host bekerja; pelaporan EA tetap belum dikonfirmasi. |
| 10:03:00 | Pengumpul belum menerima heartbeat baru selama 180 detik. | Kondisi laporan hilang dalam contoh terpenuhi; komponen yang gagal masih tidak diketahui. |
| 10:03:20 | Peninjauan yang diotorisasi melihat kuotasi diperbarui dan satu order broker terbuka. | Data pasar dan eksposur diamati; pengelolaan EA trading masih perlu diverifikasi. |
Di sini, 180 ÷ 60 = 3 interval pelaporan yang diharapkan berlalu tanpa penerimaan baru. Ini bukan bukti bahwa trading berhenti pada 10:00:00, bahwa server menolak sesuatu, atau bahwa order tidak dikelola. Periksa EA, log, dan status order saat ini sebelum intervensi. Jika pengumpul sendiri tidak tersedia, pengumpul tidak dapat mengklaim telah mengamati seluruh interval secara terus-menerus.
Simpan catatan operasional ringkas
Catatan praktis mencakup waktu peninjauan berhasil terakhir, status data simbol wajib, identitas EA/terminal, pemilik order terbuka, pesan belum terselesaikan, hasil tes peringatan, dan perubahan terencana. Periksa setelah penerapan, restart, migrasi, perubahan parameter yang disetujui, dan pemeliharaan broker, lalu pada frekuensi yang sesuai kebutuhan pengelolaan EA aktual.
Pemantauan publik berguna untuk meninjau kinerja, tetapi periksa dahulu pembaruan terakhir dan jeda pelaporannya. Kurva balance yang menarik bukan pemeriksaan kesehatan real-time. Laporan yang tenang atau balance datar tidak dapat membedakan menunggu sinyal dari gangguan terminal. Pisahkan evaluasi kinerja dan pengawasan operasional langsung sebagai tugas berbeda.
Amati lingkungan yang benar-benar bertransaksi
Untuk VPS Windows, pemeriksaan host/proses, pengamatan terminal, dan pengumpul independen dapat mencakup jalur kegagalan berbeda. Tinjau tekanan sumber daya dan perilaku startup menggunakan Panduan 2; login Windows yang berhasil tidak mengonfirmasi EA yang berfungsi.
Untuk hosting virtual MetaTrader terintegrasi, periksa status operasional jarak jauh, sinkronisasi, dan jurnal terminal/Experts yang diminta melalui kontrol hostingnya. Chart lokal atau heartbeat lokal bukan tampilan EA jarak jauh. Heartbeat jarak jauh harus sengaja diterapkan, kompatibel, dan diuji pada lingkungan tersebut; layanan Windows dan alat berbasis DLL yang tidak didukung tidak dapat begitu saja disalin ke sana.
Kontrol lokal AutoTrading tidak menghentikan salinan terhosting. Gunakan kontrol hosting dan verifikasi status jarak jauh aktual untuk intervensi. Sistem pemantauan harus mengidentifikasi apakah ia mengamati host trading utama, terminal persiapan lokal, atau salinan siaga.
Latih celah pemantauan pada demo
Gunakan lingkungan demo yang diotorisasi dan file statusnya sendiri. Uji penutupan terminal terkendali, hilangnya jalur pelaporan, jeda sesi simbol yang diharapkan, jeda disengaja, dan kembali ke operasi normal. Bedakan peringatan yang sebenarnya dari tes pengiriman peringatan yang berhasil. Jangan membuat posisi live tanpa pengelolaan hanya untuk menguji watchdog.
Catat konfigurasi yang diuji, pengamatan, dan bagian yang masih tidak terpantau. Pemantauan berhasil mengurangi ketidakpastian; pemantauan tidak menjamin ketersediaan, eksekusi order, atau kinerja strategi.
Pertanyaan umum pemantauan EA
Apakah tidak ada transaksi baru berarti EA rusak?
Tidak. Periksa sesi, aturan sinyal, data, izin, dan pengelolaan order yang sudah ada. Strategi yang sehat dapat dengan benar tetap tidak aktif.
Apakah heartbeat membuktikan semua fungsi EA sehat?
Tidak. Heartbeat hanya membuktikan laporan yang didokumentasikan telah dibuat atau diterima. Nilainya bergantung pada tempat laporan dihasilkan dan data mana yang terkini.
Apakah notifikasi push MT4 standar dapat mendeteksi setiap kegagalan?
Tidak. Notifikasi transaksi berhasil tidak mencakup operasi gagal, dan terminal yang berhenti tidak dapat secara andal melaporkan gangguan totalnya sendiri. Uji aturan kustom dan pemantauan laporan hilang independen secara terpisah.
Haruskah heartbeat hilang memulai VPS cadangan secara otomatis?
Tidak. Pastikan dahulu status trading host utama, order broker saat ini, dan kepemilikan pengelolaan. Laporan hilang saja bukan otorisasi untuk otomatisasi ganda.
Referensi resmi dan cakupan praktis
Detail platform telah diperiksa terhadap dokumentasi resmi MetaQuotes. Format peninjauan, contoh ambang, dan aturan insiden merupakan panduan operasional edukatif, bukan produk pemantauan yang disediakan atau hasil keandalan terukur. Label antarmuka berbeda menurut bahasa terminal; konfirmasikan label dalam pemasangan Anda sendiri.
- MQL4: status koneksi dan izin trading EA.
- MQL4: cap waktu kuotasi simbol, perilaku waktu server dan batas peristiwa timer.
- MetaTrader 4: penyiapan notifikasi; MQL4: batas push kustom.
- MetaTrader 4: status dan log hosting jarak jauh.