Tuesday 29 August 2017

Forex Ordersend ข้อผิดพลาด -130


วิธีการเอาชนะข้อผิดพลาด Ordersend 130 ใน MetaTrader 4 โดยความต้องการที่ได้รับการยอมรับกลยุทธ์ที่ได้รับการพิสูจน์แล้วว่าจะเอาชนะแบลร์อัจฉริยะได้อย่างไร 8211 ข้อผิดพลาด 130 ข้อผิดพลาดนี้มาจากคำว่า Expert Advisor หมายความว่าอย่างไรคุณสามารถหาส่วนของรหัสได้อย่างไร นั่นคือสาเหตุข้อผิดพลาดเราจัดการทั้งหมดนี้และ more8230 เพื่อเริ่มต้นความหมายอย่างเป็นทางการจากเพื่อนของเราเอกสาร MQL4: That8217s ขวานั่นคือทั้งหมดที่คุณได้รับจาก MetaQuotes และส่วนที่เหลือของ 8282 Go รูปข้อผิดพลาด Ordersend 130 จะกล่าวถึงช่วงสั้น ๆ ในส่วนอื่น ๆ ของเอกสาร อย่างไรก็ตามไม่มีคำแนะนำอย่างละเอียดเกี่ยวกับสิ่งที่ 8220 ผิดปกติ Stops8221 หมายถึงจริงและวิธีการจัดการกับปัญหานี้อาจเป็นปัญหาที่พบมากที่สุดในการเขียนโปรแกรม Forex แต่ไม่เป็นไร That8217s ทำไมฉันถึงเขียนบทความนี้ Let8217s ได้รับผ่านทางนี้นักฆ่าเงียบ So8230 คุณเปิดตัวที่ปรึกษาผู้เชี่ยวชาญของคุณ and8230 ไม่มีอะไรเกิดขึ้น ไม่มีคำสั่งซื้อซื้อไม่มีคำสั่งซื้อขายไม่มีคำสั่งที่รอดำเนินการไม่ได้เกิดข้อผิดพลาดใน logs8230 เงียบเพียง คุณตัดสินใจที่จะรอสักสองสามวันต่อสัปดาห์และไม่มีอะไรเปลี่ยนแปลงไปเลย 8211 แผนภูมิขึ้นและลง แต่คุณ don8217t เห็นกำไรใด ๆ นี้สามารถไป forever8230 เหตุผลที่แท้จริงคือง่าย 8211 you8217re จริงรับ ERRINVALIDSTOPS (ซึ่งเป็นคำศัพท์เทคนิคที่ถูกต้องสำหรับปัญหา) แต่คุณ can8217t ดูมัน That8217s เพราะ 130 เป็นฆาตกรเงียบ ฆาตกรเลือดเย็นของสมองและความสงบภายในของคุณไม่มีวิธีใดที่จะรับข้อผิดพลาดนี้ผ่านบันทึกของที่ปรึกษาผู้เชี่ยวชาญหรือแม้แต่บันทึกเทอร์มินัล วิธีเดียวที่จะสามารถจับได้คือการเพิ่มกลไก failsafe ที่เหมาะสมลงในโค้ดของคุณ Here8217s ตัวอย่างที่คุณสามารถปรับให้เข้ากับโค้ดของคุณ: สิ่งที่เรากำลังทำอยู่ที่นี่คือการใช้หมายเลขตั๋วและ OrderSend () จะส่งกลับและตรวจสอบว่ามีค่าน้อยกว่าศูนย์ ถ้าใช่แล้วนั่นคือสัญญาณจาก MetaTrader 4 บอกเราว่ามีปัญหากับคำขอ รหัสข้อผิดพลาดถูกพิมพ์ลงบนหน้าจอโดยใช้ฟังก์ชัน Alert () และ GetLastError () ที่มีอยู่ภายใน รหัสนี้จะให้หน้าต่างป๊อปอัพเหมือนในภาพขึ้นที่ด้านบนของบทความนี้ หมายเหตุ: คุณสามารถใช้ Print () แทน Alert () เพื่อเปลี่ยนเส้นทางข้อความไปยังบันทึก EA8217s แทนการแสดงผลบนหน้าจอ หลักของข้อผิดพลาด Ordersend 130 การหยุดไม่ถูกต้องเป็นชื่อจริงสำหรับผู้กระทำผิดที่เรากำลังติดต่อกับวันนี้ ดังนั้นสิ่งที่ไม่ถูกต้องหยุดลงใน MetaTrader 4 หมายถึงจริงสำหรับคำสั่งซื้อตามตลาด (BUY หรือ SELL) หมายความว่า StopLoss andor TakeProfit ที่คุณร้องขอไม่สามารถกำหนดสำหรับการสั่งซื้อของคุณได้ เนื่องจากใบสั่งซื้อไม่สามารถดำเนินการได้เพียงบางส่วนใบสั่งซื้อไม่ได้ดำเนินการทั้งหมดคำสั่งซื้อที่รอดำเนินการ (ซื้อ STOP, ซื้อ จำกัด , ขายหยุดหรือ จำกัด การขาย) การหยุดที่ไม่ถูกต้องหมายความว่า (1) มีปัญหากับ SLTP (เช่นเดียวกับข้างต้น) หรือ (2) ปัญหาคือกับราคารายการที่คุณระบุไว้สำหรับการสั่งซื้อด้วยตัวเองตามที่เราเห็นปัญหาอยู่เสมอกับราคาที่ Forex Robot ของคุณระบุไว้ในคำขอ เซิร์ฟเวอร์การค้า ตอนนี้เรารู้แล้วว่าศัตรู 8211 ของเราเอาชนะได้ 1) StopLoss amp TakeProfit เป็นราคาที่มีสาเหตุหลายประการของ ERRINVALIDSTOPS และหนึ่งในผู้ที่เริ่มต้นบ่อยๆในกลุ่มผู้เริ่มต้นจะระบุ StopLoss และ TakeProfit ใน pips มากกว่าระดับราคาที่แท้จริง เช่นนี้: อย่างไรก็ตามโปรดระวังบาง EA8217s มีโมดูลที่จะตรวจจับจำนวนตัวเลขหลังทศนิยมและจะปรับพารามิเตอร์การป้อนข้อมูลของคุณโดยอัตโนมัติสำหรับคุณ ในสถานการณ์เช่นนี้การคูณค่าอินพุทของ 10 จะนำไปสู่ประสิทธิภาพที่ไม่ถูกต้อง หมายเหตุ: ฉันวางแผนที่จะโพสต์บทความแยกกันซึ่งเราจะพูดถึงวิธีการสร้างโมดูลของเราเพื่อตรวจสอบจำนวนหลักหลังทศนิยม 3) บัญชี ECN ของ ECN บัญชี ECN มีข้อมูลเฉพาะของตนเอง หนึ่งในนั้นคือ 8211 เมื่อทำการซื้อขายผ่านนายหน้าของ ECN คุณจะไม่สามารถตั้ง StopLoss andor TakeProfit กับ Market Order ของคุณได้ (ซื้อหรือขาย) ถ้าคุณพยายามที่จะทำเช่นนี้ 8211 คุณจะได้รับข้อผิดพลาด 130 อย่างไรก็ตามคุณจำเป็นต้องตั้ง StopLoss (และอาจ TakeProfit) สำหรับใบสั่งซื้อของคุณและต้องดำเนินการโดยเร็วที่สุดหลังจากสั่งซื้อเสร็จเรียบร้อยแล้ว ลองใช้รหัสนี้: คุณสามารถเพิ่มฟังก์ชันนี้ลงในโค้ดของคุณ (ท้ายสุด) จากนั้นใช้แทนคำสั่ง OrderSend () ในโค้ดหลักของคุณ ฟังก์ชันนี้จะเพิ่มขั้นตอนพิเศษในการส่งคำสั่งซื้อของตลาด อันดับแรกจะส่งคำขอให้ดำเนินการตามคำสั่งซื้อของตลาดซึ่งจะลอกออก StopLoss และ TakeProfit จากนั้นจะปรับเปลี่ยนลำดับการตลาดที่เพิ่งเปิดใหม่โดยการเพิ่ม SL และ TP ที่ต้องการ มีความเสี่ยงที่คำสั่งจะถูกดำเนินการ แต่การปรับเปลี่ยนจะล้มเหลว อย่างไรก็ตามในกรณีดังกล่าวฟังก์ชันจะแจ้งให้ผู้ค้าทราบว่า StopLoss และ TakeProfit ยังไม่ได้รับการตั้งค่า รู้สึกฟรีเพื่อปรับเปลี่ยนฟังก์ชั่นนี้ให้เหมาะกับความต้องการและรูปแบบการซื้อขายของคุณ Stop-Levels Stop-Levels เป็นกลไกสำหรับนายหน้าเพื่อป้องกันตัวเองจากความผันผวนและความเสี่ยงที่เกี่ยวข้องกับสภาพคล่อง ในแง่ง่ายๆคุณจะไม่สามารถตั้งค่า StopLoss หรือ TakeProfit หรือคำสั่งซื้อที่รอดำเนินการได้ใกล้เคียงกับจำนวนที่กำหนดไว้ล่วงหน้าของ Pips ไปเป็นราคาตลาดในปัจจุบัน หากต้องการทราบว่าระดับการหยุดสำหรับคู่สกุลเงินใดที่คุณต้องการให้กด CTRLU บนแป้นพิมพ์ให้เลือกคู่สกุลเงินที่ต้องการและคลิกปุ่ม 8220Properties8221 ดังแสดงในภาพประกอบด้านล่างในตัวอย่างนี้ระดับการหยุดทำงานของ AUDUSD คือ 3 Pips . ซึ่งหมายความว่าคุณจะไม่สามารถตั้ง StopLoss สำหรับการสั่งซื้อของคุณใกล้กว่า 3 Pips กับราคาที่จะเปิดคำสั่งซื้อ นอกจากนี้ยังหมายความว่าคำสั่งซื้อที่รอดำเนินการใด ๆ จะต้องมีการตั้งค่าอย่างน้อย 3 Pips ออกจากราคาตลาดในปัจจุบัน ถ้าคุณพยายามจะทำลายกฎเหล่านี้และตั้งค่า StopLoss TakeProfit หรือคำสั่งซื้อที่รอดำเนินการภายในระดับ Stop Level จะได้รับข้อผิดพลาด 130 8220Invalid Stops8221 ดังนั้นโปรดคำนึงถึงระดับการหยุดของสกุลเงินที่ EA8217s ซื้อขาย 8211 don8217t ระบุพารามิเตอร์ StopLoss และ TakeProfit ที่เล็กเกินไป นอกจากนี้ยังมีข้อสังเกตว่าคู่สกุลเงินที่แปลกใหม่กว่านี้สามารถมีระดับการหยุดทำงานที่สำคัญกว่าได้มาก ตัวอย่างเช่นสำหรับ AUDNZD ระดับการหยุดกับนายหน้าเดียวกับในตัวอย่างข้างต้นคือ 20 Pips สำหรับ GBPSEK (ปอนด์อังกฤษและสวีเดนโค) 8211 it8217s 100 Pips 5) มาตรฐานของคู่กับนายหน้าบางท่านจะพบว่าด้วยเหตุผลที่ไม่ทราบราคาถามและราคาเสนอจะถูกส่งผ่านไปยังผู้ประกอบการค้าที่มีตัวเลขเล็กน้อยเพิ่มเติมหลังจากทศนิยม ตัวอย่างเช่น: แทน 1.1606 โบรกเกอร์จะให้คุณ 1.160600001 ตอนนี้ปรากฏการณ์นี้ไม่มีผลต่อการซื้อขายด้วยตนเองยิ่งไปกว่านั้นเนื่องจาก MT4 terminal เป็น hardwired เพื่อแสดงตัวเลขจำนวนหนึ่งหลังจากจุดทศนิยม (4 หรือ 5) 8211 คุณจะไม่ สามารถสังเกตเห็นความแตกต่างใด ๆ ได้ทั้งหมดอย่างไรก็ตามเลข 8216negligible8217 หลังทศนิยมสามารถมีผลอย่างมากต่อผู้เชี่ยวชาญแนะนำสาเหตุ 823082308230 that8217s right เพื่อนเก่าของเรา OrderSend Error 130 Here8217s เป็นกลยุทธ์ที่ผมใช้เพื่อปกป้องหุ่นยนต์ของฉันจากปัญหานี้: เคล็ดลับเล็ก ๆ เล็ก ๆ น้อย ๆ ช่วยให้คุณสามารถทำให้ปกติ (8211 รอบเงื่อนไข) ราคาใด ๆ ที่คุณป้อนลงในฟังก์ชัน OrderSend () ด้วยวิธีนี้คุณจะตัดตัวเลขหลัก 8216 เกร็ดหลังตัวเลขทั้งหมดหลังจากจุดทศนิยม สรุปวันนี้เราพบว่าอาจเกิดข้อผิดพลาด 130 (อย่างน้อย 5 ข้อ) แม้ว่าจะค่อนข้างน้อย แต่ปัญหาพื้นฐานก็ไม่เป็นที่ประจักษ์และสามารถแก้ไขได้ภายในไม่กี่นาที ดังนั้นข้อผิดพลาด 130 ไม่ควรกลัวถ้าคุณได้พบผู้กระทำผิดนี้ it8217s เพียงเรื่องของการไปถึงรายการข้างต้นการหาสถานการณ์ที่ใช้กับคุณและใช้วิธีการแก้ปัญหาที่กำหนด หวังว่าบทความนี้จะเป็นประโยชน์โปรดแจ้งให้เราทราบหากคุณมีคำถามใด ๆ โดยใช้ส่วนความคิดเห็นด้านล่าง คุณกำลังรออะไรกับการเริ่มซื้อขายกับ FOREX TRADING ADADEMYINT OrderSend (สัญลักษณ์สตริงสัญลักษณ์ int cmd การทำงาน double volume ปริมาณ double price ราคา slippage int slippage stoploss คู่ stop loss double takeprofit ใช้สตริงกำไร commentNULL comment int magic0 หมายเลข magic number expiration0. สีที่รอการสั่งซื้อหมดอายุ arrowcolorclrNONE color) ใน Symbol for trading ในประเภทการทำงาน สามารถนับการดำเนินการทางการค้าได้ จำนวนจำนวน ในการเลื่อนราคาสูงสุดสำหรับคำสั่งซื้อหรือขาย ในระดับการหยุดขาดทุน ในระดับกำไร ในข้อความคำสั่งซื้อ ส่วนสุดท้ายของข้อคิดเห็นอาจถูกเปลี่ยนแปลงโดยเซิร์ฟเวอร์ ใน Order magic number อาจใช้เป็นตัวระบุที่กำหนดโดยผู้ใช้ ในเวลาหมดอายุของคำสั่งซื้อ (สำหรับคำสั่งซื้อที่รอดำเนินการเท่านั้น) สีของลูกศรเปิดบนแผนภูมิ หากพารามิเตอร์หายไปหรือมีลูกศรเปิดค่า CLRNONE ไม่ได้วาดลงบนแผนภูมิ ส่งกลับจำนวนตั๋วที่กำหนดให้กับคำสั่งโดยเซิร์ฟเวอร์การค้าหรือ -1 ถ้าล้มเหลว เพื่อรับข้อมูลข้อผิดพลาดเพิ่มเติมเราต้องเรียกใช้ฟังก์ชัน GetLastError () เมื่อเปิดใบสั่งซื้อตามราคาตลาด (OPSELL หรือ OPBUY) สามารถใช้ราคาเสนอซื้อล่าสุด (ขาย) หรือถาม (สำหรับซื้อ) เป็นราคาเปิดเท่านั้น ถ้าการดำเนินการดำเนินการกับการรักษาความปลอดภัยที่แตกต่างจากปัจจุบันระบบ MarketInfo () ต้องใช้กับ MODEBID หรือ MODEASK พารามิเตอร์สำหรับคำพูดล่าสุดสำหรับการรักษาความปลอดภัยนี้จะได้รับ ไม่สามารถใช้ราคาที่คำนวณหรือ unnormalized หากไม่มีราคาเปิดที่ร้องขอในหัวข้อราคาหรือไม่ได้รับการยืนยันตามจำนวนหลักหลังจากจุดทศนิยมแล้วจะมีการสร้างข้อผิดพลาด 129 (ERRINVALIDPRICE) หากราคาเปิดที่ต้องการหมดอายุข้อผิดพลาด 138 (ERRREQUOTE) จะถูกสร้างขึ้นโดยอิสระบนพารามิเตอร์การลื่นไถล หากราคาที่ขอล้าสมัย แต่มีอยู่ในด้ายคำสั่งซื้อจะได้รับการเปิดในราคาปัจจุบันและเฉพาะในกรณีที่ราคาปัจจุบันอยู่ในช่วงของการลื่นไถลราคา ระดับ StopLoss และ TakeProfit ไม่สามารถใกล้เคียงกับตลาดได้มากนัก ระยะทางที่น้อยที่สุดของระดับการหยุดในจุดที่สามารถรับได้โดยใช้ฟังก์ชัน MarketInfo () ที่มีพารามิเตอร์ MODESTOPLEVEL ในกรณีที่มีระดับการหยุดที่ผิดพลาดหรือ unnormalized ข้อผิดพลาด 130 (ERRINVALIDSTOPS) จะถูกสร้างขึ้น ค่าที่เป็นศูนย์ของ MODESTOPLEVEL หมายถึงไม่มีข้อ จำกัด ใด ๆ ในระยะทางที่น้อยที่สุดสำหรับ Profit Loss Lossing หรือข้อเท็จจริงที่ว่าเซิร์ฟเวอร์การค้าใช้กลไกภายนอกเพื่อควบคุมระดับไดนามิกซึ่งไม่สามารถแปลได้ในเครื่องไคลเอ็นต์ ในกรณีที่สอง GetLastError () สามารถส่งคืนข้อผิดพลาด 130 เนื่องจาก MODESTOPLEVEL เป็นจริงที่ยกมาจากที่นี่ เมื่อวางคำสั่งซื้อที่ค้างอยู่ราคาเปิดไม่สามารถใกล้ตลาดได้มากเกินไป ระยะทางที่น้อยที่สุดของราคาที่รอดำเนินการจากตลาดปัจจุบันที่มีอยู่ในจุดจะสามารถรับได้โดยใช้ MarketInfo () ที่มีพารามิเตอร์ MODESTOPLEVEL ในกรณีที่ราคาเปิดเท็จของคำสั่งซื้อที่รอดำเนินการจะเกิดข้อผิดพลาด 130 (ERRINVALIDSTOPS) การใช้เวลาหมดอายุการสั่งซื้อที่รอดำเนินการสามารถใช้งานได้ในเซิร์ฟเวอร์การค้าบางแห่ง ในกรณีนี้เมื่อมีการระบุค่าที่ไม่ใช่ศูนย์ในพารามิเตอร์ expiration จะมีการสร้างข้อผิดพลาด 147 (ERRTRADEEXPIRATIONDENIED) ไว้ ในเซิร์ฟเวอร์การค้าบางประเภทยอดรวมของคำสั่งซื้อที่เปิดและค้างอยู่อาจ จำกัด ได้ หากเกินขีด จำกัด นี้จะไม่มีการเปิดคำสั่งซื้อใหม่ (หรือจะไม่มีการสั่งซื้อที่รอดำเนินการ) และเซิร์ฟเวอร์การค้าจะส่งคืนข้อผิดพลาด 148 (ERRTRETETOMOMORDERS) -------------------------------------------------- ---------------- ฟังก์ชันเริ่มต้นของโปรแกรมสคริปต์ ------------------------------ ------------------------------------ void OnStart () --- รับระดับการหยุดต่ำสุดสองเท่า minstoplevel MarketInfo (ราคาต่ำสุดของการจัดส่ง), (ราคาเสนอขายต่ำสุด (ต่ำสุด), ราคาเสนอซื้อ (Symbol (), MODESTOPLEVEL) พิมพ์ (quotMinimum Stop Levelquot, minstoplevel, quot pointsquot) ราคาคู่ถาม --- คำนวณ SL และราคา TP ต้องเป็น normalised stoploss สองครั้ง NormalizeDouble (Bid - Minstoplevel Point.) double takeprofit NormalizeDouble (Bid minstoplevel Point ตัวเลข) --- สถานที่สั่งซื้อในตลาดซื้อ 1 lot int มากจอง OrderSend (Symbol (), OPBUY, 1, ราคา, 3, stoploss, takeprofit, ใบสั่งซื้อ quotMy, 16384,0, clrGreen) if (ticketlt0) Print (quotOrderSend failed. มีคำสั่งผิดพลาด GetLastError ()) else พิมพ์ (quotOrderSend วางเรียบร้อยแล้ว) --- ฉันเบื่อคำสั่งเปิดในระบบทดสอบและยังได้รับและข้อผิดพลาด 130 ฉันบอก Oanda คุณไม่สามารถเปิดคำสั่งผ่านทาง EAs ในบัญชีการฝึกซ้อมเท่านั้น มีชีวิต. เห็นได้ชัดว่าจะบ้าที่จะทดสอบมันอยู่ พวกเขากล่าวว่าพวกเขากำลังมองหาสิ่งที่หมายถึง บรรทัดล่างถ้าฉันไม่สามารถทดสอบได้ Im ไม่ใช้มัน อย่างไรก็ตามคุณสามารถใช้ EA ในเครื่องมือทดสอบกลยุทธ์ได้ แต่ thats ไม่ได้ทำเพื่อฉันฉันต้องให้แน่ใจว่าการซื้อขายของฉันจะถูกดำเนินการกับ Oanda และวิธีเดียวที่ฉันจะทำคือการมีการค้าในบัญชีการสาธิตก่อน ฉันกำลังทดสอบอีเอของฉันบนแพลตฟอร์ม OTA ของ Metatrader อย่างไรก็ตามฉันไม่สามารถเปิดตำแหน่งกับ Ordersend ได้ เกิดข้อผิดพลาด Ordersend (130): ขนาดจำนวนมาก: 0.1, ถาม: 1.3969, SL: 1.3899, TP: 1.4069 เกิดอะไรขึ้นกับคำสั่งซื้อที่ฉันพบในภายหลังและคำตอบที่ใช้สำหรับฉันไปที่: ToolsgtOptionsgtExpert Advisors TabgtCheck ที่ระบุว่า quotAllow Live Tradingquot และบันทึกการเปลี่ยนแปลง คุณควรจะได้รอยยิ้มที่มุมบนขวาของแผนภูมิ นอกจากนี้บัญชีที่คุณกำลังซื้อขายจะต้องถูกตั้งค่าเป็นบัญชี MT4 กับ Oanda เช่นคุณสามารถสร้างบัญชีย่อยและเมื่อคุณทำ แต่ก็มีตัวเลือกสำหรับ MT4 ที่เปิดใช้งาน หวังว่านี่จะช่วยให้ใครสักคน ภายหลังฉันพบและคำตอบที่ใช้สำหรับฉันไปที่: ToolsgtOptionsgtExpert Advisors TabgtCheck box ที่ระบุ quotAllow Live Quarantine และบันทึกการเปลี่ยนแปลง คุณควรจะได้รอยยิ้มที่มุมบนขวาของแผนภูมิ นอกจากนี้บัญชีที่คุณกำลังซื้อขายจะต้องถูกตั้งค่าเป็นบัญชี MT4 กับ Oanda เช่นคุณสามารถสร้างบัญชีย่อยและเมื่อคุณทำ แต่ก็มีตัวเลือกสำหรับ MT4 ที่เปิดใช้งาน หวังว่านี่จะช่วยให้ใครสักคน นี่ไม่มีอะไรเกี่ยวข้องกับข้อผิดพลาด 130

No comments:

Post a Comment