Bagaimana cara mengalahkan Ordersend Error 130 di MetaTrader 4 Dengan permintaan populer, strategi yang telah terbukti mengenai bagaimana mengalahkan setiap mimpi buruk trader.817 yang paling buruk 8211 Error 130 Dari mana kesalahan ini berasal Apa artinya bagi Expert Advisor Anda Bagaimana Anda dapat menemukan bagian dari kode Anda? Itu menyebabkan kesalahan Kami mengatasi semua ini dan lebih8230 Untuk memulai, definisi formal dari teman kita, Dokumentasi MQL4: Itu benar, itu yang Anda dapatkan dari MetaQuotes. Dan gambar 13190 Gambar Ordersend Error 130 secara singkat disebutkan di bagian lain dokumentasi. Namun, tidak ada panduan menyeluruh tentang apa sebenarnya sebenarnya dan bagaimana menangani masalah ini dalam masalah ini, mungkin, yang paling umum terjadi dalam pemrograman Forex. Tapi tidak khawatir itu sebabnya saya telah menulis artikel ini. Setelah melewati ini bersama SoFor30 pembunuh diam Anda meluncurkan penasihat ahli Anda dan tidak ada yang terjadi. Tidak ada pesanan BUY, tidak ada perintah SELL, tidak ada perintah yang tertunda, bahkan tidak ada pesan kesalahan di log8230. Diam saja Anda memutuskan untuk menunggu beberapa jam beberapa hari minggu, dan tidak ada yang benar-benar mengubah grafik, naik turun, tapi Anda tidak melihat keuntungan apa pun. Ini bisa terus selamanya8230 Alasan sebenarnya adalah sederhana 8211 Anda benar-benar mendapatkan ERRINVALIDSTOPS (yang merupakan istilah teknis yang benar untuk masalah ini), namun Anda tidak dapat melihatnya. Itu karena 130 adalah silent killer. Pembunuh berdarah dingin dari otak dan ketenangan batin Anda Tidak ada cara untuk mengatasi kesalahan ini melalui log penasihat ahli atau bahkan log terminal. Satu-satunya cara untuk menangkapnya adalah dengan menambahkan mekanisme failsafe yang benar ke dalam kode Anda. Inilah contoh yang bisa Anda adaptasi dengan kode Anda: Apa yang kami lakukan di sini adalah mengambil nomor tiket dan OrderSend () kembali dan memeriksa apakah nilainya kurang dari nol. Jika iya, maka itu adalah sinyal dari MetaTrader 4 yang mengatakan bahwa ada masalah dengan permintaan tersebut. Kode kesalahan kemudian dicetak ke layar menggunakan Alert () dan fungsi GetLastError () built-in. Kode ini akan memberi jendela pop-up seperti pada gambar di bagian atas artikel ini. Catatan: Anda dapat menggunakan Print () alih-alih Alert () untuk mengalihkan pesan langsung ke log EA8217s daripada menampilkannya di layar. Inti Kesalahan Ordersend 130 Pemberhentian tidak valid adalah nama sebenarnya dari pelakunya yang kita hadapi saat ini. Jadi, apa yang tidak benar berhenti di MetaTrader 4 sebenarnya berarti Untuk pemberhentian yang tidak masuk pasar (BUY or SELL) tidak valid berarti StopLoss andor TakeProfit yang Anda minta tidak mungkin ditetapkan untuk pesanan Anda. Oleh karena itu, karena permintaan tidak dapat dipenuhi hanya sebagian, pesanan tidak dijalankan sama sekali Untuk pesanan tertunda (BUY STOP, BUY LIMIT, SELL STOP, atau SELL LIMIT) invalid stops berarti bahwa baik (1) ada masalah dengan SLTP (Sama seperti di atas) ATAU (2) masalahnya adalah dengan harga masuk yang Anda tentukan untuk pesanan itu sendiri Seperti yang bisa kita lihat, masalahnya selalu dengan satu (atau lebih) harga yang Robot Forex Anda tentukan dalam permintaannya untuk Server perdagangan Sekarang kita tahu musuh kita 8211 membiarkannya mengalahkannya 1) StopLoss amp TakeProfit adalah harga Ada beberapa kemungkinan penyebab ERRINVALIDSTOPS, dan salah satu yang paling sering di antara para pemula adalah menentukan StopLoss dan TakeProfit di bagian harga daripada tingkat harga aktual. Seperti ini: Namun, hati-hati Beberapa EA8217s sudah memiliki modul yang akan mendeteksi jumlah digit setelah desimal dan secara otomatis akan menyesuaikan parameter masukan Anda untuk Anda. Dalam situasi ini mengalikan masukan sebesar 10 justru dapat menyebabkan kinerja yang keliru. Catatan: Saya berencana untuk memposting artikel terpisah dimana kita akan membahas bagaimana membuat modul kita sendiri untuk mendeteksi jumlah digit setelah desimal 3) ECN broker ECN accounts memiliki spesifikasinya sendiri. Salah satunya adalah 8211 saat melakukan trading melalui broker ECN Anda tidak akan dapat mengatur StopLoss andor TakeProfit dengan Market Order (BUY atau SELL) Anda. Jika Anda mencoba melakukan 8211 ini, Anda akan mendapatkan Error 130. Namun, tentu saja, Anda perlu mengatur StopLoss (dan mungkin TakeProfit) untuk pesanan Anda, dan ini harus dilakukan sesegera mungkin setelah pesanan selesai. Coba kode ini: Anda dapat menambahkan fungsi ini ke kode Anda (pada akhirnya) dan kemudian menggunakannya alih-alih OrderSend () di kode utama Anda. Fungsi ini menambahkan langkah ekstra dalam proses pengiriman Market Order. Pertama, ia mengirim permintaan untuk melakukan perintah pasar yang menanggalkan StopLoss dan TakeProfit. Selanjutnya, memodifikasi order pasar yang baru dibuka dengan menambahkan SL dan TP yang diinginkan. Tentu saja ada risiko bahwa perintah itu akan dieksekusi, tapi modifikasinya akan gagal. Namun, dalam hal ini, fungsinya akan segera memberi tahu pedagang bahwa StopLoss dan TakeProfit belum ditetapkan. Merasa bebas untuk memodifikasi fungsi ini agar sesuai dengan kebutuhan dan gaya trading anda. 4) Stop-Levels Stop-Levels adalah mekanisme bagi broker untuk melindungi diri dari risiko volatilitas dan likuiditas tertentu. Secara sederhana, Anda tidak akan bisa mengatur StopLoss atau TakeProfit ATAU urutan pending Anda lebih dekat dari jumlah Pips yang telah ditentukan sebelumnya ke harga pasar saat ini. Untuk mengetahui apa itu Stop Level untuk pasangan mata uang tertentu yang Anda perlukan untuk menekan CTRLU pada keyboard Anda, pilih pasangan mata uang yang diinginkan dan klik tombol 8220Properties8221 seperti yang ditunjukkan pada ilustrasi di bawah ini: Dalam contoh ini, Stop Level untuk AUDUSD adalah 3 Pips . Ini berarti Anda tidak dapat mengatur StopLoss agar pesanan Anda lebih dekat dari 3 Pips ke harga di mana pesanan akan dibuka. Ini juga berarti bahwa setiap pending order harus ditetapkan minimal 3 Pips dari harga pasar saat ini. Jika Anda Robot mencoba untuk melanggar peraturan ini dan menetapkan StopLoss TakeProfit atau Pending Order dalam kisaran Stop Level, maka akan mendapatkan Error 130 8220Invalid Stops8221. Jadi, berhati-hatilah dengan Stop Level dari mata uang dimana EA8217 Anda diperdagangkan 8211 tidak menentukan parameter StopLoss dan TakeProfit yang sangat kecil. Perlu dicatat juga bahwa pasangan mata uang yang lebih eksotis dapat memiliki tingkat Stop yang jauh lebih signifikan. Contoh kedepan, untuk AUDNZD the Stop Level dengan broker yang sama seperti pada contoh diatas adalah 20 Pips. Untuk GBPSEK (British Pound vs Swedish Krone) 8211 it8217s 100 Pips. 5) Normalisasi ganda Dengan beberapa broker Anda akan menemukan bahwa dengan alasan yang tidak diketahui, harga Ask and Bid dilewatkan ke trader dengan digit tambahan yang diabaikan setelah desimal. Sebagai contoh: Daripada 1.1606 broker akan memberi Anda 1.160600001 Sekarang fenomena ini tidak berpengaruh pada perdagangan manual, terlebih lagi karena terminal MT4 dipasang untuk menampilkan sejumlah digit tertentu setelah titik desimal (baik 4 atau 5) 8211 Anda tidak akan Dapat melihat perbedaan sama sekali Namun, angka 8216negligible8217 setelah desimal ini dapat memiliki efek dramatis pada Expert Advisors yang menyebabkan823082308230 yang benar, teman lama kita, sebuah strategi yang saya gunakan untuk melindungi Robot saya dari masalah ini: Ini Trik kecil yang rapi memungkinkan Anda untuk menormalkan (dalam istilah sederhana 8211 Round) harga yang Anda masukkan ke dalam fungsi OrderSend (). Dengan cara ini Anda memotong semua angka 8216negligible8217 setelah titik desimal. Kesimpulan Hari ini kita melihat bahwa mungkin ada beberapa (setidaknya 5) penyebab kesalahan 130. Meskipun ini cukup sedikit, masalah mendasar semuanya sepele dan bisa diperbaiki dalam hitungan menit. Oleh karena itu, Kesalahan 130 tidak perlu ditakuti Jika Anda pernah menemukan pelakunya ini, hanya masalah melalui daftar di atas, temukan situasi yang sesuai untuk Anda dan menerapkan solusi yang ditentukan. Semoga artikel ini bermanfaat. Beritahu saya jika ada pertanyaan dengan menggunakan bagian komentar di bawah ini. Apa yang Anda tunggu untuk mendapatkan GET STARTED dengan FOREX TRADING ADADEMYint OrderSend (simbol string, simbol int cmd, operasi volume ganda, volume harga ganda, harga int slippage, slippage double stoploss, stop loss double takeprofit, ambil untung string commentNULL. Comment int magic0 Nomor ajaib datetime expiration0. Pending order expiration color arrowcolorclrNONE color) di Symbol for trading. Dalam tipe operasi Bisa jadi salah satu enkaplikasi operasi Perdagangan. Jumlah lot. Di selip harga Maksimum untuk pesanan beli atau jual. Di tingkat Stop loss. Di tingkat Take profit. Dalam Order komentar teks Bagian terakhir dari komentar dapat diubah oleh server. Di nomor ajaib Pesanan Dapat digunakan sebagai identifier yang ditentukan pengguna. Dalam Order expiration time (hanya untuk pending order). Dalam Warna panah pembuka pada bagan. Jika parameter hilang atau tanda panah pembuka CLRNONE tidak digambar pada grafik. Mengembalikan jumlah tiket yang ditugaskan ke pesanan oleh server perdagangan atau -1 jika gagal. Untuk mendapatkan informasi kesalahan tambahan, seseorang harus memanggil fungsi GetLastError (). Pada pembukaan order pasar (OPSELL atau OPBUY), hanya harga terbaru Bid (untuk jual) atau Ask (untuk pembelian) yang bisa digunakan sebagai open price. Jika operasi dilakukan dengan keamanan yang berbeda dari yang sekarang, fungsi MarketInfo () harus digunakan dengan parameter MODEBID atau MODEASK untuk mendapatkan tanda kutip terbaru untuk keamanan ini. Harga yang dihitung atau tidak biasa tidak dapat diterapkan. Jika belum ada harga terbuka yang diminta di thread harga atau belum dinormalisasi sesuai dengan jumlah digit setelah titik desimal, maka kesalahan 129 (ERRINVALIDPRICE) akan dihasilkan. Jika harga terbuka yang diminta benar-benar kedaluwarsa, maka kesalahan 138 (ERRREQUOTE) akan dihasilkan secara terpisah pada parameter selip. Jika harga yang diminta kedaluwarsa, namun hadir di thread, pesanan akan dibuka pada harga saat ini dan hanya jika harga saat ini berada dalam kisaran selip harga. Tingkat StopLoss dan TakeProfit tidak terlalu dekat dengan pasar. Jarak minimum tingkat stop pada titik dapat diperoleh dengan menggunakan fungsi MarketInfo () dengan parameter MODESTOPLEVEL. Dalam kasus tingkat stop yang salah atau tidak disadari, kesalahan 130 (ERRINVALIDSTOPS) akan dihasilkan. Nilai nol dari MODESTOPLEVEL berarti tidak adanya batasan pada jarak minimal untuk Stop LossTake Profit atau fakta bahwa server perdagangan menggunakan beberapa mekanisme eksternal untuk kontrol tingkat dinamis, yang tidak dapat diterjemahkan ke dalam terminal klien. Dalam kasus kedua, GetLastError () dapat mengembalikan kesalahan 130, karena MODESTOPLEVEL sebenarnya adalah quotfloatingquot di sini. Dengan penempatan pending order, harga terbuka tidak bisa terlalu dekat dengan pasar. Jarak minimal dari harga yang tertunda dari pasar saat ini satu poin dapat diperoleh dengan menggunakan fungsi MarketInfo () dengan parameter MODESTOPLEVEL. Dalam kasus harga terbuka yang salah dari pending order, kesalahan 130 (ERRINVALIDSTOPS) akan dihasilkan. Menerapkan waktu kadaluwarsa pending order dapat dinonaktifkan di beberapa server perdagangan. Dalam kasus ini, bila nilai non-nol ditentukan dalam parameter kadaluarsa, kesalahan 147 (ERRTRADEEXPIRATIONDENIED) akan dihasilkan. Pada beberapa server perdagangan, jumlah pesanan terbuka dan pending terbatas. Jika batas ini terlampaui, tidak ada pesanan baru yang akan dibuka (atau tidak ada pesanan tertunda yang akan dilakukan) dan server perdagangan akan mengembalikan error 148 (ERRTRADETOOMANYORDERS). -------------------------------------------------- ---------------- Script program mulai fungsi ------------------------------ ------------------------------------ void OnStart () --- dapatkan minimum stop level double minstoplevel MarketInfo (Symbol (), MODESTOPLEVEL) Print (quotMinimum Stop Levelquot, minstoplevel, quot pointsquot) harga ganda Tanyakan --- harga SL dan TP yang dihitung harus dinormalisasi double stoploss NormalizeDouble (Bid - minstoplevel Point Digit) double takeprofit NormalizeDouble (Bid minstoplevel Point Digit) --- tempat pasar untuk membeli 1 lot int ticket OrderSend (Symbol (), OPBUY, 1, price, 3, stoploss, takeprofit, quotMy orderquot, 16384,0, clrGreen) if (ticketlt0) Print (quotOrderSend failed Dengan error quot GetLastError ()) else Print (quotOrderSend placed successfullyquot) --- Saya lelah membuka perintah pada sistem pengujian dan juga menerima dan kesalahan 130. Saya diberitahu oleh Oanda bahwa Anda tidak dapat membuka pesanan melalui EA hanya pada akun praktik hidup. Jelas itu akan gila untuk mengujinya secara langsung. Mereka bilang mereka melihat ke dalamnya, apapun itu artinya. Intinya, jika saya tidak bisa mengujinya, saya tidak menggunakannya. Namun Anda bisa menjalankan EA Anda pada strategi tester. Tapi itu tidak melakukannya untuk saya, saya perlu memastikan bahwa saya diperdagangkan dieksekusi dengan Oanda dan satu-satunya cara dalam pikiran saya untuk melakukannya adalah dengan memilikinya melakukan perdagangan di akun demo terlebih dahulu. Saya sedang menguji EA saya di platform metatrader Oanda. Namun, saya tidak bisa membuka posisi dengan Ordersend. Error Ordersend (130): lot-size: 0.1, Ask: 1.3969, SL: 1.3899, TP: 1.4069 Apa yang salah dengan pesanan yang kemudian saya temukan dan jawab yang sesuai untuk saya pergi ke: ToolsgtOptionsgtExpert Advisors TabgtCheck kotak yang mengatakan quotAllow Live Tradingquot Dan simpan perubahannya. Anda seharusnya mereka mendapatkan wajah tersenyum di sudut kanan atas grafik. Juga, akun yang Anda trading harus ditetapkan sebagai akun MT4 dengan Oanda. Yaitu Anda bisa membuat sub akun dan bila Anda melakukannya, ia memiliki pilihan untuk MT4 diaktifkan. Semoga ini membantu seseorang. Saya kemudian menemukan dan menjawab yang bekerja untuk saya pergi ke: ToolsgtOptionsgtExpert Advisors TabgtCheck kotak yang mengatakan quotAllow Live Tradingquot dan menyimpan perubahannya. Anda seharusnya mereka mendapatkan wajah tersenyum di sudut kanan atas grafik. Juga, akun yang Anda trading harus ditetapkan sebagai akun MT4 dengan Oanda. Yaitu Anda bisa membuat sub akun dan bila Anda melakukannya, ia memiliki pilihan untuk MT4 diaktifkan. Semoga ini membantu seseorang. Ini tidak ada hubungannya dengan Error 130.
No comments:
Post a Comment