Cara Menelusuri Kesalahan 130 pada EA MT4? Metode Empat Langkah dari Jarak Stop Loss hingga Batas Dinamis
Gunakan diagram alur biru muda orisinal untuk menelusuri ERR_INVALID_STOPS pada EA MT4 langkah demi langkah: log, presisi kuotasi, MODE_STOPLEVEL, dan batas dinamis, agar tidak melebarkan stop loss untuk menutupi risiko.
Penulis: Thomas|Praktik EA dan MT4|20 Oktober 2026
EA sudah dipasang di grafik dan trading otomatis sudah diaktifkan, tetapi saat mengirim order muncul "130", yang biasanya membuat orang mengira program benar-benar rusak. Dokumentasi referensi MQL4 mencantumkan 130 sebagai ERR_INVALID_STOPS: stop loss/take profit dalam permintaan, harga pending order, atau cara normalisasinya tidak diterima oleh server trading. Ini adalah petunjuk lokasi masalah, bukan alasan untuk melebarkan stop loss secara membabi buta. Artikel ini menggunakan metode penelusuran empat langkah untuk menjelaskan catatan mana yang harus diperiksa.
Langkah pertama: tentukan dulu permintaan mana yang gagal
Buka log terminal MT4 atau log program terkait, catat waktu server saat error, simbol, arah order, apakah operasinya OrderSend atau OrderModify, serta kode error yang dikembalikan. Jika log hanya berisi "order gagal" empat kata, minta EA mencatat harga permintaan, stop loss, take profit, dan nilai kembalian tanpa menampilkan data sensitif seperti kata sandi. Bedakan dulu kegagalan membuka posisi, kegagalan mengubah stop loss, dan kegagalan pending order; ketiganya memeriksa hubungan harga yang berbeda.
Jangan "coba-coba keberuntungan" di akun live dengan terus-menerus mengirim permintaan gagal yang sama. Percobaan berulang dapat menimbulkan beban tambahan, dan bisa tiba-tiba berhasil setelah kondisi pasar berubah sehingga menciptakan posisi tak terduga. Reproduksi dulu di lingkungan simulasi, dan simpan versi parameter serta kuotasi platform saat itu.
Langkah kedua: periksa Bid, Ask, Point, dan Digits
MarketInfo di MQL4 dapat membaca Bid, Ask, Point, dan Digits simbol saat ini. Point mewakili salah satu unit tampilan terkecil dari kuotasi tersebut, Digits menunjukkan jumlah desimal; berapa dolar "10 poin" harus dihitung berdasarkan Point aktual simbol tersebut, dan kode serta presisi emas dari broker berbeda tidak boleh dicampur begitu saja. Harga juga harus dinormalisasi sesuai jumlah digit sebelum dikirim.
Contoh hanya sebagai ilustrasi matematis: jika Point simbol simulasi tertentu adalah 0,01 dan jarak minimum 50 point, jarak yang dihitung adalah 0,50 unit kuotasi; jika diganti dengan simbol ber-Point 0,001 maka menjadi 0,05. Angka tersebut tidak mewakili aturan kontrak platform nyata mana pun hari ini. Saat memeriksa log, simpan juga harga beli dan jual, agar tidak memeriksa sisi yang seharusnya mengacu pada harga beli dengan harga jual, atau sebaliknya.
Langkah ketiga: periksa MODE_STOPLEVEL dan jenis order
Dokumentasi resmi OrderSend menjelaskan bahwa stop loss dan take profit tidak boleh terlalu dekat dengan harga pasar; harga pembukaan yang ditentukan untuk pending order juga tidak boleh terlalu dekat dengan pasar saat ini. Gunakan MarketInfo(Symbol(),MODE_STOPLEVEL) untuk menanyakan jarak minimum yang dipublikasikan, dalam satuan point. Lalu berdasarkan apakah order adalah buy, sell, atau jenis pending order tertentu, periksa arah harga, jarak, dan normalisasi secara terpisah, bukan menerapkan offset tetap yang sama pada semua order.

Gambar di atas adalah skema alur orisinal, tanpa kuotasi atau data akun nyata. Jarak minimum hanyalah batas teknis agar server menerima order, bukan berarti jarak stop loss yang wajar secara strategi. Jika stop loss digeser menjauh untuk menghindari 130, risiko per transaksi yang semula direncanakan akan membesar; hitung ulang ukuran posisi terlebih dahulu, dan jika perlu batalkan transaksi tersebut.
Langkah keempat: nilai kembali 0 juga tidak menjamin tidak ada batas
Penjelasan resmi MQL4 untuk MODE_STOPLEVEL secara khusus mengingatkan: nilai kembali 0 bisa berarti tidak ada jarak minimum tetap, tetapi bisa juga server menggunakan batas dinamis yang tidak dapat direpresentasikan langsung oleh terminal. Kasus terakhir masih dapat mengembalikan 130. Jadi "setelah mendapat 0 lalu menempelkan stop loss ke harga" tidaklah benar. Saat pasar berubah drastis, pembaruan kuotasi, perubahan spread, dan aturan sisi server juga dapat membuat jarak yang sebelumnya dihitung menjadi tidak berlaku.
Jika rumus kode sesuai dengan log saat itu tetapi masih menemui 130, simpan waktu kegagalan, simbol, parameter order, dan versi platform, periksa spesifikasi simbol dan batasan order broker, serta konfirmasi ke dukungan teknis platform. Jangan menyimpulkan aturan akun ini berdasarkan Point dan StopLevel platform lain, apalagi menghapus stop loss untuk menutupi penyebab kegagalan yang sebenarnya.
Urutan verifikasi setelah perbaikan
Jalankan kasus minimal yang dapat direproduksi di akun simulasi terlebih dahulu: catat empat parameter kuotasi dan StopLevel dengan simbol yang sama, kirim satu permintaan uji, periksa nilai kembalian server dan status order. Lalu uji perilaku saat harga berubah cepat atau pada sesi trading berbeda. Pastikan program memiliki mekanisme berhenti atau pendinginan setelah gagal, dan tidak membuka posisi berulang saat mencoba ulang. Terakhir, periksa apakah anggaran risiko, spread, dan kerugian yang dapat diterima masih sesuai rencana semula.
Fokus penelusuran kesalahan 130 adalah "mengapa permintaan ditolak", bukan "bagaimana memaksanya tereksekusi". Hasil menjalankan EA juga dipengaruhi oleh logika strategi, jaringan, dan eksekusi platform; perbaikan apa pun tidak menjamin keuntungan atau menghindari kerugian. Trading dengan leverage dapat menyebabkan kerugian besar.