Close all MT5 menjalankan rangkaian permintaan, bukan menjamin seluruh akun tertutup serentak. Posisi dapat tersisa setelah penolakan, urutan terputus atau aplikasi ditutup. Tentukan apa yang benar-benar terisi dan kuantitas yang masih ada. Prosedur ini membahas operasi kelompok bawaan MT5; add-on atau EA khusus dapat mengikuti aturan berbeda.

Apa cakupan perintah yang dipilih?

Periksa nama lengkapnya: semua posisi, hanya yang untung, yang rugi, simbol tertentu atau satu arah. Memilih posisi dapat mengubah daftar perintah tersedia. Pernyataan “sudah menutup semuanya” tanpa nama perintah belum membuktikan cakupannya. Jangan menyamakan penutupan dengan pembalikan posisi; pembalikan dapat menciptakan eksposur baru, bukan membuat akun tanpa posisi.

Dokumentasi operasi kelompok MT5 membedakan tahapan. Pada akun hedging, sistem mencoba Close By lebih dahulu, lalu menutup posisi tersisa secara biasa. Kesalahan pada Close By berurutan menghentikan proses. Pada tahap asinkron berikutnya, permintaan ditolak menyisakan posisinya tanpa menghentikan permintaan posisi lain. Penutupan FIFO juga berurutan dan berhenti pada kesalahan. Jangan mencampur hasil antartahap.

Perintah kelompok memerlukan One Click Trading. Perintah tertentu tidak tersedia pada akun dengan batas FIFO. Baca mode posisi serta ACCOUNT_FIFO_CLOSE pada properti akun, bukan menyimpulkannya dari tampilan terminal. Properti ini menggambarkan akun tertentu, bukan hukum universal.

Panduan hedging membedakan ticket berlawanan dari posisi netting gabungan. Close By berlaku pada dua posisi berlawanan untuk simbol yang sama di akun hedging. Instrumen lain dengan nama mirip tidak otomatis menjadi pasangan lawannya. Nilai skrip Close all khusus berdasarkan instruksinya sendiri, bukan menganggapnya setara menu MT5.

Merekonsiliasi lima posisi sesudah satu operasi

Model diagnostik rekaan: akun hedging tanpa batas FIFO memuat lima posisi. EUR/USD mengizinkan Close By. Tidak ada fill parsial, entri baru atau perubahan lain dalam model utama. Urutan menggambarkan ketergantungan, bukan kecepatan server. Kita tidak menghitung P/L uang atau menjumlahkan lot antar-kontrak berbeda.

Keadaan awal dan hasil yang dikonfirmasi
TicketAwalKonfirmasiTersisa
AEUR/USD buy 0,10 lotClose By dengan B terisiTidak ada
BEUR/USD sell 0,10 lotClose By dengan A terisiTidak ada
CGBP/USD buy 0,20 lot0,20 lot ditutup penuhTidak ada
DUSD/JPY sell 0,10 lotPermintaan ditolak; 0 ditutupSell 0,10 lot
EXAU/USD buy 0,05 lot0,05 lot ditutup penuhTidak ada

Sesudah pasangan A–B terisi, jumlah posisi turun dari lima ke tiga. Terminal lalu mengirim penutupan biasa C, D dan E tanpa menunggu konfirmasi masing-masing permintaan sebelumnya. Dalam model, C dan E tertutup, tetapi D ditolak. Hasil akhir satu posisi D: sell USD/JPY 0,10 lot. Tiga permintaan dikirim belum membuktikan tiga penutupan selesai.

Lima posisi, satu masih terbuka

Hasil konfirmasi menentukan posisi yang tersisaModel rekaan: Close By menutup A dan B. Penutupan biasa C serta E terisi, tetapi D ditolak. Dari lima posisi awal, D sell USD/JPY 0,10 lot masih terbuka. Permintaan dikirim belum berarti dieksekusi.A + B: EUR/USDClose By selesai2 posisi ditutupC: GBP/USDDeal penutupan dikonfirmasi1 posisi ditutupD: USD/JPYPermintaan ditolakSell 0,10 lot tetap terbukaE: XAU/USDDeal penutupan dikonfirmasi1 posisi ditutup
Model rekaan: A–B ditutup melalui Close By; C dan E terisi, D ditolak. Satu posisi awal masih terbuka: D sell USD/JPY 0,10 lot. Mengirim permintaan bukan eksekusi.

Inti diagram: hitung posisi aktual serta kuantitas ditutup yang dikonfirmasi, bukan jendela pesan. Close By menghapus dua ticket melalui satu operasi di sini. Permintaan penutupan biasa mempunyai hasil masing-masing. Panduan kesalahan order membantu mengenali penolakan, tetapi pembacaan akun menetapkan keadaan akhir. Respons belum pasti berbeda dari penolakan dikonfirmasi; jangan memberi keduanya hasil yang sama.

Untuk setiap ticket, simpan simbol, arah, kuantitas awal, ID permintaan/order, respons, deal dan volume tersisa. Properti deal menyediakan tautan ke order serta posisi. Satu order dapat menghasilkan beberapa deal; jangan menganggap setiap fragmen sebagai penutupan ticket penuh. Sertakan timestamp dengan zona serta alasan hasil belum terselesaikan.

Dua deal, satu posisi belum selesaiVarian terpisah dari model utama: ticket D sell USD/JPY 0,10 lot. Tidak ada entri baru; dua deal penutupan terkonfirmasi, tanpa asumsi tentang respons berikutnya.PERHITUNGAN HIPOTETISDeal penutupan pertama0,04 lot ditutup → sisa0,06 lotDeal penutupan kedua0,03 lot ditutup → sisa0,03 lotPemeriksaan berikutnyaRekonsiliasi sisa danrespons
Dua deal, satu posisi belum selesai. Varian terpisah dari model utama: ticket D sell USD/JPY 0,10 lot. Tidak ada entri baru; dua deal penutupan terkonfirmasi, tanpa asumsi tentang respons berikutnya.

Satu order dapat menghasilkan beberapa deal. Catat volume serta ID yang saling terkait dan periksa keadaan akun setelah sinkronisasi.

Pada layar kecil, gulir diagram mendatar atau perbesar. Nilai dan kesimpulan juga tersedia dalam teks di bawah.

Deal penutupan pertama
0,04 lot ditutup → sisa 0,06 lot – D tetap satu posisi sell, bukan ticket tertutup penuh.
Deal penutupan kedua
0,03 lot ditutup → sisa 0,03 lot – Total ditutup 0,07 lot dari awal 0,10 lot.
Pemeriksaan berikutnya
Rekonsiliasi sisa dan respons – Jumlah notifikasi tidak menggantikan kuantitas posisi; jangan mengulang batch dari ingatan.

Varian tambahan terpisah dari model utama tanpa fill parsial: D awalnya sell 0,10 lot, lalu dua deal penutupan terkonfirmasi 0,04 dan 0,03 lot. Jumlah tertutup 0,07 lot, tersisa sell 0,03 lot. Dua notifikasi bukan dua penutupan posisi penuh; D tetap satu posisi dengan ukuran berkurang. Jika respons berikutnya belum pasti, cocokkan order, deal serta posisi saat ini sebelum menilai tindakan berikutnya. Jangan mengirim ulang batch dari volume awal yang diingat.

Kesalahan pada tahap berbeda memberi sisa berbeda

Pertimbangkan varian lain dari lima posisi awal: pasangan A–B mengalami kesalahan Close By sebelum eksekusi. Kita mengasumsikan tidak ada deal penutupan. Urutan berhenti sebelum penutupan biasa C, D dan E, sehingga semua lima posisi tersisa. Ini berbeda dari D ditolak sesudah A–B berhasil. Pada insiden nyata, respons hilang perlu ditelusuri, bukan dianggap tidak ada fill.

Menutup aplikasi menghentikan proses kelompok. Itu tidak membatalkan deal yang sudah dikonfirmasi. Jika A–B sudah tertutup sementara C–E belum dikirim, tiga posisi tersisa dalam varian ini. Tentukan hasil server untuk permintaan yang sudah dikirim. Restart tidak membuktikan akun tanpa posisi dan tidak seharusnya otomatis memicu batch baru dari kuantitas lama.

Periksa apakah EA, aplikasi lain atau orang lain membuka posisi baru selama operasi. Ticket baru belum tentu posisi yang gagal ditutup. Cocokkan riwayat, sumber instruksi serta waktu. Dalam MQL5, OrderSend mengembalikan true belum membuktikan eksekusi; periksa bidang hasil dan event. Ini relevan bagi otomasi khusus, bukan alasan mengirim transaksi live percobaan.

Apakah daftar posisi kosong sudah cukup?

Periksa pending order juga. MT5 menyediakan operasi penghapusan terpisah; perintah penutupan posisi belum mengonfirmasi semua pending dibatalkan. Pending buy P rekaan dapat tetap ada sesudah lima ticket tertutup. Jika kemudian terisi, itu membuat posisi baru. Panduan jenis order membedakan permintaan pembatalan dari hasil sebenarnya.

Sesudah sinkronisasi, baca posisi tanpa filter yang menyembunyikan simbol atau arah. Rekonsiliasi riwayat penutupan dan periksa instruksi pending secara terpisah. Catat waktu observasi serta cakupan akun ketika menyebut keadaan kosong. Satu screenshot tidak membuktikan EA tidak akan menciptakan eksposur lagi. Periksa proteksi posisi tersisa; batch gagal bukan alasan mengabaikan risiko saat ini.

Langkah pemeriksaan berikutnya

  1. Reproduksi cakupan di demo. Catat mode akun, nama lengkap perintah, setiap ticket serta volume. Simpan keadaan awal. Jangan menguji penolakan pada akun live; model dan lingkungan demonstrasi yang sesuai cukup untuk pemeriksaan ini.
  2. Cocokkan posisi dengan hasil dikonfirmasi. Pisahkan Close By dari penutupan biasa. Tandai permintaan ditolak dan yang belum pasti, lalu periksa kuantitas aktual. Jangan mengirim ulang seluruh batch dari ingatan atau menyimpulkan fill karena tombol menghilang.
  3. Periksa kedua daftar. Tinjau posisi dan pending order pada akun tepat setelah sinkronisasi, tanpa filter menyembunyikan data. Jika ada sisa, nilai eksposur serta tindakan yang tersedia. Simpan keadaan akhir serta waktu observasi dalam jurnal sebelum menganggap pekerjaan selesai.